Autor
|
Thema: Nur Elemente direkt unter eines GeoSets auswählen (1938 mal gelesen)
|
AndiKrue Mitglied Berater
Beiträge: 72 Registriert: 04.12.2008 Windows XP Prof x64 Edition Intel Xeon W3520 @ 2.67 GHz 8 GB RAM, Nvidia Quadro FX 1800 CATIA V5R19
|
erstellt am: 19. Feb. 2009 15:30 <-- editieren / zitieren --> Unities abgeben:
Hallo Ja ich habe schon wieder eine Frage. Ist es möglich über selection1.Search die erste Ebene der Auswahl zu selektieren? Also einfach alle Elemente direkt unter einer Auswahl Die Auswahl ist immer ein GeoSet. Ich bräucht kurz gesagt einfach die Anzahl der Elemente, die direkt unter einem GeoSet liegen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 19. Feb. 2009 22:32 <-- editieren / zitieren --> Unities abgeben: Nur für AndiKrue
Hallo, anbei der Code, ein Geometrische Set ist "InputObjectType" und muß oder kann nur selektiert werden, gibt anzahl der Elemente darunter. Viel Spass
Dim InputObjectType(0) Set Document = CATIA.ActiveDocument Set Selection = Document.Selection Set HybridBodies = Document.Part.HybridBodies InputObjectType(0)="HybridBody" Status=Selection.SelectElement2(InputObjectType,"Geometrical Set",true) selection.Search "CATPrtSearch.GeometricFeature,sel"
For i=1 To selection.Count
MsgBox (Selection.Count) Next
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AndiKrue Mitglied Berater
Beiträge: 72 Registriert: 04.12.2008 Windows XP Prof x64 Edition Intel Xeon W3520 @ 2.67 GHz 8 GB RAM, Nvidia Quadro FX 1800 CATIA V5R19
|
erstellt am: 20. Feb. 2009 08:50 <-- editieren / zitieren --> Unities abgeben:
Sub CATMain() Auswahl = selection1.selectelement2(Filter2, "Zu kopierendes Geoset Auswählen", true) 'Auswahl des Users Selection1.search "CATPrtSearch.GeometricFeature,sel" MsgBox(selection1.count) End Sub Viele Dank, aber das geht leider nicht, da, ich wirklich nur die 1. Ebene unter dem Geoset brauche inklusive der Geosets unter dem Geoset, aber nicht die darin enthaltenen Objekte.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 20. Feb. 2009 09:19 <-- editieren / zitieren --> Unities abgeben: Nur für AndiKrue
|
AndiKrue Mitglied Berater
Beiträge: 72 Registriert: 04.12.2008 Windows XP Prof x64 Edition Intel Xeon W3520 @ 2.67 GHz 8 GB RAM, Nvidia Quadro FX 1800 CATIA V5R19
|
erstellt am: 20. Feb. 2009 11:51 <-- editieren / zitieren --> Unities abgeben:
Hallo ich mache es jetzt folgendermaßen: Code: Sub CATMain()Auswahl = selection1.selectelement2(Filter2, "Zu kopierendes Geoset Auswählen", true) 'Auswahl des Users Set hybridbodyEM(Ebene&ItemPos(Ebene)) = selection1.item(1).value Set hybridBodiesEM(Ebene&ItemPos(Ebene)) = hybridbodyEM(Ebene&ItemPos(Ebene)).hybridbodies Set hybridShapesEM(Ebene&ItemPos(Ebene)) = hybridbodyEM(Ebene&ItemPos(Ebene)).hybridshapes Set hybridSketchesEM(Ebene&ItemPos(Ebene)) = hybridbodyEM(Ebene&ItemPos(Ebene)).hybridsketches Set BodiesEM(Ebene&ItemPos(Ebene)) = hybridbodyEM(Ebene&ItemPos(Ebene)).bodies Set GeometricElementsEM(Ebene&ItemPos(Ebene)) = hybridbodyEM(Ebene&ItemPos(Ebene)).geometricelements u=1 Selection1.clear For r = 1 To hybridBodiesEM(Ebene&ItemPos(Ebene)).Count selection1.add hybridBodiesEM(Ebene&ItemPos(Ebene)).item(r) u=u+1 Next For r = 1 To hybridShapesEM(Ebene&ItemPos(Ebene)).Count selection1.add hybridshapesEM(Ebene&ItemPos(Ebene)).item(r) u=u+1 Next For r = 1 To hybridsketchesEM(Ebene&ItemPos(Ebene)).Count selection1.add hybridsketchesEM(Ebene&ItemPos(Ebene)).item(r) u=u+1 Next For r = 1 To BodiesEM(Ebene&ItemPos(Ebene)).Count selection1.add BodiesEM(Ebene&ItemPos(Ebene)).item(r) u=u+1 Next For r = 1 To GeometricelementsEM(Ebene&ItemPos(Ebene)).Count selection1.add Geometricelements(Ebene&ItemPos(Ebene)).item(r) u=u+1 Next Msgbox(selection1.count) End Sub
Ich finde es nicht so elegant, aber es funktioniert. Achso ich muss mit den ausgewählten Elementen weiterarbeiten, deshalb der Aufwand. Und auch nicht an den Deklarationen mit Ebene&ItemPos(Ebene) stören, die brauch ich für den Rest vom Script und müssen noch anders Organisiert werden. Die "Set"s werd ich wohl in den Schleifen machen. [Diese Nachricht wurde von AndiKrue am 20. Feb. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AndiKrue Mitglied Berater
Beiträge: 72 Registriert: 04.12.2008 Windows XP Prof x64 Edition Intel Xeon W3520 @ 2.67 GHz 8 GB RAM, Nvidia Quadro FX 1800 CATIA V5R19
|
erstellt am: 20. Feb. 2009 12:22 <-- editieren / zitieren --> Unities abgeben:
Hier nochmal als Sub. Somit kann man immer in der aktuellen Auswahl nur die Unterelemente selektieren und damit arbeiten. Code: Sub SearchAndSelect()Auswahl = selection1.selectelement2(Filter2, "Geoset", true) 'Auswahl des Users Dim hybridbodySAS As Object Dim hybridBodiesSAS As Object Dim hybridShapesSAS As Object Dim hybridSketchesSAS As Object Dim BodiesSAS As Object Dim GeometricElementsSAS As Object Set hybridbodySAS = selection1.item(1).value Set hybridBodiesSAS = hybridbodySAS.hybridbodies Set hybridShapesSAS = hybridbodySAS.hybridshapes Set hybridSketchesSAS = hybridbodySAS.hybridsketches Set BodiesSAS = hybridbodySAS.bodies Set GeometricElementsSAS = hybridbodySAS.geometricelements Selection1.clear For r = 1 To hybridBodiesSAS.Count selection1.add hybridBodiesSAS.item(r) Next For r = 1 To hybridShapesSAS.Count selection1.add hybridshapesSAS.item(r) Next For r = 1 To hybridsketchesSAS.Count selection1.add hybridsketchesSAS.item(r) Next For r = 1 To BodiesSAS.Count selection1.add BodiesSAS.item(r) Next For r = 1 To GeometricelementsSAS.Count selection1.add GeometricelementsSAS.item(r) Next Msgbox(selection1.count) End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hannes12 Mitglied Konstrukteur
Beiträge: 31 Registriert: 09.02.2010
|
erstellt am: 11. Jun. 2010 12:58 <-- editieren / zitieren --> Unities abgeben: Nur für AndiKrue
JO, danke! Habe das Problem nun mit einer For Next Schleife gelöst, in der ich alle Elemente, die sich in dem geometrischen Set befinden, definiere und dann deaktiviere. Die Reaction die sich in dem Geometrischen Set befindet konnte ich damit zwar bisher nicht deaktivieren, aber das fange ich dann einfach in der entsprechenden Reaction ab... Gruß Hannes Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |