| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
| SF DRAWING , eine App
|
Autor
|
Thema: Meldung vom System übers Programm bestätigen (1485 / mal gelesen)
|
Greskamp Mitglied Ingenieur
Beiträge: 523 Registriert: 12.03.2003 MS: Windows 10 64bit OSD: 20.1 M020 ModelManager: 20.1 M020 NX 1899 TC 12.3
|
erstellt am: 20. Nov. 2018 12:41 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich würde gerne wissen ob es eine Möglichkeit gibt Systemmeldungen über das Programm mit "OK" zu bestätigen. Ich würde gerne über Mehrfachabwickln Konturen als dxf speichern, da erscheint dann aber immer diese Meldung am Ende. Kann man in den Code irgendwie rein oder gibt es eine Möglichkeit am Ende die Meldung zu bestätigen. Einfach mit ":OK" klappt leider nicht. Ist ein Befehl aus dem Sheet Metal ,aber vielleicht weiß ja auch jemand wie man das sonst macht. Code: (sha_multi_unfold :base_face 273.2791336522,1338.1179710881,1263.2176123695 :push_shop :process4 :off :process3 :off :process2 :off :process1 :off :process6 :on :push_interactive :drawing_options :output_wp :off :dxf :on :dxf "C:/Temp/testteil_Platine.dxf" :OVERWRITE :push_postprocess )
Danke ------------------ Gruß Peter
[Diese Nachricht wurde von Greskamp am 20. Nov. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
highway45 Moderator Bastler mit Diplom
Beiträge: 6378 Registriert: 14.12.2004 CoCreate Modeling V20 + PE6 NotePad++
|
erstellt am: 20. Nov. 2018 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für Greskamp
|
Greskamp Mitglied Ingenieur
Beiträge: 523 Registriert: 12.03.2003
|
erstellt am: 20. Nov. 2018 13:14 <-- editieren / zitieren --> Unities abgeben:
|
der_Wolfgang Moderator Tastenhauer
Beiträge: 2232 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.4780 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 21. Nov. 2018 18:06 <-- editieren / zitieren --> Unities abgeben: Nur für Greskamp
Du rufst sha_multi_unfold voll qualifiziert auf, also mit runder oeffnender Klammer am Anfang und runder schliessender Klammer am Ende. Da braucht es keine CANCEL oder COMPLETE, das ist dann recht sinnfrei. CANCEL / COMPLETE gibt es eigentlich (fast?) nur interaktiv. Also wenn du mit Mausklicks in der Bedienoberbläche rumfuhrwerkst. Und dann sieht man das auch im recorder file. Bei der Übernahme eines Recorder files in eine LISP sequence ist 'complete' dann fast immer ein ')'. a) was sagt denn die online-reference zu sha_multi_unfold? gibt es da noch eine option? b) trace mal sd-display-message. Ich denke diese gibt diese Message aus. ba) wenn ja, kann man diese verbiegen ------------------ ● Firefox ESR ● Java Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● BuFDi ● Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Greskamp Mitglied Ingenieur
Beiträge: 523 Registriert: 12.03.2003
|
erstellt am: 23. Nov. 2018 07:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Wolfgang, anbei das Bild von der online-reference zu sha_multi_unfold, da steht nicht wirklich was drin. Wenn ich Code: (sd-display-message "Na du!!" :title "Eilmeldung")
aufzeichne, wird OK drücken oder bestätigen mit return leider auch nicht aufgezeichnet. Was könnte ich jetzt machen wegen dem Verbiegen? ------------------ Gruß Peter [Diese Nachricht wurde von Greskamp am 23. Nov. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lix b Mitglied Konstrukteur, CAD-Admin
Beiträge: 292 Registriert: 03.10.2014 Creo Elements / Direct Modeling 20.4 Creo Elements / Direct Model Manager 20.4 <P>Notepad++ Win 11
|
erstellt am: 23. Nov. 2018 12:09 <-- editieren / zitieren --> Unities abgeben: Nur für Greskamp
Hallo Peter! Das "Verbiegen" könnte so ausschauen: Zunächst sicherst du dir die originale FNC mit Code: (setf (symbol-function 'custom::original-sd-display-message) (symbol-function 'oli:sd-display-message))
Dann definierst du eine Ersatzfunktion z.B. Code: (defun custom::message-override-fnc (text) (display "nur eine Textausgabe") )
Diese Ersatzfunktion schiebst du für das Programm an die Stelle der Originalfunktion Code: (setf (symbol-function 'oli:sd-display-message) (symbol-function 'custom::message-override-fnc))
Und schon kommt statt deinem Fenster nur das Resultat deiner Ersatzfunktion
Code: (oli:sd-display-message "TESTNACHRICHT")
Natürlich musst du in deinem Programm nach Durchführung wieder den Originalzustand herstellen Code: (setf (symbol-function 'oli:sd-display-message) (symbol-function 'custom::original-sd-display-message))
Wünsche allen noch ein schönes WE! ------------------ Viele Grüße Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Greskamp Mitglied Ingenieur
Beiträge: 523 Registriert: 12.03.2003
|
erstellt am: 23. Nov. 2018 15:26 <-- editieren / zitieren --> Unities abgeben:
|
der_Wolfgang Moderator Tastenhauer
Beiträge: 2232 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.4780 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 25. Nov. 2018 15:48 <-- editieren / zitieren --> Unities abgeben: Nur für Greskamp
Hinweis: die Verwendung von
- sd-display-error
- sd-display-message
- sd-display-warning
- sd-display-question
ist tunlichst zu vermeiden, wenn man auf 'recorderfähigkeit' Wert legt. Was ich mit dem recorder nicht mehr reproduzierbar abspielen kann, macht auch bei programmatischen Aufrufen meisten Ärger. Diese Dinge kann man alle mit dem Dialog Generator und :check-funktionen hinbekommen. Und das ist dann "recorder-fest". Aber ein (if (equal (sd-display-question "Alles im Lot?") :yes) ist halt einfacher geschrieben für viele. ein Variante des 'Funktions verbiegen' ist es a) den original Funktionszeiger zu speichern b) die Funktion neu zu definieren c) darin eine Abfrage zu haben, und mal diese und mal jenes auszugeben. Code: (in-package :OLI) ;; pseudo code!! (setq *original-sd-display-message*) (symbol-function 'oli:sd-display-message))(defun sd-display-message (....) ;; parameter wie IKIT docu (if (curr-cmds) contains 'tricky_dialog) (display message) ;; (sd-display-alert message ...) ;; else (apply '*original-funktions-zeiger* args) ))
Ganz frech kann man sd-display-message auch komplett durch einen Aufruf von sd-display-alert ersetzen (mit einer langen auto-close-time) ------------- Im produktive Betrieb vermeide ich die display-box auf-teufel-komm-raus. Denn auch die muss ich sonst wegschieben/zu machen. Behindert also den Arbeitsfluss. sd-display-alert ist eine gute Altenative IMHO. Schön wäre es wenn sd-display-alert eine Historie anlegt, die man sich dann, beispielsweise im browser) ggf. noch mal ansehen kann (newest on top). ------------------ ● Firefox ESR ● Java Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● BuFDi ● Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lix b Mitglied Konstrukteur, CAD-Admin
Beiträge: 292 Registriert: 03.10.2014 Creo Elements / Direct Modeling 20.4 Creo Elements / Direct Model Manager 20.4 <P>Notepad++ Win 11
|
erstellt am: 26. Nov. 2018 07:07 <-- editieren / zitieren --> Unities abgeben: Nur für Greskamp
Guten Morgen! So etwas gezielt in der Hilfe finden wird schwierig, weil es schnell das Programm instabil macht, wenn die Ersatz-FNC nicht zum Original passt:
o Welche Variablen müssen übergeben werden o Welche Ergebnisse werden erwartet um ggf. von nachfolgenden FNCs weiterverwendet werden zu können o Syntaxfehler o ... Auf solche Lösungen kommt man mit frechem Probieren. In diesem Forum tauchen immer wieder hilfreiche Codeschnipsel und wenn man anders nicht ans Ziel kommt, bleiben oft nur so ein Vorgehen um das Programm zu "überreden". Die Variante von Wolfang mit "sd-display-alert" ist natürlich schöner, bei den ersten Versuchen greife ich jedoch gerne auf das Ausgabefenster zurück, um schnell zu sehen ob alles läuft, oder wenn es komplexer wird mittels Konsole. Sollte ja nur veranschaulichen, dass der Funktionswechsel auch die gewünschte Wirkung zeigt. ------------------ Viele Grüße Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |