| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
| Traumwerkzeuge für die Traumfabrik , ein Anwenderbericht
|
Autor
|
Thema: Dialoge so pünktlich wie die Bahn (1591 mal gelesen)
|
AlexG Mitglied
Beiträge: 133 Registriert: 05.04.2013 CP/M; 6510@0,985249 MHz; 64KB RAM; 20KB ROM; MOS 6569
|
erstellt am: 27. Jul. 2013 18:32 <-- editieren / zitieren --> Unities abgeben:
Hallo liebes Forum, beim ausführen des folgenden exemplarischen Codes passiert etwas merkwürdiges. Code: (defun test () (sd-show-dialog-shell "MY-DIALOG") (sleep 5))
Mein Dialog wird erst angezeigt, nachdem der Sleep ausgeführt wurde. Auch auf Events reagiert er nicht. Das gleich passiert auch, wenn ich an die Stelle des sd-show-dialog-shell ein simples display setze. Bei einem sd-display-message jedoch verhält er sich wie erwartet. Kann jemand dieses Verhalten nachvollziehen, sich erklären, oder hat es sogar einen Grund? Und am wichtigsten für mich, kann man es umgehen? Besten Dank vorab. Gruß Alex ------------------ Computer sind unbrauchbar. Sie können nur Fragen beantworten. Pablo Picasso, Maler 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: 28. Jul. 2013 13:21 <-- editieren / zitieren --> Unities abgeben: Nur für AlexG
Ich bin ja schon ein paar Jahre raus aus der Modeling-Entwicklung, aber wenn ich mal aus der Hüfte heraus schießen sollte, würde ich vermuten: Die Funktion (test) läuft im gleichen Thread wie das UI. Daher werden Events erst dann zuverlässig abgearbeitet, sobald die Funktion beendet ist, also nach dem (sleep). ------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/ [Diese Nachricht wurde von clausb am 28. Jul. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AlexG Mitglied
Beiträge: 133 Registriert: 05.04.2013 CP/M; 6510@0,985249 MHz; 64KB RAM; 20KB ROM; MOS 6569
|
erstellt am: 28. Jul. 2013 15:48 <-- editieren / zitieren --> Unities abgeben:
*EIN.ZÖGERLICHES.UND.LEISES* ok... Vielleicht stehe ich ja auch nur etwas auf dem Schlauch. Aber habe ich denn überhaupt eine Möglichkeit (meine) Funktionen in separate Threads zu legen? *AM.KOPF.KRATZ* Gruß Alex ------------------ Computer sind unbrauchbar. Sie können nur Fragen beantworten. Pablo Picasso, Maler 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: 29. Jul. 2013 17:33 <-- editieren / zitieren --> Unities abgeben: Nur für AlexG
|
AlexG Mitglied
Beiträge: 133 Registriert: 05.04.2013 CP/M; 6510@0,985249 MHz; 64KB RAM; 20KB ROM; MOS 6569
|
erstellt am: 29. Jul. 2013 17:56 <-- editieren / zitieren --> Unities abgeben:
...schade. Besten Dank für ihre Antworten Herr Brod. Um einen "Fortschrittsbalken Dialog" (komisches Wort, sagt man das so?) zu basteln, versuchen Multithreading (z.B. Bordeaux Threads) in das Kyoto Common Lisp zu implementieren (ich weiß, manchmal habe ich verrückte Ideen ) ist dann auch wohl mit Spatzen auf Kanonen geschossen - davon abgesehen, wäre das wahrscheinlich auch nicht möglich (in unter einer Dekade). Aber es muss doch irgendwie gehen... also wenn einer noch eine Ideen hat, wie man einen Fortschrittsbalken Dialog bastelt (ich kann mich einfach nicht an dieses Wort gewöhnen), immer her damit. Gruß Alex
------------------ Computer sind unbrauchbar. Sie können nur Fragen beantworten. Pablo Picasso, Maler 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: 29. Jul. 2013 18:39 <-- editieren / zitieren --> Unities abgeben: Nur für AlexG
Seufz... leider ging meine Zeit im Modeling-Team zu Ende, kurz bevor ich dazu kam, diverse Erweiterungen in das dort verwendete KCL-Derivat einzubauen, die schon lange auf meiner Wunschliste waren. Zum Beispiel Multithreading-Support... Ich erinnere mich dunkel, daß man mit Tricks erzwingen konnte, daß Events zwischendurch abgearbeitet werden. Weiß aber leider nicht mehr, wie das ging.
------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AlexG Mitglied
Beiträge: 133 Registriert: 05.04.2013 CP/M; 6510@0,985249 MHz; 64KB RAM; 20KB ROM; MOS 6569
|
erstellt am: 29. Jul. 2013 19:52 <-- editieren / zitieren --> Unities abgeben:
Auch auf die Gefahr hin das ich mich jetzt wiederhole, aber: Schade. Auch wenn ich Multithreading im Solid Designer schon für eine (leicht) verrückte Idee halte. Stand CLOS eigentlich auch auf der Wunschliste? Falls sich der Nebel lichtet, und eine blasse Erinnerung zurück kehrt, auch wenn es nur ein Schlagwort ist, wäre ich sehr, sehr dankbar. ------------------ Computer sind unbrauchbar. Sie können nur Fragen beantworten. Pablo Picasso, Maler [Diese Nachricht wurde von AlexG am 29. Jul. 2013 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: 29. Jul. 2013 21:14 <-- editieren / zitieren --> Unities abgeben: Nur für AlexG
|
AlexG Mitglied
Beiträge: 133 Registriert: 05.04.2013 CP/M; 6510@0,985249 MHz; 64KB RAM; 20KB ROM; MOS 6569
|
erstellt am: 30. Jul. 2013 13:57 <-- editieren / zitieren --> Unities abgeben:
Ich weiß gerade nicht welche Gefühle das in mir auslöst. Meine Mimik hat so ca. ungefähr folgenden Verlauf: --> --> . So viele schöne Ideen... und was wird draus? Nix! *SICH.SELBST.ETWAS.VORMACH*EIN* Wenn ich ehrlich sein soll, um OOP und Multithreading habe ich mich bis jetzt gerne herum gedrückt. Und was Slime angeht hätte ich Angst, dass ich bei den ganzen Tastenkürzeln einen Knoten in die Finger bekomme, oder noch schlimmer im Kopf. *SICH.SELBST.ETWAS.VORMACH*AUS* So jetzt habe ich mir das alles wieder "schön mies" geredet, und mir geht es gleich wieder viel besser. Ist vielleicht ein bisschen arg Offtopic, und mit Sicherheit auch nicht legitim, aber fragen tu ich's trotzdem mal. Wenn ich es richtig verstanden habe sind (Groß-)Teile des SolidDesigners in Lisp geschrieben? Welche IDE wird/wurde denn für die Entwicklung genutzt? ------------------ Computer sind unbrauchbar. Sie können nur Fragen beantworten. Pablo Picasso, Maler 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: 30. Jul. 2013 15:18 <-- editieren / zitieren --> Unities abgeben: Nur für AlexG
Tja, was soll ich sagen - ich hätte diese und andere Erweiterungen gerne selbst eingebaut, aber dazu hat es anno dunnemals nicht mehr gereicht. Für die SLIME-Integration hätte man Socket-Kommunikation, Threading-Support, Conditions, mindestens Teile von CLOS und andere allgemein nützliche Features einbauen müssen. Das wäre also ein großer Fortschritt für alle Lisp-Entwickler gewesen, ganz gleich, ob man nun SLIME selbst verwenden würde oder nicht. (Gaaanz weit im Hinterkopf hatte ich IDE-Pläne, die über SLIME hinausgingen....) Sehr große Teile von SolidDesigner sind in der Tat in Lisp geschrieben. Ich halte es für wahrscheinlich, daß SolidDesigner eines der größten Lisp-Projekte überhaupt ist. (Ich habe dazu mal bei einer Lisp-Konferenz einen Kurzvortrag gehalten, siehe http://www.clausbrod.de/Blog/DefinePrivatePublic20090620CommonLispInCoCreateModeling .) Man kann nun zu den damals angedachten Erweiterungen denken, daß es jammerschade ist, dass aus den meisten nichts geworden ist. Aber ins Positive gewendet: Ich hielt viele dieser Erweiterungen damals für machbar, und das wären sie sicher auch heute noch. (PTC muß dazu aber auch einen Anreiz sehen - am besten kommt der vom Markt.)
------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AlexG Mitglied
Beiträge: 133 Registriert: 05.04.2013 CP/M; 6510@0,985249 MHz; 64KB RAM; 20KB ROM; MOS 6569
|
erstellt am: 31. Jul. 2013 08:46 <-- editieren / zitieren --> Unities abgeben:
Ok, dann lasse ich jetzt meinen Namen ändern in Don... Don Quijote, stelle mich im Halbkreis auf und fange an zu demonstrieren: "Wir woll'n Multithreading, CLOS und auch SLIME. Wir woll'n... und jetzt alle im Kanon!..."Ich glaube, auch wenn ich bis jetzt noch keinen großen Kontakt mit PTC selbst hatte, dass man mit solchen Wünschen auf einem verlorenen Posten steht. Das ist weder negativ gegenüber den Mitarbeitern, noch dem Unternehmen selbst gemeint, da ich es nachvollziehen kann wenn wünsche dieser Art ganz weit hinten anstehen müssen, da sie eine nur sehr kleine Klientel betreffen. Und wer weiß schon wie weit uns die PTC Roadmap überhaupt noch in diese Richtung führt? ...mein heiß geliebtes Lisp *SCHNAUB*. Nachtrag: CLOS hat sich erledigt... hab's gefunden. ------------------ Computer sind unbrauchbar. Sie können nur Fragen beantworten. Pablo Picasso, Maler [Diese Nachricht wurde von AlexG am 31. Jul. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
Beiträge: 2219 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: 09. Aug. 2013 14:51 <-- editieren / zitieren --> Unities abgeben: Nur für AlexG
|
AlexG Mitglied
Beiträge: 133 Registriert: 05.04.2013 CP/M; 6510@0,985249 MHz; 64KB RAM; 20KB ROM; MOS 6569
|
erstellt am: 09. Aug. 2013 22:28 <-- editieren / zitieren --> Unities abgeben:
*STIRN.RUNZEL* ...jetzt habe ich wohl die (Dialog)Bahn verpasst, und steh hier alleine am Bahnhof. Der "Mach-Mal-Langsam-Balken" an sich ist nicht das Problem. Aber ich bekomme es leider mit keinem Event hin, dass mein Dialog aktualisiert wird. Leider auch nicht wenn ich ein interaktives Event erzwinge. Vielleicht liegt es auch einfach nur an der Uhrzeit... ich werde mich morgen noch einmal mit dem Thema auseinander setzen. Wollte mich eigentlich auch nur kurz für den Tip bedanken. Gruß Alex ------------------ Computer sind unbrauchbar. Sie können nur Fragen beantworten. Pablo Picasso, Maler Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AlexG Mitglied
Beiträge: 133 Registriert: 05.04.2013 CP/M; 6510@0,985249 MHz; 64KB RAM; 20KB ROM; MOS 6569
|
erstellt am: 10. Aug. 2013 18:41 <-- editieren / zitieren --> Unities abgeben:
GAMEOVER... ...aber immerhin hab ich einen neuen Highscore aufgestellt: Ich habe wirklich noch nie so viele (blödsinnige) Zeilen Code in Lisp geschrieben die nicht funktionierten. Bitte nicht schlagen, aber ich habe mich dann der einfach halt halber für die folgende Lösung entschieden: Sd-sys-background-job ruft AutoIt Script mit Fortschritts(bzw. Mach-Mal-Langsam)-Balken auf. Falls jemand noch eine elegantere Lösung findet oder Interesse an meinem Provisorium besteht, einfach melden. RESPAWN: Hab doch noch eine andere Lösung gefunden: Code:
(defun progress-bar (&key percentage finalize) (let ( (probe-struct (read-from-string (format nil "#s(frame2-ui: robe frame2-ui::eventno 1 frame2-ui::currticks ~a frame2-ui::maxticks 100)" percentage)))) (if finalize (frame2-ui::hide-probe-display) (frame2-ui::update-probe-display probe-struct))))
Gruß Alex ------------------ Computer sind unbrauchbar. Sie können nur Fragen beantworten. Pablo Picasso, Maler [Diese Nachricht wurde von AlexG am 06. Mai. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |