Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Lisp in Lisp :-)

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:  Lisp in Lisp :-) (828 mal gelesen)
CAD-Tötti
Mitglied



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

Beiträge: 116
Registriert: 27.09.2003

ACAD 2009

erstellt am: 30. Jan. 2004 18: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

Greetz  ,

stehe gerade auf dem Schlauch, die Frage ist aber auch so dumm, aber ich wußte es mal:

wie rufe ich innerhalb einer Lisp eine Lisp auf.

Grüße

CAD-Tötti

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

Proxy
Ehrenmitglied
Stateless-DHCP v6-Paketfragmentierer


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

Beiträge: 1629
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, ...,
AutoCADs 200X, SWX 2kX

erstellt am: 30. Jan. 2004 19:57    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 CAD-Tötti 10 Unities + Antwort hilfreich

Dazu sag ich Nix ! 

Code:

(defun varget ()
(setq lis '("HIGHLIGHT" "BLIPMODE" "CMDECHO"
    "BLIPMODE" "OSMODE"))
;store names of system variables
(setq  var (mapcar 'getvar lis))
;get the value of the system variables and
;store them as a list
(setq var1 '(0 0 0 0 517))
;store the new values of the system variables
(setq no 0)
;set counter to zero
(repeat (length lis)
;get the number of variables in the list
;to use as the counter control number
(setvar (nth no lis) (nth no var1))
;set the variables to their new values
(setq no (1+ no))
;move up one in the list
);repeat
  (princ);finish quietly
);defun

Code:

(defun varset ()
(setq no 0)
;set counter to zero
(repeat (length lis)
;get the number of variables in the list
(setvar (nth no lis) (nth no var))
;reset the variables to their original values
(setq no (1+ no))
;move up one in the list
);repeat
  (princ);finish quietly
);defun
(princ);load quietly

Code:

(defun c:example ()
(varget)
;store system variables and then reset them

Programme statements.............
.................................

(varset)
;restore system variables
  (princ)
);defun


------------------
"Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?"  Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 30. Jan. 2004 20:17    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 CAD-Tötti 10 Unities + Antwort hilfreich

Hi,
das kommt darauf an, ob Deine Lisp Function ein "defun" oder ein "defun C:" ist und ob Deine Funktion Argumente zum Aufruf definiert.
Code:

(defun plus (x y /)
(+ x y)
)
-> rufst Du mit (plus 1 1) auf.

(defun C:plus (/)
(+ (getreal)(getreal))
)
-> rufst Du mit (C:plus) aus Lisp heraus auf und mit Plus von der Befehlszeile

Außerdem ginge auch noch dies hier:
(defun plus (x y /)
(+ x y)
)

(defun C:plus (/)
(plus (getreal)(getreal))
)



.

------------------
Ciao,
Marc

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

CAD-Tötti
Mitglied



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

Beiträge: 116
Registriert: 27.09.2003

ACAD 2009

erstellt am: 31. Jan. 2004 23:26    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

Manche Funktionen fangen mit "S:BEFEHL" an. Was ist das denn dann ?

Wo kann ich etwas nachlesen über solche Konventionen ?

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

m-troeger
Mitglied
gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS


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

Beiträge: 295
Registriert: ..

ACAD14 und 2005;
MAP4; GeoCAD; PARIS;
( Vermessung )

erstellt am: 01. Feb. 2004 21:55    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 CAD-Tötti 10 Unities + Antwort hilfreich

Hi,
Ist deine LISP eine (Defun C:Lispname), dann
(C:Lispname)  Lispname ohne .lsp/.vlx, muß aber vorher geladen sein.
Ist deine LISP eine (Defun Lispname), dann
(Lispname)  Lispname ohne .lsp/.vlx, muß aber vorher geladen sein.
Aber beachten, wenn du noch Werte an die zu startende LISP übergeben mußt.

wenn diese Zeile vorher eingefügt wird, so wird geprüft ob die LSP geladen ist. Wenn nicht, dann wird sie geladen.
(if (not C:Lispname)(load "C:/...../Lispname.LSP")) oder
(if (not Lispname)(load "C:/...../Lispname.LSP")) oder

Schau dich doch hier mal um: www.autolisp-tutorial.mapcar.net

Servus Mario

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

cad4fun
Ehrenmitglied



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

Beiträge: 1846
Registriert: 06.12.2004

privat ACAD 2013 deutsch, Windows 7 64Bit
HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM

erstellt am: 31. Mai. 2006 10:21    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 CAD-Tötti 10 Unities + Antwort hilfreich

mein startbefehl wäre  "DT:startbefehl", definiert in einer geladenen "NAME.vlx".
daher steht in meiner LISP-Routine die Zeile
(DT:startbefehl)
aber ohne irgendeiner fehlermeldung wird abgebrochen.
kann mir jemand weiter helfen?

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 31. Mai. 2006 10:25    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 CAD-Tötti 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cad4fun:
mein startbefehl wäre  "DT:startbefehl", definiert in einer geladenen "NAME.vlx".
daher steht in meiner LISP-Routine die Zeile
(DT:startbefehl)
aber ohne irgendeiner fehlermeldung wird abgebrochen.
kann mir jemand weiter helfen?

.. ich denke, der Ersteller der "NAME.vlx"  

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

cad4fun
Ehrenmitglied



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

Beiträge: 1846
Registriert: 06.12.2004

privat ACAD 2013 deutsch, Windows 7 64Bit
HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM

erstellt am: 31. Mai. 2006 11:28    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 CAD-Tötti 10 Unities + Antwort hilfreich

die Routine funktioniert aber doch ansonsten einwandfrei!

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 31. Mai. 2006 11: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 CAD-Tötti 10 Unities + Antwort hilfreich

naja .. ohne Routinen und vlx-Dateinamen ist es ein bißchen kompliziert.. der Prefix "DT:" kommt mir bloß sehr bekannt vor, und daher wäre es durchaus möglich, das ich den Quelltext bei mir auf der Platte hab ....

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

cad4fun
Ehrenmitglied



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

Beiträge: 1846
Registriert: 06.12.2004

privat ACAD 2013 deutsch, Windows 7 64Bit
HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM

erstellt am: 31. Mai. 2006 13:41    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 CAD-Tötti 10 Unities + Antwort hilfreich

Das ist mir schon klar, aber nachdem ich jetzt noch Deine alte Block_New_Basispunkt_auto.lsp auf meiner Platte gefunden habe, habe ich jetzt eine kleine LISP geschrieben, welche vom BKS ins WKS wechselt, Deine Routine mit (c:bnb) abarbeitet und dann wieder ins BKS zurückwechselt. Funkt super!
Aber danke für Dein Hilfsangebot, ich hätte nur gerne verstanden, warum DT:xxx im Normalbetrieb funktioniert und in Klammer gesetzt in einer LISP-Routine nicht.

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 31. Mai. 2006 13:44    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 CAD-Tötti 10 Unities + Antwort hilfreich

vielleicht, weil du sie mit (c:DT:xxx) aufrufen mußt?!

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

cad4fun
Ehrenmitglied



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

Beiträge: 1846
Registriert: 06.12.2004

privat ACAD 2013 deutsch, Windows 7 64Bit
HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM

erstellt am: 31. Mai. 2006 13:59    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 CAD-Tötti 10 Unities + Antwort hilfreich

Das naheliegendste habe ich dummerweise nicht probiert! Danke

Jetzt funktioniert Deine  "block-movebasepoint" innerhalb einer LISP auch im BKS

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