| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: Problem mit mutual-exclusion (1122 mal gelesen)
|
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006 Win7 Pro SP1 64Bit HP Z230, Core i5, 8GB RAM, nv Quadro K600 Creo Elements/Direct 19.0 M010 ModelManager 19.0 M010 clisp,VB.net,VBA,AHK,php,javascript
|
erstellt am: 24. Okt. 2008 08:23 <-- editieren / zitieren --> Unities abgeben:
Hallöchen alle miteinander! Ich schreibe gerade an einem kleinen Lisp, mit dem ich mir für kleinere technische Dokumentationen den Viewport reproduzierbar in Position drehen kann. Doch leider geht da irgendetwas schief. Sobald ich eine Ansicht über einen Button "X1" usw. aktiviere, werden die RadioButtons nicht aktualisiert, obwohl alle mit mutual-exclusion verknüpft worden sind. Ich dachte eigentlich, dass, wenn eine Variable, die in der mutual-exclusion-liste steht, auf "true" gesetzt wird, die anderen Variablen auf "nil" gesetzt werden. Sicher könnte ich die restlichen Variablen manuell auf nil setzen, aber das ist mir dann doch etwas zu blöd. Gibt es da nicht eine andere, bessere Lösung? (vlt. mutual-exclusion-cleanup, und wenn ja, wie und wo?) "A variable that belongs to a set of mutually excluded variables (as specified by :mutual-exclusion) is automatically reset whenever any of the other variables become active. The :mutual-exclusion-cleanup code supports the specification of further cleanup activity to be executed after such a variable has been reset." EDIT: Ich versuche, es mal verständlicher und kürzer zu fassen: Ich habe mit mutual-exclusion eine Reihe von definierten Variablen verbunden. Ändere ich nun den Inhalt einer dieser Variablen über eine Schaltfläche (X1 usw.), so wirkt mutual-exclusion nicht - 2 Variablen sind auf "Wahr". Könnte mir hier mutual-exclusion-cleanup weiterhelfen? Im Ikit steht nicht besonders viel zur Anwendung, von Internet ganz zu schweigen. [Diese Nachricht wurde von Patrick Weber am 27. Okt. 2008 editiert.] [Diese Nachricht wurde von Patrick Weber am 27. Okt. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Corei7 3770K, Win7-64, 16GB PNY Quadro 2000K CoCreate Modeling 18.10 CoCreate Drafting 18.10 CoCreate ModelManager 18.10
|
erstellt am: 27. Okt. 2008 18:24 <-- editieren / zitieren --> Unities abgeben: Nur für Patrick Weber
|
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: 27. Okt. 2008 19:24 <-- editieren / zitieren --> Unities abgeben: Nur für Patrick Weber
Klickt man innerhalb der Radiobutton-Bereiche, funktioniert auch bei mir alles, wie man es von Radiobuttons erwartet. Witzig wird's, wenn man beispielsweise nacheinander auf die Knöpfe X1, Y1, Z1, X2, Y2, Z2 (unter "gültige Kombinationen") drückt. Dann sind hinterher in der Tat mehrere Radiobuttons innerhalb der gleichen Gruppe gesetzt. ------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/ [Diese Nachricht wurde von clausb am 27. Okt. 2008 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: 27. Okt. 2008 19:30 <-- editieren / zitieren --> Unities abgeben: Nur für Patrick Weber
Vielleicht hilft das hier weiter: Schau Dir mal die Doku zu sd-set-variable-status an. Dort steht unter anderem: Zitat:
If a value is assigned to a variable that is in a :mutual-exclusion set, then the other mutually excluded variables are automatically reset to NIL.Note that the LISP functions setq and setf can be used to assign a value to a variable without invoking the :check-function and the :after-input.
------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/
[Diese Nachricht wurde von clausb am 27. Okt. 2008 editiert.] 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: 27. Okt. 2008 21:41 <-- editieren / zitieren --> Unities abgeben: Nur für Patrick Weber
|
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: 27. Okt. 2008 22:00 <-- editieren / zitieren --> Unities abgeben: Nur für Patrick Weber
... das man auf die X1/2, Y1/2 buttons druecken muss, um den Fehler zu sehen, hatte Patrick aber auch geschrieben. Das war die wichtigste, aber kleine feine Info, die ich auch erst mal überlesen hatte. Anbei eine überarbeitete Version. Patrick, aufgrund der Mutual exclusions drängt sich die Verwendung einer CONDition auf, bzw. derer zwei. Die von dir in dem Bereich genutzen IFs.. waren klassische WHENs, weils keinen else Zweig gab. Aber die 6 WHENs waren jeweils ein COND. Der 2. 6fach-if-Block ist zu einer sehr kompakten CONDition geschrumpft. Variablen noch deklariert und das Viewport handling verfeinert, inkl. Annotation. Und den Würgarround für Deine Frage mal eingebaut, mit einem n-fachen setq. anbei...... Für weitere LISP technische Fragen wenden Sie sich an Ihren CoCreate Partner oder das Forum Ihres Vertrauens.
------------------ ● Seamonkey Firefox Thunderbird Seamonkey auf deutsch ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Markus Kuehl Mitglied
Beiträge: 165 Registriert: 22.06.2001
|
erstellt am: 28. Okt. 2008 08:13 <-- editieren / zitieren --> Unities abgeben: Nur für Patrick Weber
So wie ich das sehe, ist das ein Defekt und sollte dem CoCreate Support gemeldet werden. Nur bei den Variablen der ersten mutual-exclusion Liste funktioniert das Zurücksetzen richtig. Bei den Variablen der zweiten Liste tut's nicht. Wenn man die zwei Listen vertauscht, tut wieder die erste Liste und die zweite nicht. Also ist das ein Problem vom Dialog Generator, das man nur mit dem von Wolfgang vorgeschlagenen Workaround momentan beheben kann. Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006 Win7 Pro SP1 64Bit HP Z230, Core i5, 8GB RAM, nv Quadro K600 Creo Elements/Direct 19.0 M010 ModelManager 19.0 M010 clisp,VB.net,VBA,AHK,php,javascript
|
erstellt am: 28. Okt. 2008 15:24 <-- editieren / zitieren --> Unities abgeben:
Ich danke erstmal für rege Beteiligung. Schade. Da muss ich wohl noch etwas herumbasteln. Zu Code-Optimierungen bin ich noch nicht gekommen, da ich an dem Problem hängengeblieben bin. Die Bedingungen hätte ich später angepasst. Trotzdem danke! ------------------ Grüße pw Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|