liefert dir ein TrueColor-VlaObject zurück und mit diesem kannst du dir die Werte
- Red --> (vlax-get-property <TrueColor-VlaObject> 'Red)
- Green --> analog wie oben
- Blue --> analog wie oben
und
- BookName --> (vlax-get-property <TrueColor-VlaObject> 'BookName)
- ColorName --> analog wie oben
auslesen.Alternativ die Kurzschreibweise...
vla-get-truecolor
vla-get-red
vla-get-green
vla-get-blue
vla-get-bookname
vla-get-colorname
Nur in Lisp, also ohne ActiveX, wird es schwieriger, da im Layer-Entity nur ein Index abgelegt ist. Dieser befindet sich im GC 420 (nur vorh. wenn gesetzt bzw. Farbuch vorh. ist) und Farbbuch/Farbname findest du im GC 430 (nur vorh. wenn Farbuch gesetzt ist).
Um den Index in RGB umzuwandeln muß man sich eine Funktion schreiben :)
Code:
(defun :C-TCsplit ( #c / )
(list (lsh (fix #c) -16)
(lsh (lsh (fix #c) 16) -24)
(lsh (lsh (fix #c) 24) -24)
)
)
Aufruf z.B. --> (:C-TCsplit (cdr(assoc 420 (entget(tblobjname "layer" "0")))))
Hier am Beispiel natürlich GC 420 vorh.
So und nun viel Spaß beim coden
------------------
CADmaro.de
[Diese Nachricht wurde von benwisch am 07. Aug. 2008 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP