| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
| Webcast: PTC | Smart Connected Manufacturing, ein Webinar am 25.10.2024
|
Autor
|
Thema: 3D-Fenster erstellen aus Annotation-Dialog (978 mal gelesen)
|
Andreas 253 Mitglied
Beiträge: 157 Registriert: 01.03.2002
|
erstellt am: 23. Mrz. 2009 13:08 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich stehe mal wieder vor einem Problem: Aus einem Dialog im Annotation heraus versuche ich ein 3D-Fenster zu öffnen, um dort Kanten auszuwählen. Dazu rufe ich diese Funktion auf: (ANSICHT wird vorher im Dialog abgefragt) Code:
(My-create-3D-viewport () (let (teil) (setf teil (sd-am-view-set-struct-owner (sd-am-inq-view-set (sd-am-view-struct-view-set (sd-am-inq-view ANSICHT))))) (progn (sd-call-cmds (create_vp :name "Kanten_auswaehlen" )) (sd-call-cmds (add_to_vp_drawlist "Kanten_auswaehlen" teil)) ) ) ;; let )
leider bekomme ich dabei die Fehlermeldung "unzulässiger Aufruf einer Aktionsroutine" Wenn ich sd-call-cmds weglasse, funktioniert alles, allerdings bricht dann der Dialog ab. Weiß jemand Rat? Wir arbeiten mit OSDM V16.00A und Windows XP Gruß Andreas ------------------ 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: 23. Mrz. 2009 17:34 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas 253
|
der_Wolfgang Moderator Tastenhauer
Beiträge: 2219 Registriert: 3.20. ● PE20+60+80@home ● W10 Pro Build19045.4780 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 23. Mrz. 2009 19:03 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas 253
ich nehme an Dein code schnipsel ist eine :local-functions deines Dialogs? Um Missverständnissen vorzubeugen an dem progn liegt es nicht das Du dies Fehlermeldung erhälst. Um Claus's Frage zu beantworten:
Code: (trace create_vp add_to_vp_drawlist)
plus: Konsole Fenster einschalten.. wenn dann die Fehlermeldung kommt ohne umschweife (NIX im OSD klicken!) zur Konsole wechseln und gucken wo "er" steckt.den owner kann man auch via Code: (sd-inq-parent-obj (sd-inq-parent-obj (sd-am-view-struct-view-3d (sd-am-inq-view ANSICHT))))
bestimmen. Denn im 3D liegt der Owner immer 2 Ebenen über der 3D-Ansicht. Das scheint mir etwas kompakter als ueber die view-set-struktur.------------------ ● Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
Beiträge: 2219 Registriert: 3.20. ● PE20+60+80@home ● W10 Pro Build19045.4780 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 23. Mrz. 2009 19:33 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas 253
|
Andreas 253 Mitglied
Beiträge: 157 Registriert: 01.03.2002
|
erstellt am: 24. Mrz. 2009 09:26 <-- editieren / zitieren --> Unities abgeben:
Danke erstmal für die Antworten. Das progn war nur ein Versuch, ist schon klar, daß das nicht unbedingt nötig ist wenn das let davor steht. Das Protokollfenster hüllt sich in schweigen, es kommt nicht das geringste. Die Meldung stammt definitiv vom create_vp, die nächste Zeile bringt dann zwar zwangsläufig auch eine Fehlermeldung weil das Fenster nicht da ist, aber das ist ja auch logisch. P.S.: Ach ja, es ist eine local-function ------------------
[Diese Nachricht wurde von Andreas 253 am 24. Mrz. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 659 Registriert: 20.11.2006 Win11 Pro 23H2 Core i7-12700, 32GB RAM, Quadro P620 Creo Elements/Direct 19.0 M030 ModelManager 19.0 License Server 19.0 F000 clisp,VB.net,VBA,AHK,Python
|
erstellt am: 24. Mrz. 2009 11:51 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas 253
Also ich habe keinerlei Probleme in v15.50C und 16.00A. Der Fehler im Makro liegt höchstwahrscheinlich außerhalb des geposteten Teils. Code:
(in-package :custom) (use-package :oli)(sd-defdialog 'am_test :dialog-title "am_test" ;:toolbox-button nil :variables '( (ANSICHT :selection *sd-anno-view-seltype* :prompt-text "Besitzeransicht angeben." :title "Ansicht" :multiple-items nil) ) :local-functions '( (My-create-3D-viewport () (let (teil) (setf teil (sd-am-view-set-struct-owner (sd-am-inq-view-set (sd-am-view-struct-view-set (sd-am-inq-view ANSICHT))))) (sd-call-cmds (create_vp :name "Kanten_auswaehlen")) (sd-call-cmds (add_to_vp_drawlist "Kanten_auswaehlen" teil)) ) ;; let ) );;local-functions :cancel-action '() :ok-action '(My-create-3D-viewport) );;sd-defdialog
------------------ Grüße pw[Diese Nachricht wurde von Patrick Weber am 24. Mrz. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas 253 Mitglied
Beiträge: 157 Registriert: 01.03.2002
|
erstellt am: 24. Mrz. 2009 13:08 <-- editieren / zitieren --> Unities abgeben:
Hurra, das wars... Nachdem ich Deine Variante nach und nach zu meiner umgebaut habe, hat sich der Fehler zu erkennen gegeben: Ich hatte einen vorhandenen Dialog kopiert und oben stand die Zeile
Code: :dialog-type :interrupt
Nachdem ich diese entfernt hatte, klappte es. Ich verstehe zwar noch nicht ganz den Zusammenhang, aber so komme ich erstmal weiter. Danke Euch allen für die Hilfe! ------------------ 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: 24. Mrz. 2009 15:27 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas 253
|
Andreas 253 Mitglied
Beiträge: 157 Registriert: 01.03.2002
|
erstellt am: 01. Apr. 2009 14:06 <-- editieren / zitieren --> Unities abgeben:
Nochmal ein kleines Problem auf der Endgeraden: Mein Makro läuft soweit schon ganz gut, aber einen kleinen Schönheitsfehler hat es noch: Nachdem das 3D-Fenster wieder geschlossen wurde, ist das Annotation-Fenster nicht mehr maximiert. Gibt es eine Möglichkeit, das danach wieder hinzubekommen? Noch besser: gibt es eine Möglichkeit, vorher abzufragen, ob es maximiert ist, so daß es nur dann wieder maximiert werden muß, wenn es das auch vorher war? Leider bin ich weder in der Hilfe noch im Forum fündig geworden. Gruß Andreas ------------------ 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: 01. Apr. 2009 15:36 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas 253
|
der_Wolfgang Moderator Tastenhauer
Beiträge: 2219 Registriert: 3.20. ● PE20+60+80@home ● W10 Pro Build19045.4780 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 01. Apr. 2009 20:18 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas 253
|
Andreas 253 Mitglied
Beiträge: 157 Registriert: 01.03.2002
|
erstellt am: 02. Apr. 2009 14:02 <-- editieren / zitieren --> Unities abgeben:
Hallo und nochmal Danke! Jetzt funktioniert es zu meiner Zufriedenheit. Ich habe das Ergebnis der ganzen Mühe mal angehängt, vielleicht hat noch jemand Verwendung dafür. Sinn des ganzen ist es, Umfanglänge und minimalen Radius von Durchbrüchen zu ermitteln. Ein ähnliches Makro von Walter Geppert hat mir da auch gute Dienste als Vorlage geleistet, Danke Walter! Gruß Andreas ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |