• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Liste bestimmter Schichten erstellen

  • Ersteller Ersteller zintonio
  • Erstellt am Erstellt am

zintonio

Guest
hallo.
ich möchte die liste bestimmter schichten erstellen und ich skizzierte eine lisp-funktion, aber es funktioniert nicht vielleicht etwas falsch. die fessel, die ich skizziert habe, ist wie folgt:
(defun c:clistalayer (/ listlayer layer)
(setq entlayer (tblnext "layer" t)
(sing)
(progn)
(setq-schicht)
(falls) (substr-schicht 1 1) "d")
(setq listlayer)
)
)
)
(setq listlayer listlayer)
)
es ist, als wäre ich in der zeit und es ist weg.
mein ziel ist es, eine liste aller schichten zu erstellen, deren name zum beispiel beginnt (d1, d2, etc.)
danke.
 
(defun c:clistalayer (/ listalayer layer)
(setq-schicht (cdr (assoc 2 (tblnext "layer" t)))
(while (/= schicht nil)
(setq-schicht (cdr (assoc 2 (tblnext "layer"))))
(Fälle)
(und
(/= schicht nil)
(= Substr-schicht 1 1) "d")
)
(setq listalayer (append listalayer (list layer)))
)
)
)

il lisp cattura solo i layer che iniziano con "d", se vuoi anche quelli che iniziano con "d" scrivi così:

(Strcase (Substr Layer 1) "d")

: lächeln: lächeln:
 
danke tausend gp:finger: ausgezeichnet lisp.
ich habe das ende hinzugefügt:
(setq l (längenliste)
(prin1 listlayer)
(prin1 l)
das ergebnis zu sehen.
 
ich wollte dich etwas fragen, um die lisp sprache besser zu verstehen.
ich habe versucht, die folgende liste auf der kommandoleiste einzufügen:
(setq-schicht (cdr (assoc 2)))
;(setq listlayer '(nil))
(while (/= schicht nil)
(setq-schicht)
(f)
(sing)
(/= schicht nil)
(d)
)
(setq listlayer)
)
)
(setq l (längenliste)
(prin1 listlayer)
(prin1 l)

und ich bekomme die n-uplicate liste so oft, wie ich bedecken und abziehen.
aber wenn ich die funktion ausführen kann, ist es okay.

ich fragte mich dann, was die variablen zurücksetzt....kann defunct c: irgendwie den inhalt der variablen löschen?
danke.
 
Angabe
(fun c:clistalayer) Liste schicht
die "lokale" variable machen, daher außerhalb der funktion nicht nutzbar, da sie auf "nil" zurückgesetzt wird.

nicht in den defunct einfügen, machen sie es "global" und halten dann seinen wert auch am ausgang aus der lispe, versuchen, ! durch befehl.

ich weiß nicht, ob sie es bereits tun, aber sie besser verwenden den visuallisp-editor für ihre änderungen, können sie auch nur einen teil des codes auswählen und versuchen "die wirkung es tut", aus dem befehl -> vlisp.
 
danke gp jetzt ist klarer.:finger:
immer über diese lippe (crealistalayer) bekannt, dass die schichten nicht sortiert sind, so möchte ich sie nach namen neu bestellen und ich habe funktionen eingefügt, die versuchen, sie zu bestellen, aber ohne ergebnis. um sie neu zu bestellen ich benutzte die blasensort-funktion. legen sie die lippe, damit sie besser verstehen.
danke.
 

Anhänge

super:finger:
über die verwendung von visuellen lispe versuchte ich, die lispe im editor zu öffnen.
um einige teile des codes auszuprobieren, muss ich mit der rechten maustaste klicken und analysieren?
oder gibt es eine run-taste? ich habe den visuellen editor nie benutzt, also bin ich etwas unorientiert, sobald ich ihn geöffnet habe.
gibt es methoden, um lisp zu erstellen oder muss ich sie bearbeiten?
danke.
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben