Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Lisp geht nicht

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 geht nicht (868 / mal gelesen)
cadstudi
Mitglied
Student


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

Beiträge: 149
Registriert: 22.01.2013

Windows 7 aktuelles ServicePack, Office 2007
Ich arbeite auf verschiedenen Rechner, da fällt die Info verdammt schwer!

erstellt am: 02. Nov. 2021 14:50    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 lieber AutoCAD Gemeinde,

ich versuche gerade alte LISP Programme zu nutzen, eines davon geht, das Andere leider nur
wenn ich es per Drag and Drop reinziehe. Ich wollte gern beide in einer Vorlagen dwt speichern,
wenn ich das tue geht eine LISP und die hier folgende verursacht eine Fehlermeldung. Hier
können Sie Ihre eigenen Routinen speichern. Was soll die Meldung wo ist mein Fehler in der LISP?

HILFE!!!

Danke schon mal


;you can store here your lisproutine
(defun c:use3 ( / )
  (gendcl_info nil (strcat (geniuspd) "gen/use3.lsp\n" (genmsg "genuser" 1)))
)
(setfunhelp "c:use3" "gen" "use3")
;  lc.lsp
;  Programm zum Umwandeln des Laetus-Codes
;  nach Eingabe des Dezimal-Codes im Balken-Code.
;
;
;
;              alte Systemvariable speichern
(setq calt (getvar "cmdecho"))
(setq ealt (getvar "menuecho"))
(setq oalt (getvar "osmode"))
(setq balt (getvar "blipmode"))
(setvar "blipmode" 0)
(setvar "osmode" 0)
(setvar "cmdecho" 0)
;
(graphscr)
;
;      Variablenzuordnung
;
;
(setq s 0.5)
(setq b 1.5)
(setq n 1)
(setq e (List 100 20))
(setq f (list 100 28))
(initget (+ 1 2 4))
(setq dezcode (getint "\nGeben Sie den Laetus-Code ein:    "))
(setq rest dezcode)
    (if (< dezcode 100000)
        (progn
              (setq code (+ 1 dezcode))
              (while (> code 1)
                  (while (<= n code)        ; nächst größere Zahl
                        (setq n (* n 2))    ; von code gesucht
                  )
                  (setq n (/ n 2))        ; nächst kleinere Zahl ausgewählt
                  (setq rest (- code n))  ; Rest mit nächst kl. Zahl vergl.
                        (if (< rest (/ n 2))
                                  (progn
                                      (setq breite s)
                                      (setq code (- code (/ n 2)))
                                  )
                                  (progn
                                      (setq breite b)
                                      (setq code rest)
                                  )
                        )
                        (if (= n 1) (setq breite s))
                        ;(princ code) (princ " ")
                        ;(princ n) (princ " ")
                        ;(princ rest)
                        (terpri)
                        (setq n 1)
                        (command "plinie" e "b" breite breite f "")
                        (setq e (list (+ 2.5 (car e)) (cadr e)))
                        (setq f (list (+ 2.5 (car f)) (cadr f)))
                  )
              )
        (princ "\nCode darf nicht größer als 32767 sein")  ;else - Funktion
    )
(princ)
;        alte Systemvariablen setzen
(setvar "menuecho" ealt)
(setvar "cmdecho" calt)
(setvar "osmode" oalt)
(setvar "blipmode" balt)

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 02. Nov. 2021 15:56    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 cadstudi 10 Unities + Antwort hilfreich

Hi,

>>"Ich wollte gern beide in einer Vorlagen dwt speichern,"
Man kann keine Lisp-Datei in  einer DWT speichern,
unabhängig davon ob es geht (geht nicht) vermute ich
du wolltest beide nacheinander in einer Datei laden?


>>"wenn ich das tue geht eine LISP und die hier folgende verursacht eine Fehlermeldung."
Die andere setzt aber die Weichen.
Wir kennen keine der beiden, was aber für eine zielgerichtete Fehlersuche sinnvoll wäre. 


>>" Hier können Sie Ihre eigenen Routinen speichern. Was soll die Meldung wo ist mein Fehler in der LISP?"
Meldung? Von Wem, Wo?
Sorry, die Beschreibung und das Fehlen der Dateien mache es unnötig schwierig zu helfen.

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

cadstudi
Mitglied
Student


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

Beiträge: 149
Registriert: 22.01.2013

Windows 7 aktuelles ServicePack, Office 2007
Ich arbeite auf verschiedenen Rechner, da fällt die Info verdammt schwer!

erstellt am: 02. Nov. 2021 16:10    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

Ja, ich wollte beide nacheinander lasen. Weil ich gerne Icons erstellen möchte, somit dachte ich die müssen in der Datei sein und dann kann ich über ein Icon diese zukünftig aufrufen.

:-( Ich habe fast 15 Jahre keine LISP mehr angefasst.

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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 03. Nov. 2021 07:29    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 cadstudi 10 Unities + Antwort hilfreich

Hallo cadstudi,

pack dir folgendes auf einen Knopf z. B. in einer Werkzeugpalette:

Code:

(if (not c:DeinBefehl) (load "DeineDatei.lsp")) DeinBefehl

Das prüft, ob Dein Befehl schon bekannt ist, wenn nicht, wird die Datei geladen. Anschließend wird der Befehl gestartet.

HTH
Gruß
Thomas

[Diese Nachricht wurde von spider_dd am 03. Nov. 2021 editiert.]

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

Win 10
ACAD 2022

erstellt am: 04. Nov. 2021 12:51    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 cadstudi 10 Unities + Antwort hilfreich

Der Lisp-Code definiert, außer "use3", keine Funktion die du dann aufrufen kannst. Der Code wird direkt beim Laden ausgeführt und fertig. Dabei werden auch verschiedenste Variablen verwendet die aber natürlich in keiner Funktion lokal sind sondern "frei zugänglich" dann irgendwelche Werte enthalten. Das solltest du erst mal sauber aufräumen und eine aufrufbare Funktionen definieren.
Kann ja sein dass dann die Fehlermeldung weg ist.

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 18. Nov. 2021 19: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 cadstudi 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadffm:
Hi,

>>"Ich wollte gern beide in einer Vorlagen dwt speichern,"

Man kann keine Lisp-Datei in  einer DWT speichern,
unabhängig davon ob es geht (geht nicht) vermute ich
du wolltest beide nacheinander in einer Datei laden?


Doch, man kann Lisp-Funktionen durchaus in DWG oder DWT Dateien speichern, und kann diese natürlich auch beim Öffnen der DWG wieder automatisch ausführen lassen. Das geht sogar ziemlich einfach, beispielsweise durch Speichern des Quellcodes in einem Dictionary.

Es gibt sogar Fälle, in denen sowas sinnvoll ist. Beispielsweise in meinem objectiveCAD werden die Objektmethoden in Form von Lisp-Funktionen als XDictionary am Objekt in der DWG gespeichert. Die DWG enthält dann nicht nur die Geometrie der Objekte, sondern auch alle spezifischen Funktionen zum Modifizieren dieser Objekte, oder für die Kommunikation der Objekte miteinander. Wer die DWG hat und ein simples Programm zu Auslesen und Evaluieren der Objektfunktionen, der hat die vollständige "Intelligenz" der Objekte mit in der DWG.

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 18. Nov. 2021 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 cadstudi 10 Unities + Antwort hilfreich

Ziemlich einfach.. für jemanden der bereits mit lokal/global und Codezeilen außerhalb jeglicher Funktionsdefinition strauchelt, wohl kaum 

Ich antworte hier aber wegen etwas anderem, es fehlte hier noch das Ende - was per PM bearbeitet und abgeschlossen wurde:
Es gab eine Lispdatei mit Codezeilen welche nicht Teil einer Funktion war, also nur beim Laden der Datei ausgeführt wurde
und somit nur mit "neu laden" ausgeführt werden konnte.
Dazu noch eine weitere Datei mit Funktionen und in beiden Symbole die nicht lokal defininiert waren, plus der Versuch beide Inhalte
zusammenzufassen war nicht nicht geglückt.

Ich konnte weiterhelfen, natürlich ohne DATEIEN in einer DWG/DWT zu speichern, User glücklich. 

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 18. Nov. 2021 22:02    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 cadstudi 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadffm:
Ziemlich einfach.. für jemanden der bereits mit lokal/global und Codezeilen außerhalb jeglicher Funktionsdefinition strauchelt, wohl kaum  

Darum ging's hier doch gar nicht, denn der Fragesteller wollte ja gar keinen Lisp Code in einer DWG speichern. Mir als passioniertem Besserwisser war nur der korrigierende Hinweis wichtig, dass man das eben doch recht einfach machen kann.

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

VMichl
Mitglied



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

Beiträge: 211
Registriert: 04.01.2001

erstellt am: 19. Nov. 2021 08: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 cadstudi 10 Unities + Antwort hilfreich

Es gibt schon eine Möglichkeit, LISP-Dateien in DWG/DWT zu speichern - siehe AutoExec:
https://www.cadstudio.cz/en/apps/autoexec/

V.Michl, www.arkance-systems.cz - www.cadforum.cz

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