Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Lisp Programme von R14 nach 2007 portieren

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 Programme von R14 nach 2007 portieren (1019 mal gelesen)
Zoff
Mitglied



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

Beiträge: 19
Registriert: 30.08.2006

Auto Cad 2014
Summa Sketch Professionel III
Win 7 64

erstellt am: 03. Sep. 2006 18:22    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,

nach dem Umstieg von R14 auf Autocad 2007 funktionieren einige unserer LISP Programme nicht mehr.
Dummerweise ist der Autor nicht mehr greifbar, die Listings sind komplett unkommentiert und meine Kenntnisse auf diesem Gebiet sind leider nur gering.

Die Programme sehen z.B. aus wie folgt. (Schnitt durch eine Fensterscheibe)

    (defun c:fens1 ()
    (graphscr)
    (setq L1 (getpoint "\nWinkel P1: "))
    (setq WIN (getangle L1 "\nWinkel P2: "))
    (setq PI2 (+ (/ pi 2) WIN))
    (setq XPI2 (+ (/ (* 3 pi) 2) WIN))
    (setq PIWIN (+ pi WIN))
    (setq FEP (getpoint "\nEinfuegepunkt: "))
    (setq GD1 (getint "\nDicke Fenster: "))
    (setq GD1M (- GD1 1))
    (command "layer" "se" 2 "")
    (command "fang" "d" FEP WIN )
    (setq X1 (polar FEP WIN 96))
    (setq X2 (polar FEP WIN 1))
    (setq X3 (polar FEP PI2 1))
    (setq X4 (polar FEP PI2 GD1M ))
    (setq X5 (polar X2 PI2 GD1))
    (setq X6 (polar X5 WIN 95))
    (command "plinie" X1 "b" 0.0 0.0 X2 X3 X4 X5 X6 "")
    (setq LGD1 (/ 15 GD1))
    (setq L1 65)
    (setq I1 (- GD1 2))
    (setq XL1A (polar FEP PI2 1))
    (setq XL1E (polar XL1A win L1))
    (setq I1H (/ I1 2))
    (command "layer" "se" 12 "")
    (command "linie" XL1A XL1E "")
    (command "linie" XL2A Xl2E "")
    (setq I1HF (fix (/ I1 2)))
    (setq I1A I1HF)
    (setq I1E (- I1 I1A))
    (repeat I1A
    (setq Xl1A (polar XL1A PI2 1))
    (setq L1 (- L1 LGD1))
    (setq XL1E (polar XL1A win L1))
    (command "linie" XL1A XL1E "")
    )
    (repeat I1E
    (setq XL1A (polar XL1A PI2 1))
    (setq L1 (+ L1 LGD1))
    (setq XL1E (polar XL1A win L1))
    (command "linie" XL1A XL1E "")
    )
    (command "fang" "d" (list 0 0 0) 0.00000)
    )
    

Unter R14 klappt alles wunderbar, unter 2007 läuft nix mehr.
Bis jetzt habe ich herausgefunden, daß der Parameter "d" (für drehen) in 2007 nicht mehr existiert. Es gibt hier "R" (für rotate), aber das scheint nicht der einzige Fehler zu sein.

Weiß jemand was noch falsch sein könnte ?

Danke für die Hilfe,

zoff

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: 03. Sep. 2006 19:00    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 Zoff 10 Unities + Antwort hilfreich

Hallo Zoff,
sei begrüßt im WBF.

Wenn du ein paar sinnvolle Eingabewerte vorgibst und eine AutoCAD (R14) Zeichnung mit dem Soll-Ergebnis hier reinstellst, dann würde ich es mal testen. Aber extra R14 installieren ist mir zu aufwändig.

Es besteht die Möglichkeit, dem eigenen Artikel/Beitrag Anhänge mitzugeben. ALlerdings ist die Endung DWG nicht erlaubt. Entweder ein ZIP-Archiv mit der/den entsprechenden Dateien anängen, oder einfach die Erweiterung .TXT anhängen, dann klappts auch.

------------------
Mit freundlichem Gruß

Udo Hübner

[Diese Nachricht wurde von CAD-Huebner am 03. Sep. 2006 editiert.]

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

Zoff
Mitglied



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

Beiträge: 19
Registriert: 30.08.2006

erstellt am: 03. Sep. 2006 19: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


esg.ZIP

 
Hallo,

der Anhang ist eine zip Datei, hier die Eingabewerte:

Winkel P1: 90

Winkel P2: 0

Einfuegepunkt: egal
Dicke Fenster: 8

Die Layer 2 + 12 müssen existieren.

p.s.: bei mir wird im Browser der Anhang als 1157306084.txt dargestellt, obwohl die Datei esg.zip heisst. Ich hoffe, man kann was damit anfangen.

Danke für die Mühe,
zoff

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 03. Sep. 2006 20:20    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 Zoff 10 Unities + Antwort hilfreich

Hallo Zoff

Soweit ich weiß, hat sich an der Lisp-Funktionen nix geändert, aber mit Sicherheit einige ACAD-Befehle (die Zeilen mit "command" überprüfen).
"Rotate" ohne "_" davor deutet auf eine englisch ACAD-Version. Es ist klug, in Lisp prinzipiell die englische Befehlsversion mit Underliner davor (zB. "_rotate") zu verwenden, das funktioniert dann in jeder Version.

------------------
Schöne Grüße
Ernst

Meine Homepage

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: 03. Sep. 2006 20:37    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 Zoff 10 Unities + Antwort hilfreich

Na, wenn man (command "fang" "d"... in
(command "fang" "_r" ...
ändert, läuft eigentlich alles. WICHTIG ist bei diesm Programm, das mann den Objektfag DEAKTIVIERT, sonst kommt nichts brauchbares mehr heraus.

------------------
Mit freundlichem Gruß

Udo Hübner

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

Zoff
Mitglied



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

Beiträge: 19
Registriert: 30.08.2006

erstellt am: 03. Sep. 2006 21:08    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


esg2.ZIP

 
Hallo,

den Parameter habe ich von d auf _r umgestellt (danke für den Tip, auf den Unterstrich wäre ich nie gekommen), aber das Ergebniss sieht noch nicht so aus, wie unter R14. (die weissen Linien sollten parallel sein und nicht zusammenlaufen, vgl. esg2.dwg)
Der Fang war auch unter R14 immer aktiviert, eingestellt auf 0.5 . Wenn ich ihn vor dem Aufruf der LSP Funktion deaktiviere, ist er hinterher wieder an.
Was ich auch nicht verstehe ist, wozu da im Listing überhaupt etwas verändert werden muß. Aber ein auskommentieren der Aufrufe von Fang hilft auch nicht weiter. Was könnte noch falsch sein?

noch ratlos,
zoff

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

Zoff
Mitglied



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

Beiträge: 19
Registriert: 30.08.2006

Auto Cad 2014
Summa Sketch Professionel III
Win 7 64

erstellt am: 03. Sep. 2006 21:15    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

Zitat:
Soweit ich weiß, hat sich an der Lisp-Funktionen nix geändert, aber mit Sicherheit einige ACAD-Befehle (die Zeilen mit "command" überprüfen).
"Rotate" ohne "_" davor deutet auf eine englisch ACAD-Version. Es ist klug, in Lisp prinzipiell die englische Befehlsversion mit Underliner davor (zB. "_rotate") zu verwenden, das funktioniert dann in jeder Version.


Die 2007´er Version ist definitiv die Deutsche. Kann es sein, daß das Lisp Modul trotzdem in Englisch ist? Die Help Files sind es.

Wohin muß der Unterstrich? Vor jeden Parameter, vor jeden Befehl oder beides?
Der command Befehl um den Layer zu wechseln funktioniert übrigens problemlos ohne den Unterstrich.

[Diese Nachricht wurde von Zoff am 03. Sep. 2006 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: 03. Sep. 2006 21: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 Zoff 10 Unities + Antwort hilfreich

Das die Linien so komisch aussehen liegt am etwas anderen Verhalten von Programmen enn der Objektfang OFANG (nicht FANG) aktiviert ist.

Ich habe den Code etwas überarbeitet, schön ist er aber nicht. Vor allen Dingen die extensive Nutuzng von Variablen ist für dieses Programm völlig unnötig.

Code:

(defun c:fens1( / FEP GD1 GD1M I1 I1A I1E I1H I1HF L1 LGD1 OS
                   PI2 PIWIN WIN X1 X2 X3 X4 X5 X6 XL1A XL1E XPI2)
  (if (< (setq os (getvar "OSMODE")) 16384) ; Objektfang deaktivieren
    (setvar "OSMODE" (+ os 16384))
  )

  (setq L1 (getpoint "\nWinkel P1: "))
  (setq WIN (getangle L1 "\nWinkel P2: "))
  (setq PI2 (+ (/ pi 2) WIN))
  (setq XPI2 (+ (/ (* 3 pi) 2) WIN))
  (setq PIWIN (+ pi WIN))
  (setq FEP (getpoint "\nEinfügepunkt: "))
  (setq GD1 (getint "\nDicke Fenster: "))
  (setq GD1M (- GD1 1))
  (command "_layer" "_make"  2 "")
  ;;; auskommentiert, da überflüssig
  ; (command "_snap" "_r" FEP WIN)

  (setq X1 (polar FEP WIN 96))
  (setq X2 (polar FEP WIN 1))
  (setq X3 (polar FEP PI2 1))
  (setq X4 (polar FEP PI2 GD1M))
  (setq X5 (polar X2 PI2 GD1))
  (setq X6 (polar X5 WIN 95))
  (command "_pline" X1 "_wid" 0.0 0.0 X2 X3 X4 X5 X6 "")
  (setq LGD1 (/ 15 GD1))
  (setq L1 65)
  (setq I1 (- GD1 2))
  (setq XL1A (polar FEP PI2 1))
  (setq XL1E (polar XL1A win L1))
  (setq I1H (/ I1 2))
  (command "_layer" "_make" 12 "") ;  _Make ist besser als _SET, da der Layer bei nicht Vorhandensein angelegt wird.
  (command "_line" XL1A XL1E "")
  ;;; auskommentiert
  ;;; (command "_line" XL2A Xl2E "") ; Die Variablen XL2A und Xl2E werden nirdgendwo gesetzt!
  (setq I1HF (fix (/ I1 2)))
  (setq I1A I1HF)
  (setq I1E (- I1 I1A))
  (repeat I1A
    (setq Xl1A (polar XL1A PI2 1))
    (setq L1 (- L1 LGD1))
    (setq XL1E (polar XL1A win L1))
    (command "_line" XL1A XL1E "")
  )
  (repeat I1E
    (setq XL1A (polar XL1A PI2 1))
    (setq L1 (+ L1 LGD1))
    (setq XL1E (polar XL1A win L1))
    (command "_line" XL1A XL1E "")
  )
  ;;; auskommentiert, da überflüssig
  ;(command "_snap" "_r" (list 0 0 0) 0.00000)

)


------------------
Mit freundlichem Gruß

Udo Hübner

[Diese Nachricht wurde von CAD-Huebner am 03. Sep. 2006 editiert.]

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

Zoff
Mitglied



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

Beiträge: 19
Registriert: 30.08.2006

erstellt am: 03. Sep. 2006 22: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

Super, genau das war das Problem. Der Objektfang!

Ich hab´s mal mit den anderen Lisp Programmen ausprobiert (ich habe verschiedene für verschiedene Scheibenaufbauten) und alle funktionieren jetzt.

Herzlichen Dank !

p.s.: Was ist das mit den "Unities" im Forum ? Benutzt ihr das ? Wie verteile ich die jetzt?

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 04. Sep. 2006 07:09    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 Zoff 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Zoff:
Die 2007´er Version ist definitiv die Deutsche. Kann es sein, daß das Lisp Modul trotzdem in Englisch ist? Die Help Files sind es.

Wohin muß der Unterstrich? Vor jeden Parameter, vor jeden Befehl oder beides?
Der command Befehl um den Layer zu wechseln funktioniert übrigens problemlos ohne den Unterstrich.[/B]


Unterstrich:
Wie Dir Udo im Programm bereits demonstriert - bei beiden.
Layer = Layer, set = setzen - hier ist's zufällig egal.

Von Lisp gibts nur eine (internationale) Version - setq oder getpoint ... sind in allen Sprachen gleich - auch die Hilfe gibts teilweise nur in Englisch.


------------------
Schöne Grüße
Ernst

Meine Homepage

[Diese Nachricht wurde von Geos am 04. Sep. 2006 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: 04. Sep. 2006 10:24    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 Zoff 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Zoff:
Super, genau das war das Problem....
Herzlichen Dank !

p.s.: Was ist das mit den "Unities" im Forum ? Benutzt ihr das ? Wie verteile ich die jetzt?



Die Units dienen eigentlich nicht der Bewertung von Beitragen (obwohl manchmal dazu missbraucht ), sondern zum Dankeschön sagen für einen hilfreichen Beitrag. http://www.cad.de/VIP/Unities.shtml
Da sie nichts kosten und auch sonst zu nichts nütze sind, ist es neben dem persönlichen Dank (wie oben, aber man kann ja nicht jeden Beitrag der hilfreich ist mit einem Danke versehen) eine weitere Form der Anerkennung der Beitragschreiber.
Das Thema gabs schon öfter, hier nochmal ein anderer Beitrag dazu. http://ww3.cad.de/foren/ubb/Forum50/HTML/006430.shtml
oder http://ww3.cad.de/foren/ubb/Forum25/HTML/000065.shtml#000003


Zum Verteilen von UNits auf die 10 am oberen Rand des jeweiligen Beitrags drücken.

------------------
Mit freundlichem Gruß

Udo Hübner

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