Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Kann man bei der Eingabeaufforderung eine Variable angeben?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Kann man bei der Eingabeaufforderung eine Variable angeben? (1548 mal gelesen)
Goofy007
Mitglied
Vermessungstechniker


Sehen Sie sich das Profil von Goofy007 an!   Senden Sie eine Private Message an Goofy007  Schreiben Sie einen Gästebucheintrag für Goofy007

Beiträge: 578
Registriert: 06.11.2004

erstellt am: 29. Feb. 2008 15:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von tunnelbauer an!   Senden Sie eine Private Message an tunnelbauer  Schreiben Sie einen Gästebucheintrag für tunnelbauer

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 29. Feb. 2008 15:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Goofy007 10 Unities + Antwort hilfreich

Das kann man ohne das Programm gesehen zu haben nicht beurteilen - denn wenn an der Eingabestelle eine Zahl erwartet wird kannst du nicht einfach einen Text(string) reinschreiben... (meine Meinung...)

------------------
Grüsse

Thomas

Korrekturen zum Kochbuch AutoLISP

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



Sehen Sie sich das Profil von wronzky an!   Senden Sie eine Private Message an wronzky  Schreiben Sie einen Gästebucheintrag für wronzky

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Goofy007 10 Unities + Antwort hilfreich

Hi Didi,
ohne zu testen, schon mal mit ...(eval t1) probiert?
[edit - getestet geht nicht]
Grüsse, Henning

------------------
VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure

      http://www.voxelman.de

[Diese Nachricht wurde von wronzky am 29. Feb. 2008 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



Sehen Sie sich das Profil von wronzky an!   Senden Sie eine Private Message an wronzky  Schreiben Sie einen Gästebucheintrag für wronzky

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Goofy007 10 Unities + Antwort hilfreich

Hi,
noch mal anders gefragt, was macht das Programm denn?
(vielleicht gibt's das ja auch "ungeschützt")

Grüsse, Henning

------------------
VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Goofy007
Mitglied
Vermessungstechniker


Sehen Sie sich das Profil von Goofy007 an!   Senden Sie eine Private Message an Goofy007  Schreiben Sie einen Gästebucheintrag für Goofy007

Beiträge: 578
Registriert: 06.11.2004

erstellt am: 01. Mrz. 2008 10:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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)
25

Befehl: 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


Sehen Sie sich das Profil von Dorfy an!   Senden Sie eine Private Message an Dorfy  Schreiben Sie einen Gästebucheintrag für Dorfy

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 01. Mrz. 2008 15:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Goofy007 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 01. Mrz. 2008 16:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Goofy007 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Goofy007 an!   Senden Sie eine Private Message an Goofy007  Schreiben Sie einen Gästebucheintrag für Goofy007

Beiträge: 578
Registriert: 06.11.2004

erstellt am: 01. Mrz. 2008 17:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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: chatt

Filterung 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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz