| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
Autor
|
Thema: letzter neue Teilename oder sd-gen-obj-basename (562 mal gelesen)
|
rmcc1980 Mitglied Ingenieur
Beiträge: 358 Registriert: 06.06.2003 Drafting 18.1 Modeling 18.1 MM Win7 64
|
erstellt am: 14. Jul. 2005 15:11 <-- editieren / zitieren --> Unities abgeben:
Hallo, wenn ich mit (create_part :name (sd-gen-obj-basename :part :prefix n_part) :owner bgr) ein neues Teil anlege, funktioniert das, ich weiss dann aber nicht welcher Teilename generiert wurde. Hier würde ein INQ für den letzten Teilenamen helfen, habe ich aber nicht gefunden. Gibt es das? Wenn ich folgendermaßen vorgehe: (setf n_part (sd-gen-obj-basename :part :prefix n_part)) (create_part :name n_part :owner bgr) funktioniert das nur unter / , weil sd-gen-obj-basename nur die Teile direkt unter / prüft. Oder geht das auch anders? Schöne Grüße Bernd
[Diese Nachricht wurde von rmcc1980 am 14. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 14. Jul. 2005 15:15 <-- editieren / zitieren --> Unities abgeben: Nur für rmcc1980
Siehe IKIT-Doku: sd-gen-obj-basename kennt ein Keyword :parent, das genau dafuer gedacht ist, dass man die Baugruppe angeben kann, in der der neue Name eindeutig sein soll. Also: Code:
(setf newname (sd-gen-obj-basename :part :parent bgr :prefix prefix)) (create_part ....)
Claus
------------------ OneSpace Designer Modeling FAQ: http://www.clausbrod.de/Osdm/ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rmcc1980 Mitglied Ingenieur
Beiträge: 358 Registriert: 06.06.2003 Drafting 18.1 Modeling 18.1 MM Win7 64
|
erstellt am: 14. Jul. 2005 15:27 <-- editieren / zitieren --> Unities abgeben:
Hallo Claus, danke für die superschnelle Antwort. Wer lesen kann und dann noch versteht was er liest, ist klar im Vorteil. Ich war so fixiert auf die Suche nach einem Parameter 'owner', dass ich das einfach nicht richtig gelesen habe. Völlig zerknirscht, Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorothea Mitglied
Beiträge: 242 Registriert: 22.11.2001
|
erstellt am: 14. Jul. 2005 15:50 <-- editieren / zitieren --> Unities abgeben: Nur für rmcc1980
Hallo Bernd, Eine Sache solltest du noch beachten: Der Dialog zum Erzeugen von Teilen ist naemlich auch "schlau". Und angenommen, unter "/" gibt es bereits ein Teil mit dem Namen n_part, dann benennt er das Teil um. Ist ja auch korrekt. Deshalb musst du aufpassen, das du die Parameter in der richtigen Reihenfolge uebergibst Wenn der Dialog zuerst den owner bekommt, dann wird der Namenscheck auch fuer die richtige Baugruppe durchgefuehrt. Dein Code sollte also so aussehen:
Code: (create_part :owner bgr :name n_part)
Die Parameter :owner und :name sind vertauscht. Gruss Dorothea Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Ehrenmitglied V.I.P. h.c. Tastenhauer
Beiträge: 2017 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build19044.2364 ● Drafting V17~V20.5.1 ● Modeling V17~V20.5.1
|
erstellt am: 20. Jul. 2005 19:43 <-- editieren / zitieren --> Unities abgeben: Nur für rmcc1980
Nur so als Alternative, fuer die denen der Name des Teils egal ist (aus welchen Gruenden auch immer). a) ruft man create_part via sd-call-cmds auf, ist der return-value das sel-item des gerade erzeugten parts. b) ruft man nach create_part direkt sd-inq-curr-part auf hat man das selbe sel-item in der Hand. das 'INQ für den letzten Teilename' ist einfach sd-inq-curr-part. Man muss es nur 'schnell' genug erfragen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Martin.M Mitglied Maschinenbau-Ingenieur
Beiträge: 352 Registriert: 05.10.2002
|
erstellt am: 07. Nov. 2005 14:32 <-- editieren / zitieren --> Unities abgeben: Nur für rmcc1980
Hallo, ich möchte ein Exemplar einer Baugruppe unter root erstellen, wenn die Baugruppe nicht unter root ist. Mit sd-gen-obj-basename funktioniert das auch mit einem Schönheitsfehler. Auch wenn der Name "nicht" existiert wird eine 1 an den gewünschten Namen gehängt. So steht es auch in der Doku. Das kann anscheinend nicht abgeschaltet werden. Gibt es eine andere Möglichkeit zu prüfen, ob ein Objekt mit dem Namen unter root existiert ? Unten findet Ihr den Code. Tschuess Martin
(setf exemplar-name (sd-inq-obj-basename A_ASSEM)) (when (sd-inq-parent-obj A_ASSEM) (setf exemplar-name (sd-gen-obj-basename :assembly :parent "/" :prefix (sd-inq-obj-basename A_ASSEM))) (create_multiple_pa :share :source A_ASSEM :name exemplar-name :owner "/") )
------------------ OSDM - Die freie Wissensdatenbank WorkManager Forum Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
Beiträge: 2143 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook 17 G4, Windows 10 Pro 64
|
erstellt am: 07. Nov. 2005 15:02 <-- editieren / zitieren --> Unities abgeben: Nur für rmcc1980
|
Martin.M Mitglied Maschinenbau-Ingenieur
Beiträge: 352 Registriert: 05.10.2002
|
erstellt am: 07. Nov. 2005 15:54 <-- editieren / zitieren --> Unities abgeben: Nur für rmcc1980
Hallo Walter, danke für Deine schnelle Hilfe. Ich habe es eingebaut. Zusaetzlich habe ich noch ein Punkt vor der Nummerierung des Namens eingebaut. Tschuess Martin
(setf exemplar-name (sd-inq-obj-basename A_ASSEM)) (when (sd-inq-parent-obj A_ASSEM) (when (sd-pathname-to-obj (format NIL "/~A" (sd-inq-obj-basename A_ASSEM))) (setf exemplar-name (sd-gen-obj-basename :assembly :parent "/" :prefix (format NIL "~A."(sd-inq-obj-basename A_ASSEM))))) (create_multiple_pa :share :source A_ASSEM :name exemplar-name :owner "/") ) ------------------ OSDM - Die freie Wissensdatenbank WorkManager Forum
[Diese Nachricht wurde von Martin.M am 07. Nov. 2005 editiert.] [Diese Nachricht wurde von Martin.M am 07. Nov. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |