| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: INITGET und das Kontextmenü (965 mal gelesen)
|
Dabrunz Mitglied
Beiträge: 127 Registriert: 28.05.2003
|
erstellt am: 22. Sep. 2005 10:13 <-- editieren / zitieren --> Unities abgeben:
Liebe cad.de-Gemeinde; mal wieder bin ich über ein 'Impementierungs-Detail' gestolpert, dass mich einige Stunden Überlegung gekostet und mich zur Fehlersuche an völlig falschen Stellen animiert hat. Das möchte ich anderen Menschen ersparen, deshalb hier eine kleine Demonstration: Seit einer der 2000er-AutoCAD-Versionen bringt die Vereinbarung von Keword mit INITGET das schöne Feature mit, diese Keywords zur Auswahl im Kontextmenü anzuzeigen. Das funktioniert z.B. so: Code:
(defun test() (initget 129 "Kurt Franz) (getkword"\nWie soll es denn heißen [Kurt/Franz]?") )
oder aber auch: Code:
(defun test() (initget 1 "Kurt Franz") (getint"\nMaßstab angeben [Kurt/Franz] <1:1000> 1:") )
Jetzt mit einer kleinen Änderung - nur das < verschoben: Code:
(defun test() (initget 1 "Kurt Franz") (getint"\nMaßstab angeben [Kurt/Franz] 1:<1000> 1:") )
und weg sind die Einträge im Kontextmenü - spaßig nichtwahr? Wenn ich die Keywords im Meldungstext ganz weglasse oder nicht in [] einpacke zeigt AutoCAD 2005 auch kein Kontextmenü an. Ich erwarte keine Erklärung für dieses Fänomen, denn wer von uns kann schon wissen, warum und wie der Meldungstext der get*-Funktionen nocheinmal intern analysiert wird, aber vielleicht kann mir jemand aus seinem installierten AutoCAD-(Derivat)-Pool eine Version nennen, bei der das Problem sich so nicht darstellt. Achim Dabrunz ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Techniker (m/w/d) Konstruktion | Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als Expert:in für unseren Kunden. Wir realisieren spannende Projekte für namhafte Kunden des Maschinenbaus und sorgen für sichere und nachhaltige Technologielösungen.
| Anzeige ansehen | Konstruktion, Visualisierung |
|
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 22. Sep. 2005 14:13 <-- editieren / zitieren --> Unities abgeben: Nur für Dabrunz
Liegt nicht an der spitzen Klammer, sondern am Doppelpunkt: Code:
(defun test() (initget 1 "Kurt Franz") (getint"\nMaßstab angeben [Kurt/Franz] oder was darf's sein? <1:1000> 1:") ) => geht
Code:
(defun test() (initget 1 "Kurt Franz") (getint"\nMaßstab angeben [Kurt/Franz] oder was darf's sein: <1:1000> 1:") ) => geht nicht
Zwischen der eckigen und der spitzen Klammer darf kein Doppelpunkt sein - in der spitzen Klammer schon. Aber was interessiert sich AutoCAD für die spitze Klammer?Ich finde allerdings diese Variante für den Benutzer durchschaubarer: Code:
(defun test3() (initget 1 "Kurt Franz") (getint"\nMaßstab angeben - 1:[Kurt/Franz]<1000> 1:") ) => geht
Gruß, Axel ------------------ Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|