| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Kann man bei der Eingabeaufforderung eine Variable angeben? (1665 mal gelesen)
|
Goofy007 Mitglied Vermessungstechniker
Beiträge: 578 Registriert: 06.11.2004
|
erstellt am: 29. Feb. 2008 15:31 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum! Frage: ist es möglich an der Eingabeaufforderung eines Lisp-Programmes anstelle der erwarteten Zahl eine Variable anzugeben? Grund der Frage: Ich habe hier geschützte Lisp-Software, welche ich über ein Menümakro aufrufe. Das Lisp fragt nun einige Werte ab, welche ich entweder fix ins Makro schreiben oder eintippen kann. Nun möchte ich aber einen Wert einer Variablen zuweisen und im Makro die Variablen an das Lisp übergeben. Das hätten den Vorteil das ich das Makro nicht jedesmal ändern muß wenn der Wert anders wird, und ich den Wert trotzdem nicht jedesmal eingeben muß. Ich dachte mal das geht mit (setq T1 100) und anschließendem !T1 aber das hab ich mir wohl zu einfach vorgestellt. Denn das Lisp fragt immer wieder um den Wert.
edit: Nachtrag Aufruf sieht so aus: Code: ^C^C(cond ((null C:CHATT) (load "chatt"))) chatt;a;hoehe;;w;240;
und das 240 würde ich gerne durch eine Variable ersetzen.und Sysinfo geändert lg Didi
[Diese Nachricht wurde von Goofy007 am 29. Feb. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 29. Feb. 2008 15:42 <-- editieren / zitieren --> Unities abgeben: Nur für Goofy007
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 29. Feb. 2008 15:48 <-- editieren / zitieren --> Unities abgeben: Nur für Goofy007
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 29. Feb. 2008 16:34 <-- editieren / zitieren --> Unities abgeben: Nur für Goofy007
|
Goofy007 Mitglied Vermessungstechniker
Beiträge: 578 Registriert: 06.11.2004
|
erstellt am: 01. Mrz. 2008 10:18 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas und Henning, entschuldigt, daß ich erst heute antworte, aber ... @ Thomas, du hast wohl recht, das mit dem sehen ist schwierig, weil es geschützter Lisp-Code ist. Aber es wird vermutlich eine Zahl abgefragt. @ Henning, 1.Frage: Nein hatte ich bisher noch nicht. Funktioniert aber auch nicht, wie du ja schon selber geschrieben hast. 2. Frage: Es handelt sich um das Programm chatt.lsp aus dem Programmpakt AgisCAD. Die Funktion des Programmes besteht darin, das es Attributeigenschaften global ändern kann. Wobei ich allerdings dazusagen möchte, daß es mir gar nicht so um diesen eine Fall geht,sondern mich interessiert die Frage eher prinzipiell, weil es ja öfter mal eine angenehme Arbeitserleichterung wäre, wenn man Variablen statt Werten eingeben kann. Da hatte ich halt gehofft, daß es irgend eine Syntax gibt die das erlaubt. !T1 oder (eval T1) oder ein Diesel-Ausdruck ... Anbei noch ein kurzer Auszug aus meinem Textfenster: Code: Befehl: (setq t1 25) 25Befehl: chatt Filterung der Attribute: LAYER: * BLOCKNAME: * ATTRIBUTBEZEICHNUG: * ATTRIBUTWERT: * Layer/Block/Attribut/Wert/Default: Welche Eigenschaft soll geaendert werden ? Layer/Einsetzpunkt/Winkel/Style/Hoehe/Farbe/Text/Neigung/Bezeichnung: w Neuer Winkel: (eval T1) Erfordert gültigen numerischen Winkel oder zwei Punkte. Neuer Winkel: T1 Erfordert gültigen numerischen Winkel oder zwei Punkte.
lg Didi
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 01. Mrz. 2008 15:46 <-- editieren / zitieren --> Unities abgeben: Nur für Goofy007
Hi, Also Abruf der Veriablen mit vorangestellten "!" geht nicht... chatt;a;hoehe;;w;!t1; (was auch immer da passiert) Mit (strcat t1) die Variable übergeben... Mfg Heiko [Diese Nachricht wurde von Dorfy am 01. Mrz. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 01. Mrz. 2008 16:27 <-- editieren / zitieren --> Unities abgeben: Nur für Goofy007
Auf GETxxx-Anfragen in Lisp Code lässt sich nicht mit Lispvariablen antworten. Aber über einen Diesel-Ausdruck kann man auch LISP Funktionen mit Variabeln antworten. Zum Testen den Code in ein Menü oder einfacher in die Werkzeugpalette packen. So sieht z.B. der Code aus, wenn der Winkel aus der Systemvariablen USERR1 übernomen werden soll: Code: ^c^cCHATT W $M=$(getvar,userr1)
------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Goofy007 Mitglied Vermessungstechniker
Beiträge: 578 Registriert: 06.11.2004
|
erstellt am: 01. Mrz. 2008 17:16 <-- editieren / zitieren --> Unities abgeben:
Hallo Udo, Volltreffer! Danke! Genau das hab ich gesucht. Für alle interessierten, mein Menümakro sieht nun so aus: Code: ^C^C(cond ((null C:CHATT) (load "chatt"))) chatt;a;hoehe;;w;$M=$(getvar,userr1);
@Heiko, auch dir sei gedankt, aber dein Vorschlag funktioniert leider nicht. Das sieht so aus:
Code: Befehl: chattFilterung der Attribute: LAYER: * BLOCKNAME: * ATTRIBUTBEZEICHNUG: hoehe ATTRIBUTWERT: * Layer/Block/Attribut/Wert/Default: Welche Eigenschaft soll geaendert werden ? Layer/Einsetzpunkt/Winkel/Style/Hoehe/Farbe/Text/Neigung/Bezeichnung: w Neuer Winkel: (strcat t1) Erfordert gültigen numerischen Winkel oder zwei Punkte.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |