Abfrage ob TrueColor oder Indexfarbe / Lisp
Temuedschin 03. Jun. 2020, 13:36

Hallo zusammen,
Da der Autocad Command "_layer" beim setzen der Farbe bei einer Truecolor- bzw. Indexfarbe unterschiedliche Syntax benötigt, würde ich eine Abfrage des Farbcodes benötigen.
Bei meinem Lisp enthält die Variable "LSP_LAY_COLO" den Farbcode (z.b. 150,150,150 oder 20) aus einer Exceldatei.

z.b.
wenn "LSP_LAY_COLO" ein "," enthält dann "_layer" ... "_color" "_truecolor" "LSP_LAY_COLO" ...
wenn "LSP_LAY_COLO" kein "," enthält dann "_layer" ... "_color" "LSP_LAY_COLO" ...

Leider kann ich den Lisp Command nicht finden, der mir die Variable auf ein bestimmtes Zeichen hin überprüft.

Danke.

cadffm 03. Jun. 2020, 14:00

https://help.autodesk.com/view/ACD/2021/DEU/?guid=GUID-8543549B-F0D7-43CD-87A3-F6B827FF0B88

Sicherstellen das man einen String hat,
dann suchen ob das Zeichen enthalten ist.


Man könnte das Tool dann noch auf FarbbuchFarben erweitern.
Dann würde man wohl schauen das weder ein Komma enthalten ist
noch das es nur eine Zahl ist.

Keines von den dreien = Fehlerwert

Temuedschin 03. Jun. 2020, 15:31

Danke cadffm,

"vl-string-search" funktioniert perfekt dafür.

Meldin 04. Jun. 2020, 07:50

Da du ja auf jeden Fall die Farbe änderst kannst du auch die Abfrage sparen denn setpropertyvalue ist es egeal wie die Farbe aussieht.
hier ein paar Beispiele.

(setpropertyvalue (tblobjname "LAYER" "0") "Color" "241,227,215")

(setpropertyvalue (tblobjname "LAYER" "0") "Color" "2")

(setpropertyvalue (tblobjname "LAYER" "0") "Color" "PANTONE+ Pastels & Neons Coated,PANTONE 934 C")