Autor
|
Thema: Methode Solid Status (850 / mal gelesen)
|
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 29. Nov. 2018 14:58 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, gibt es eine Methode um den Staus eines Solid´s abzufragen? Hintergrund ist der, das ich deaktivierte Solids finden möchte um die darüberliegende boolesche Operation zu deaktivieren. ------------------ Gruß Uwe Auch Catia ist nur ein Mensch! 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: 29. Nov. 2018 16:08 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Servus Uwe Du könntest zB die Suche verwenden: Code: selection1.Search "CATPrtSearch.MechanicalFeature.Activity=FALSE,all"
(ggf dann nur in einem selektierten Körper/Element suchen) EDIT: oder per Sublist die dazugehörigen Parameter ausgeben lassen und auswerten (ist der letzte Parameter im der Aktivierungsstatus?) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 05. Dez. 2018 10:19 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, bin beim Solid angekommen das verboolt ist. Code: For i = 1 To oBodies.Count Set oBody = Nothing Set oBody = oBodies.Item(i) Set oShapes = oBody.Shapes If oShapes.Count <> 0 Then If TypeName(oShapes.Item(1)) = "Solid" Then Set oSolid = Nothing Set oSolid = oShapes.Item(1) operated = oBody.InBooleanOperation If operated = False Then Exit Function End If
Wie komme ich nun an den Stauts ob das Solid deaktiviert ist?
------------------ Gruß Uwe Auch Catia ist nur ein Mensch! 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: 05. Dez. 2018 17:27 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Servus Uwe Mir ist nicht bekannt das man Solids deaktivieren kann (ggf erst in einem höheren Release). Über die Selektion könnte es so gehen: Code: oSel.Clear oSel.Add oSolid oSel.Search "CATPrtSearch.MechanicalFeature.Activity=FALSE,sel" if oSel.Count <> 0 then MsgBox "Solid ist deaktiviert" end if
Meine Idee mit dem Parameter konnte ich nicht ausprobieren. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 05. Dez. 2018 22:17 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd; Zitat: Mir ist nicht bekannt das man Solids deaktivieren kann
Wie kommst du denn da drauf? Oder meinst du per Makro? ------------------ Gruß Uwe Auch Catia ist nur ein Mensch! [Diese Nachricht wurde von moppesle am 05. Dez. 2018 editiert.] 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: 06. Dez. 2018 08:13 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Servus Uwe Schon mal die Methode IsInactive probiert? Code: if oPart.IsInactive(oSolid) then
Gruß Bernd PS: Weißt du schon wie du vom Body auf die Boole'sche Operation kommst? ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 06. Dez. 2018 08:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, Danke dir. Zitat: Schon mal die Methode IsInactive probiert?
danke dir probiere das mal aus. Zitat: PS: Weißt du schon wie du vom Body auf die Boole'sche Operation kommst?
Das der Body, in dem sich das Solid befindet, verboolt ist hab ich schon. Code: operated = oBody.InBooleanOperation If operated = False Then
Muss ich da noch etwas beachten?
------------------ Gruß Uwe Auch Catia ist nur ein Mensch! 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: 06. Dez. 2018 08:38 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Servus AFAIR weiß der Body nicht in welcher Boole'schen Operation er verwendet wird. ggf musst du dein Makro umstricken: per Suche Boole'sch Operationen suchen -> auf deren Body zugreifen -> prüfen ob es einen Solid gibt -> usw. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |