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

Farbe der schichts

  • Ersteller Ersteller Gio_S
  • Erstellt am Erstellt am

Gio_S

Guest
hello für alle, in lisp was ist der einfachste Weg, aus einer Schicht zu extrahieren (wissen ihren Namen) die Farbe, die ihm schließlich zugeordnet wurde, um seine Farbeinheiten "bylayer" zu färben? (lisp, no vla)
Danke!
 
Code:
(defun fnlayers(/l x)
(vlax-for x (vla-get-layers (vla-get-activedocument(vlax-get-acad-object)))
(setq l (Liste (vla-get-name x)))
)
l l
)
die Funktion gibt eine durch den Plannamen und die zugehörige Farbe gebildete Liste zurück
Bye
 
Ich habe das "keine vla", Abhilfe nicht bemerkt.
Code:
(defun fnlayers(/schleife nome colore lista)
(Setq Schleife (tblnext "layer" t))
(while Schleife)
(setq nome (cdr (nth 1 loop)))
(setq colore (cdr (nth 3 loop)))
(setq lista (Liste anklicken (Liste der Nome-Farbe)))
(Setq Schleife (tblnext "Schicht")
)
Liste
)
 
Zuletzt bearbeitet:
Vielen Dank! Ich habe diese Unterstützung nicht, ich nutze die klassische Lisp.
Vielen Dank! Das war richtig mein Zweifel, bevor Sie auf das Tribulieren auf der Schleife, die mir schöne "ready" serviert :) Ich verstehe, dass Sie nicht direkt auf die Schicht zeigen können, nachdem Sie den Namen der Schicht eines Objekts extrahiert haben, aber gehen Sie sie, bis Sie die richtige finden und dann "sehen Sie uns" innen. viele Zyklen, wenn ich so viele Objekte zu untersuchen habe... das ist alles, weil ich meinen Konverter in stl. Im Moment nutze ich seine Farbe, wenn es existiert, aber im Fall "bylayer" muss ich auf Ihre Funktion zurückgreifen. Vielen Dank!
 
Vielen Dank, also bin ich gut! Ich dachte, ich müsste so etwas benutzen, aber ich bin daran gewöhnt, nur Objekte zu manipulieren...
 
perfekt, mit meinem alten Autolisp:
Code:
(wenn (= "3dface" (cdr(assoc 0 alist))))
(Prog.)
(falls (= 256 (cdr (Alist 62)))
(setq color (rtos (cdr (assoc 62 (tblsearch "layer" (cdr (assoc 8 alist)))))))))
(setq color (rtos (cdr (assoc 62 alist))))
) .......................
 
perfekt, mit meinem alten Autolisp:
Code:
(wenn (= "3dface" (cdr(assoc 0 alist))))
(Prog.)
(falls (= 256 (cdr (Alist 62)))
(setq color (rtos (cdr (assoc 62 (tblsearch "layer" (cdr (assoc 8 alist)))))))))
(setq color (rtos (cdr (assoc 62 alist))))
) .......................
Nur eine Neugier. in autocad, wenn Sie die Auswahl autolisp machen, wenn die Farbe nicht gedrückt wird, ist der Code 62 nicht aktiv, es erscheint nur anders, dann (62. 256) muss unbedingt "frucht" eines anderen Cads sein. tatsächlich unter der Software von gio_s gibt es intellicad, kompatible autolisp, aber nicht für vla-vlax-Funktionen. dass die Experten mich berichtigen, wenn ich einen Unsinn sagte.
 
Ich war auch von intellicad überzeugt, in der Tat vor der Erweiterung der Forschung auf die Farbe der Schicht, prudently ich getestet, dass die 62 des Gesichts nicht zurückkehrte mich nil.
anstatt (ich spreche immer für intellicad) Ich erkannte, dass die 62 mich immer 256 zurückgibt. aber nur in der Datenbank. erscheint nicht im dxf des Gesichts, aber es gibt in allen Abschnitten der Einstellungen des Designs.
 
eine kleine Neugier für diejenigen, die mit stl drucken, ich haken es hier, weil minimal und relativ zu Farbe.
wir hatten bereits die Unmöglichkeit diskutiert, stl-Tracks von autolisp zu erzeugen, weil die mobile Komma in Einzelgenauigkeit nicht unterstützt wird (sie erzeugen nur "doppeln"). stattdessen will der binäre Schiefer die Daten im "Einzel"-Format.
Am Ende gab ich hin, und in meinem Parser, der kompiliert, Zeit vom Grunddatum des Cads zu laufen, um mir eine schnelle Überprüfung während der Arbeit zu ermöglichen, war ich zufrieden, Ascii Typ stl zu erzeugen, sehr einfach zu schreiben.
dann rufen Sie mein Werkzeug in einer anderen Sprache, die es eine kompakte binäre Datei machte. System am Ende schneller ausgeführt werden als es zu beschreiben.
Ich fehlte der Farbe, wesentlich, um die visuelle Inspektion der Teile zu erleichtern, weil der Ascii stl es nicht unterstützt. Am Ende, da ich getextet bin und ich kein anderes Zwischenformat erfinden wollte, fand ich heraus, wie man die Farbe im Track durch die Ascii "cacciare".
Klar lesen Programme die Farbe in den Ascii ignorieren es alles, aber sie gehen nicht falsch, und ich bin mit einer Datei Ascii, die ich mit all dem sw herum lesen kann, aber auch binär, ohne Farbe zu verlieren:
es genügt, die Farbcodierung nach dem Schließen "Endfacet" zu werfen. klar der Zeiger "cad color" Ich erfand es... Die Gründerin ist, dass es niemanden stört.
Code:
 Normale Facetten -0.23379819 0.20359900 -0.95072912
Außenschleife
3.70767496 -2.34397192 -4.4987455
3.68773415 -1.27682691 -4.26531230
4.25378586 0.00000000000 -4.13107972
Endloop
Endfacetten cad Farbe 700000000
 

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