Autor
|
Thema: IsInactive-Eigenschaft im Assembly-Design? (2946 mal gelesen)
|
Carasianer Mitglied Elektroniker
Beiträge: 12 Registriert: 21.09.2006
|
erstellt am: 05. Dez. 2006 18:27 <-- editieren / zitieren --> Unities abgeben:
Gibt es die Möglichkeit, im Assembly Design abzufragen, ob ein Part/Product/Component aktiviert oder deaktiviert ist? (Siehe Bild) In der Automation Docu finde ich nichts dazu. Der Makrorecorder hilft auch nicht weiter, da er bei mir im Assemblydesign nur leere Makrodateien erzeugt. Den umgekehrten Weg, also das Aktivieren/Deaktivieren, kenne ich. Im Part Design gibt's ein Property "IsInactive", aber das gibt's leider im Assembly Design nicht. Apropos: Ist das generell der Fall, dass die Makroaufzeichnung im Assembly Design nicht funktioniert? Und falls ja: wieso? Danke im Voraus. Rüdiger PS: Ich arbeite mit V5R14S22 unter Windows.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Augustiner Mitglied Konstrukteur
Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 05. Dez. 2006 19:55 <-- editieren / zitieren --> Unities abgeben: Nur für Carasianer
|
Carasianer Mitglied Elektroniker
Beiträge: 12 Registriert: 21.09.2006
|
erstellt am: 05. Dez. 2006 20:39 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Augustiner: HalloSchau mal hier Gruß Andi
Ich glaube dieses Beispiel hilft mir bei meinem Problem nicht weiter. Im gezeigten Beispiel werden rekursiv alle Parts optisch ausgeblendet, also die Funktion ReMT -> "Representations" -> "Deactivate Node" ausgeführt. Eine Funktion, die übrigens nur bei Parts funktioniert. Was ich brauche, ist die makrobasierte Abfrage des Wertes von ReMT -> "... Object" -> "Activate / Deactivate Component". Das ist nicht dieselbe Funktion! Ich will den Aktiviert-Status übrigens nicht ändern... Gruß Rüdiger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAMiCADse Mitglied
Beiträge: 177 Registriert: 17.02.2006 V5,R19,SP9
|
erstellt am: 14. Dez. 2006 14:26 <-- editieren / zitieren --> Unities abgeben: Nur für Carasianer
Hallo Rüdiger, stand gerade vor dem selben Problem und habe für mich folgende Lösung gefunden: Der Activation-Status ist in einem Parameter hinterlegt, den man abfragen kann ("Component Activation State"). Anstatt jetzt alle Parameter zu durchsuchen, schnappe ich mir immer den letzten Parameter der jeweiligen Collection, das war bei allen Tests bisher immer der Activation-Parameter. Bsp: Abfragen ob SubProduct deactivated ist.
Code:
Dim Paras as Parameters Set Paras = SubProd.Parameters If Paras.Item(Paras.Count).ValueAsString = "false" Then MsgBox "Deactivated" End If
Gruß CAMiCADse
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 14. Dez. 2006 16:52 <-- editieren / zitieren --> Unities abgeben: Nur für Carasianer
Hallo CAMiCADse, anstelle von Code: If Paras.Item(Paras.Count).ValueAsString = "false" Then
kann man auch gleich Code: If Paras.Item("Component Activation State").ValueAsString = "false" Then
verwenden! mfg, Lusilnie
------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAMiCADse Mitglied
Beiträge: 177 Registriert: 17.02.2006 V5,R19,SP9
|
erstellt am: 14. Dez. 2006 17:09 <-- editieren / zitieren --> Unities abgeben: Nur für Carasianer
Hallo Lusilnie, das funktioniert natürlich auch, aber der Zugriff ist dann nicht eindeutig. Wenn in der Parameter-Collection des Products mehrere SubProducts/Parts stecken, dann erfolgt der Zugriff immer auf den ersten Parameter der gefunden wird. Eindeutig wird es erst, wenn man den gesamten Pfad angibt, oder eben aber mit count. So kann ich bei der Rekursion immer das aktuelle Produkt abfragen. Gruß CAMiCADse
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 14. Dez. 2006 23:14 <-- editieren / zitieren --> Unities abgeben: Nur für Carasianer
Hallo CAMiCADse, da war ich wohl etwas ungenau! Durch weitere Test ließ sich das Ganze genauer eruieren. Deine Aussage kann ich nur bestätigen, der letzte Parameter einer Instance scheint wirklich stets der "Component Activation State" zu sein. Allerdings ist für die namentliche Abfrage nicht der gesamte Pfad notwendig, sondern nur der Pfad ab dem übergeordneten Product der Instance, also in Form 'Item( Prod.Name & "\" & SubProd.Name & "\Component Activation State")' wobei "Prod.Name" wirklich der Name des Products und nicht der Instance ist. Hier tritt dann natürlich wieder das Problem auf, dass sich das Root-Product bei der "Ermittlung" anders verhält als die restlichen Products und eine Fallunterscheideung notwendig ist! Somit ist Deine Variante wesentlich einfacher! Hoffentlich bekommen die von DassaultSystemes dies nicht mit und ändern es wieder! mfg, Lusilnie
------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carasianer Mitglied Elektroniker
Beiträge: 12 Registriert: 21.09.2006
|
erstellt am: 14. Dez. 2006 23:20 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von CAMiCADse: Der Activation-Status ist in einem Parameter hinterlegt, den man abfragen kann ("Component Activation State").
Danke für den Hinweis, damit hat's funktioniert. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tobiley Mitglied Masterstudent
Beiträge: 59 Registriert: 15.02.2010 Win XP CatiaV5 R17, R18, R19 HD2-Lizenz VB2008
|
erstellt am: 30. Jan. 2012 17:34 <-- editieren / zitieren --> Unities abgeben: Nur für Carasianer
Hallo, Ich habe mal eine Frage wenn ich ein Produkt mit einem Part darunter öffne und diese nicht automatisch aktivieren lasse (über die Einstellung in Tools Optionen "Do not activate...") und das Produkt auch nicht im Design-Modus ist. Kann ich dann herausfinden ob das Part aktiviert ist (also ob ActivateDefaultShape ausgeführt wurde?) Ich finde nämlich den Parameter "Component Activation State" nicht in der Parameterliste. Wenn ich dann die Baugruppe in den Design-Modus lade finde ich den Parameter, aber dann steht er schon auf True, obwohl das Bauteil noch nicht aktiviert wurde, sondern sich lediglich im Design-Modus befindet. Vielen Dank für eure Hilfe. Gruß Tobi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 30. Jan. 2012 17:51 <-- editieren / zitieren --> Unities abgeben: Nur für Carasianer
Servus Tobi Was meinst du mit "herausfinden ob das Part aktiviert". In diesem Thread ging es primär um deaktivierte Parts/Components (RMT auf Part -> Objekt -> Komponente deaktivieren) Wenn eine Komponente (auf diese Weise) deaktiviert ist wird der Parameter auch im Cache-Mode angezeigt. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |