| |  | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 | | |  | KISTERS 3DViewStation: verbesserte Effizienz durch optimierte Bedienoberfläche, eine Pressemitteilung
|
Autor
|
Thema: Nummern von neuen Elementen (753 mal gelesen)
|
QBert Mitglied Senior Engineer
 Beiträge: 5 Registriert: 26.11.2002
|
erstellt am: 20. Mai. 2009 11:17 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, wenn ich im GeoSet ein neues Element generiere, bekommt es eine automatisch generierte Nummer zugewiesen (z.B. "Linie.4").
Code: Dim hybridShapeLinePtPt1 As HybridShape Set hybridShapeLinePtPt1 = hybridShapes1.Item("Linie.1") selection1.Add hybridShapeLinePtPt1 selection1.Copy selection1.PasteSpecial "CATPrtResultWithOutLink"
Frage: Kann ich auf die Vergabe der Nummer irgendwie einwirken? Oder wie bekomme ich raus, wie der Name/Nummer des gerade generierten Elements lautet? Den Zähler brauche ich dann für einen Schleifenindex.Danke! Und bitte nicht meinen anderen Thread vergessen Messungen und Binormalen am 3D-Spline ------------------ _________________________ Gruß aus der Krise QBert Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen. Albert Einstein (der wohl auch schon mit Catia arbeiten durfte...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Ehrenmitglied V.I.P. h.c. Manager
     
 Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 20. Mai. 2009 16:55 <-- editieren / zitieren --> Unities abgeben:          Nur für QBert
Hallo, auf die Vergabe dieser Nummer kannst du nicht direkt einwirken. Es gibt mehrere Möglichkeiten je nachdem was du machen willst. Da wäre z.B. das du dir erst das Feature (z.B. die Linie) erstellt und sie anschließend umbenennst. Hier kannst du ja dann einen Zähler einfügen. Eine weitere Möglichkeit wäre das Geo-Set erst nach allen Linien zu durchsuchen, dann die höschste Nummer (am Ende) auszulesen und dann den Zähler ab dort weiter laufen zu lassen. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
QBert Mitglied Senior Engineer
 Beiträge: 5 Registriert: 26.11.2002
|
erstellt am: 20. Mai. 2009 20:11 <-- editieren / zitieren --> Unities abgeben:         
Hallo und vielen Dank für den ersten Tip! Ich werde noch wahnsinnig. Der Versuch einer Lösung bewirkt unmittelbar eine ganze Kaskade neuer Fragen. Die über Code: selection1.PasteSpecial "CATPrtResultWithOutLink"
frisch erstellte Linie hat ja "irgendeine" Nummer. Abhängig von der Historie mag es sein, dass die letzte im Strukturbaum existierende Linie z.B. "Linie.6" ist. Wenn aber weitere Linien zwischendurch gelöscht wurden, erhält die neue Linie den Namen "Linie.5920" oder so. Dann müßte meine Schleife bei 5921 beginnen, obwohl das eine Riesenlücke in der Numerierung klafft.  Für das Finden der letzten Liniennummer reichen meine bescheidenen Kenntnisse offensichtlich nicht aus. Und ich sitze noch im Büro und gleich fängt Fussball an. Über Code: selection1.Search ".Linie;Alle" Dim NumOfLines As Long NumOfLines = selection1.Count
krieg' ich zwar die Anzahl der vorhandenen Linien im CATIA.ActiveDocument.Selection, aber wie komme ich denn nun weiter an die Nummer dieser letzten selektierten Linie?Kann sich noch jemand erbarmen? Danke! ------------------ _________________________ Gruß aus der Krise QBert Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen. Albert Einstein (der wohl auch schon mit Catia arbeiten durfte...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
QBert Mitglied Senior Engineer
 Beiträge: 5 Registriert: 26.11.2002 Win10 x64 Catia V5R30SP02 Konfigurationen: HD2 MD2 Add-On's: DSE QSR
|
erstellt am: 20. Mai. 2009 20:25 <-- editieren / zitieren --> Unities abgeben:         
Hmm, die Sequenz Code: selection1.Add hybridShapeLinePtPt1 selection1.Copy selection1.PasteSpecial "CATPrtResultWithOutLink" Dim NewItem As AnyObject Set NewItem = selection1.Item(1).Value
liefert mir zumindest den Namen der zuletzt generierten Linie. Wie ich daraus die .## Nummer auslese - keine Ahnung, darum kümmere ich mich dann am Montag :-)Bis dahin und schönen Brückentag!
------------------ _________________________ Gruß aus der Krise QBert Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen. Albert Einstein (der wohl auch schon mit Catia arbeiten durfte...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zoltan.bekesi Mitglied
 
 Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 20. Mai. 2009 20:27 <-- editieren / zitieren --> Unities abgeben:          Nur für QBert
Hallo QBert, ist zwar keine schöne Lösung, hat mir aber schon einige Male geholfen. Die Name des zuletzt eingefügten Objektes kannst du ausfinden, wenn du in der Collection das letzte Objekt suchst. Z.B.: du kopierst ein Punkt und fügst es in die GeoSet mit der Name ZielGeoSet ein. Dazu musstest du ja den GeoSet vorher schon zu eine Selection hinzufügen, also du hast den Objekt noch. Dieses Objekt hat ein Collection Names HybridShapes, dieses Collection eine Eigenschaft Count. Der letzte Objekt nach dem Einfügen ist also: ZielGeoSet.HybridShapes.Item(ZielGeoSet.HybridShapes.Count). Wenn du unbedingt die Name willst, kannst du es hier abfragen, ich würde dir aber raten, die Namen nur als letze Möglichkeit, bzw. als Schnittstelle verwenden. Innerhalb der Makros gibt es ja die Objekte und auf alles was erzeugt wird, kann man später noch als der Objekt zugreifen. Gruß, Zoltan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |