Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Nur Elemente direkt unter eines GeoSets auswählen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Nur Elemente direkt unter eines GeoSets auswählen (1938 mal gelesen)
AndiKrue
Mitglied
Berater


Sehen Sie sich das Profil von AndiKrue an!   Senden Sie eine Private Message an AndiKrue  Schreiben Sie einen Gästebucheintrag für AndiKrue

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von ogard1 an!   Senden Sie eine Private Message an ogard1  Schreiben Sie einen Gästebucheintrag für ogard1

Beiträge: 442
Registriert: 12.09.2004

R19 SP2

erstellt am: 19. Feb. 2009 22:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndiKrue 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von AndiKrue an!   Senden Sie eine Private Message an AndiKrue  Schreiben Sie einen Gästebucheintrag für AndiKrue

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von ogard1 an!   Senden Sie eine Private Message an ogard1  Schreiben Sie einen Gästebucheintrag für ogard1

Beiträge: 442
Registriert: 12.09.2004

R19 SP2

erstellt am: 20. Feb. 2009 09:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndiKrue 10 Unities + Antwort hilfreich

Hallo,
sorry habe mich auf "die Anzahl der Elemente" bezogen,

die Anzahl der Geometrischen Sets bekommst du über "OpenBody"


selection.Search "CATPrtSearch.OpenBodyFeature,sel"


Gruß

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

AndiKrue
Mitglied
Berater


Sehen Sie sich das Profil von AndiKrue an!   Senden Sie eine Private Message an AndiKrue  Schreiben Sie einen Gästebucheintrag für AndiKrue

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von AndiKrue an!   Senden Sie eine Private Message an AndiKrue  Schreiben Sie einen Gästebucheintrag für AndiKrue

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Hannes12 an!   Senden Sie eine Private Message an Hannes12  Schreiben Sie einen Gästebucheintrag für Hannes12

Beiträge: 31
Registriert: 09.02.2010

erstellt am: 11. Jun. 2010 12:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndiKrue 10 Unities + Antwort hilfreich

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz