Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Fehlermeldung

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:  Fehlermeldung (1143 mal gelesen)
Alfonso
Mitglied
Holztechniker


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

Beiträge: 44
Registriert: 24.08.2005

HP Workstation Z400
Intel(R) Xeon(R) CPU W3550 @ 3.06GHz
16.0 GB RAM
Nvidea Quadro 4000
Windows 7 Proffessional 64bit
AutoCAD 2012
Inventor 2012
Navisworks Manage 2012

erstellt am: 06. Nov. 2006 13: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

Hallo zusammen,

habe mir ein Lisp geschrieben, womit ich mir schnell und einfach in 3D Schubkästen erstellen kann. Leider funktioniert die Rutine nur zwei bis drei mal. Spätestens beim vierten aufruf kommt die Fehlermeldung und AutoCAD (ACAD 2007) stürzt ab.

"Systemfehler: Befehle können nicht in mehr als 4 verschachtelt sein"

Kann mir jemand helfen?


Hier der Code:

(defun c:3d_norm_01 (/ SB ST SH MS NT BS)
  (setq SB (getdist "\nSchubkastenbreite angeben:") ;Schubkastenbreite
ST (getdist "\nSchubkastentiefe angeben:") ;Schubkastentiefe
SH (getdist "\nSchubkastenhöhe angeben:") ;Schubkastenhöhe
MS 15 ;Materialstärke der Seiten
BS 6 ;Bodenstärke
NT (+ (/ MS 3) 1) ;Nuttiefe in den Seiten
AWS (ssadd) ;Auswahlsatz
  )
  (01_linke_Seite)
  (01_rechte_Seite)
  (01_Vorderstück)
  (01_Hinterstück)
  (01_Boden)
  (01_Einfügen)
)
(defun 01_linke_Seite (/)
  (command "_box"
  (list 0 0 0)
  (list MS ST SH)
  )
  (setq S1 (entlast))
  (ssadd S1 AWS)
  (command "_box"
  (list (- MS NT) 0 15)
  (list MS ST (+ 15 BS))
  )
  (command "_subtract"
  S1
  ""
  (entlast)
  ""
  )
  (command "_pline"
  (list 0 0 0)
  (list MS 0 0)
  (list MS MS 0)
  "S"
  )
  (command "_extrude"
  (entlast)
  ""
  SH
  )
  (command "_subtract"
  S1
  ""
  (entlast)
  ""
  )
  (command "_pline"
  (list 0 ST 0)
  (list MS ST 0)
  (list MS (- ST MS) 0)
  "S"
  )
  (command "_extrude"
  (entlast)
  ""
  SH
  )
  (command "_subtract"
  S1
  ""
  (entlast)
  ""
  )
)
(defun 01_rechte_Seite (/)
  (command "_mirror3d"
  (entlast)
  ""
  "YZ"
  (list (/ SB 2) 0 0)
  "N"
  )
  (setq S2 (entlast))
  (ssadd S2 AWS)
)
(defun 01_Vorderstück (/)
  (command "_box"
  (list 0 0 (+ 15 BS))
  (list SB MS SH)
  )
  (setq S3 (entlast))
  (ssadd S3 AWS)
  (command "_pline"
  (list 0 0 0)
  (list 0 MS 0)
  (list MS MS 0)
  "S"
  )
  (command "_extrude"
  (entlast)
  ""
  SH
  )
  (command "_subtract"
  S3
  ""
  (entlast)
  ""
  )
  (command "_pline"
  (list SB 0 0)
  (list SB MS 0)
  (list (- SB MS) MS 0)
  "S"
  )
  (command "_extrude"
  (entlast)
  ""
  SH
  )
  (command "_subtract"
  S3
  ""
  (entlast)
  ""
  )
)
(defun 01_Hinterstück (/)
  (command "_mirror3d"
  S3
  ""
  "ZX"
  (list 0 (/ ST 2) 0)
  "N"
  )
  (setq S4 (entlast))
  (ssadd S4 AWS)
)
(defun 01_Boden (/)
  (command "_box"
  (list (- MS (- NT 1)) 0 15)
  (list (- SB (- MS (- NT 1))) ST (+ BS 15))
  )
  (setq S5 (entlast))
  (ssadd S5 AWS)
)
(defun 01_Einfügen (/)
  (command "_copybase"
  (list -5 0 -11)
  AWS
  ""
  )
  (command "_erase"
  AWS
  ""
  )
  (command "_pasteclip")
)

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 06. Nov. 2006 15:35    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 Alfonso 10 Unities + Antwort hilfreich

Hallo Alfonso,
ich würde testen, ob alle command-Befehle auch korrekt beendet werden, ich habe es in 2006 mal durchlaufen lassen, aber beim ersten command-Aufruf von _extrude war bei mir schon Ende, weil das Maß der Verjüngung nicht vorhanden ist.

(command "_extrude"
  (entlast)
  ""
  SH
)

Einfach eine 0.0 einfügen:
(command "_extrude"
  (entlast)
  ""
  SH
0.0
  )

Zudem würde ich drauf achten, das die Variablen alle deklariert sind, lokal oder global.

z.B. (setq AWS(01_linke_Seite AWS MS NT ST SH BS))

Die Funktion 01_linke_Seite dann
(defun 01_linke_Seite (AWS MS NT ST SH BS / S1)
....
AWS)

------------------
viele Grüße

Jörn

[Diese Nachricht wurde von joern bosse am 06. Nov. 2006 editiert.]

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

Alfonso
Mitglied
Holztechniker


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

Beiträge: 44
Registriert: 24.08.2005

HP Workstation Z400
Intel(R) Xeon(R) CPU W3550 @ 3.06GHz
16.0 GB RAM
Nvidea Quadro 4000
Windows 7 Proffessional 64bit
AutoCAD 2012
Inventor 2012
Navisworks Manage 2012

erstellt am: 07. Nov. 2006 09: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 Jörn,

vielen Dank für deine Hilfe. Leider bin ich aber immer noch nicht weitergekommen.

Da man bei AutoCAD 2007 bei dem Befehl _extrude die Verjüngung nicht mehr angeben muss kann der Code unter 2006 auch nicht laufen. Deshalb habe ich den Code unten für AutoCAD 2000 angehängt.

Wenn ich AutoCAD 2000 und das Lisp starte läuft es beim ersten mal ohne Probleme durch. Beim zweiten mal kommt die Fehlermeldung wieder und AutoCAD stürzt ab. Ich habe herrausgefunden, das die Fehlermeldung immer am zweiten _mirror3d Befehl kommt. Also immer beim vierten aufruf von _mirror3d.
Woran kann das liegen?

Desweiteren verstehe ich nicht was du mit folgendem Zeilen meinst?

______________________________________________________

z.B. (setq AWS(01_linke_Seite AWS MS NT ST SH BS))

Die Funktion 01_linke_Seite dann
(defun 01_linke_Seite (AWS MS NT ST SH BS / S1)
....
AWS)

________________________________________________________

Die Variabeln habe ich doch alle deklariert?


Hier der Code:

(defun c:3d_norm_01 (/ SB ST SH MS BS NT AWS S1 S2 S3 S4 S5)
  (setq SB  (getdist "\nSchubkastenbreite angeben:") ;Schubkastenbreite
ST  (getdist "\nSchubkastentiefe angeben:")  ;Schubkastentiefe
SH  (getdist "\nSchubkastenhöhe angeben:") ;Schubkastenhöhe
MS  15 ;Materialstärke der Seiten
BS  6 ;Bodenstärke
NT  (+ (/ MS 3) 1) ;Nuttiefe in den Seiten
AWS (ssadd) ;Auswahlsatz
  )
  (command "_ucs"
  "w"
  "osmode"
  "0"
  )
 
  (01_linke_Seite)
  (01_rechte_Seite)
  (01_Vorderstück)
  (01_Hinterstück)
  (01_Boden)
  (01_Einfügen)
)
(defun 01_linke_Seite (/)
  (command "_box"
  (list 0 0 0)
  (list MS ST SH)
  )
  (setq S1 (entlast))
  (ssadd S1 AWS)
  (command "_box"
  (list (- MS NT) 0 15)
  (list MS ST (+ 15 BS))
  )
  (command "_subtract"
  S1
  ""
  (entlast)
  ""
  )
  (command "_pline"
  (list 0 0)
  (list MS 0)
  (list MS MS)
  "S"
  )
  (command "_extrude"
  (entlast)
  ""
  SH
  0
  )
  (command "_subtract"
  S1
  ""
  (entlast)
  ""
  )
  (command "_pline"
  (list 0 ST)
  (list MS ST)
  (list MS (- ST MS))
  "S"
  )
  (command "_extrude"
  (entlast)
  ""
  SH
  0
  )
  (command "_subtract"
  S1
  ""
  (entlast)
  ""
  )
)
(defun 01_rechte_Seite (/)
  (command "_mirror3d"
  S1
  ""
  "YZ"
  (list (/ SB 2) 0 0)
  "N"
  )
  (setq S2 (entlast))
  (ssadd S2 AWS)
)
(defun 01_Vorderstück (/)
  (command "_box"
  (list 0 0 (+ 15 BS))
  (list SB MS SH)
  )
  (setq S3 (entlast))
  (ssadd S3 AWS)
  (command "_pline"
  (list 0 0)
  (list 0 MS)
  (list MS MS)
  "S"
  )
  (command "_extrude"
  (entlast)
  ""
  SH
  0
  )
  (command "_subtract"
  S3
  ""
  (entlast)
  ""
  )
  (command "_pline"
  (list SB 0)
  (list SB MS 0)
  (list (- SB MS) MS)
  "S"
  )
  (command "_extrude"
  (entlast)
  ""
  SH
  0
  )
  (command "_subtract"
  S3
  ""
  (entlast)
  ""
  )
)
(defun 01_Hinterstück (/)
  (command "_mirror3d"
  S3
  ""
  "ZX"
  (list 0 (/ ST 2) 0)
  "N"
  )
  (setq S4 (entlast))
  (ssadd S4 AWS)
)
(defun 01_Boden (/)
  (command "_box"
  (list (- MS (- NT 1)) 0 15)
  (list (- SB (- MS (- NT 1))) ST (+ BS 15))
  )
  (setq S5 (entlast))
  (ssadd S5 AWS)
)
(defun 01_Einfügen (/)
  (command "_copybase"
  (list -5 0 -11)
  AWS
  ""
  )
  (command "_erase"
  AWS
  ""
  )
  (command "_pasteclip")
)


mfg Alfonso

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 07. Nov. 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 Alfonso 10 Unities + Antwort hilfreich

Mir ist aufgefallen, das die Func 01_rechte_Seite die Eingabe von YZ in mirror3d bei meinem Test (AC2002) nicht zulässt.

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

Alfonso
Mitglied
Holztechniker


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

Beiträge: 44
Registriert: 24.08.2005

HP Workstation Z400
Intel(R) Xeon(R) CPU W3550 @ 3.06GHz
16.0 GB RAM
Nvidea Quadro 4000
Windows 7 Proffessional 64bit
AutoCAD 2012
Inventor 2012
Navisworks Manage 2012

erstellt am: 07. Nov. 2006 10:33    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 CADwiesel,

die Eingabe von YZ in den Befehl _mirror3d funktioniert beim mir in ACAD 2000 und ACAD 2007.
Der Fehler liegt aber irgendwo bei den Befehl _mirror3d, weil er in der Funktion "01_rechte_Seite" und "01_Hinterstück" vorkommt und das Lisp immer dort abbricht.

Kannst du mir weiter helfen?

mfg Alfonso

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 09. Nov. 2006 09:12    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 Alfonso 10 Unities + Antwort hilfreich

Hallo Alfonso,
tja, ich kann Dir den Fehler nur bestätigen, ohne Tip (Außer auf den Befehl _mirror3D zu verzichten und die rechte Seite und das Hinterstück auch über Konstruktion zu erstellen.)

Zu meiner letzten Antwort:
Das war wohl ein Schnellschuss mit den Variablen. Wo ich eigentlich drauf hinaus wollte ist, das ich kleinere Funktionen in der Regel mehrfach verwende und daher die geforderten Variablen direkt übergebe.

Vielleicht verdeutlicht dies ein folgendes Beispiel:

Code:

(defun c:test ( / a b c d ergebnis1 ergebnis2)
  (setq a 1
b 2
c 3
d 4)
  (setq ergebnis1 (plus a b)
ergebnis2 (plus c d)))

(defun plus (a b / )
  (+ a b))


(defun c:test1 ( / a b c d ergebnis1 ergebnis2)
  (setq a 1
b 2
c 3
d 4)
  (setq ergebnis1 (plus1)
ergebnis2 (plus1)))

(defun plus1( / )
  (+ a b))


In Test1 kann die Funktion plus mit verschiedenen Variablen verwendet werden. In Test2 dagegen kann die Funktion plus1 nur die Variablen a und b addieren, wenn Sie durch die Aufrufende Funktion mit entsprechenden Werten gefüllt sind.

------------------
viele Grüße

Jörn

[Diese Nachricht wurde von joern bosse am 09. Nov. 2006 editiert.]

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