Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Befehl Layer / Spalte Farbe

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:  Befehl Layer / Spalte Farbe (659 mal gelesen)
Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 22. Dez. 2004 16:10    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


layman.JPG

 
Hallo,

im Dialogfenster des Befehls layer gibt es die Spalte Farbe (siehe Anlage). Wie kann ich in Lisp die Information dieser Spalte ermitteln, wenn der Layername bekannt ist?

Mit (tblsearch "layer" layername) bin ich nicht weiter gekommen.

Danke im Voraus und viele Grüße
Bernd

EDIT:
Warum werden immer meine alten System-Infos verwendet, obwhl ich sie in meinem Profil aktualisert habe?

[Diese Nachricht wurde von Bernd10 am 22. Dez. 2004 editiert.]

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 22. Dez. 2004 16: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 Bernd10 10 Unities + Antwort hilfreich

(entget(tblobjname "layer" "0"))

schau dir die DXF-Referenz in der Hilfe an, besonders den gc62 ...

SYSinfo: suche im Kritik oder Community Forum nach "Zusatztext"

[Diese Nachricht wurde von cadffm am 22. Dez. 2004 editiert.]

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 22. Dez. 2004 17:02    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 Bernd10 10 Unities + Antwort hilfreich

Folgende Funktionen sollten dir weiterhelfen :
(defun LAYER_GET_PROPS (LAYERNAME / LAYERDATEN LAYER_PROPS SAVEDIMZIN)
  (if(and(= (type LAYERNAME) 'STR)
        (setq LAYERDATEN (tblobjname "LAYER" LAYERNAME))
        (setq LAYERDATEN (entget LAYERDATEN))             
    )   
    (progn
      (setq SAVEDIMZIN (getvar "DIMZIN"))
      (setvar "DIMZIN" 0)
      (setq LAYER_PROPS (list      (cdr (assoc  2 LAYERDATEN))         
                          (itoa(abs(cdr (assoc  62 LAYERDATEN))))       
                                  (cdr (assoc  6 LAYERDATEN))         
                            (if (>=(cdr (assoc 370 LAYERDATEN)) 0)
                          (rtos (/(cdr (assoc 370 LAYERDATEN))100.0) 2 2)
                          (itoa  (cdr (assoc 370 LAYERDATEN))))
                            (if (< (cdr (assoc  62 LAYERDATEN))  0)    "nein" "ja" )
                            (if (= (cdr (assoc 290 LAYERDATEN))  0)    "nein" "ja" )
                    (if (= (logand (cdr (assoc  70 LAYERDATEN)) 1)  1) "ja" "nein" )
                    (if (= (logand (cdr (assoc  70 LAYERDATEN)) 4)  4) "ja" "nein" ))
      )                                                                         
      (setvar "DIMZIN" SAVEDIMZIN)
    ) 
  )
  LAYER_PROPS
)
(defun LAYER_SHOW_PROPS ( LAYERNAME / LAYER_PROPS)
  (if (setq LAYER_PROPS (LAYER_GET_PROPS LAYERNAME)) 
    (princ (strcat "\nLayername          : " (nth 0 LAYER_PROPS)
                    "\nLayerfarbe          : " (nth 1 LAYER_PROPS) 
                    "\nLinientyp          : " (nth 2 LAYER_PROPS)
                    "\nLinienstärke        : " (nth 3 LAYER_PROPS)
                    "\nLayer sichtbar      : " (nth 4 LAYER_PROPS)
            "\nLayer plotbar      : " (nth 5 LAYER_PROPS)
                    "\nLayer gefroren      : " (nth 6 LAYER_PROPS)
                    "\nLayer gesperrt      : " (nth 7 LAYER_PROPS)
                    "\n---------------------------\n"))
    (princ        "\nAngegebener Layer existiert nicht.\n")   
  )
  (princ)
)
(defun c:LAYER_INFO ( / LAYER)
  (While (setq LAYER (tblnext "LAYER" (null LAYER)))   
    (LAYER_SHOW_PROPS (cdr(assoc 2 LAYER)) )
    (princ "\n")
  )
  (princ)
)

Ansonsten gibts noch die direktere Möglichkeit über ActivX.
SCNR

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 23. Dez. 2004 10:11    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,

@cadffm und Thomas

danke an euch für die Informationen. Nach dem Testen der Vorschläge melde ich wieder.

Gruß Bernd

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: 23. Dez. 2004 12:40    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 Bernd10 10 Unities + Antwort hilfreich


rgb_farbe.zip

 
Hallo Bernd,
ich denke ab ACAD 2004 ist es sinnvoll, auch die RGB-Farben zu berücksichtigen, in Deinem Beispiel hat der Layer "ZRAL_SF53_53" keine AutoCAD-Standardfarbe. (GC 420)
Ich habe eine Funktion mit angehängt, die Dir die RGB-Werte ausgibt (Aufruf mit (rgb_farbe "LAYER"). Aber: es ist ungetestet, => Werte überprüfen.

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

Jörn

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

Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 23. Dez. 2004 13:20    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,

Zitat:
Original erstellt von cadffm:

(entget(tblobjname "layer" "0"))
schau dir die DXF-Referenz in der Hilfe an, besonders den gc62 ...

Mit tblobjname habe ich die Informationen so ermittelt:
GC 62  = Indexfarbe als Integer
GC 420 = TrueColor als Integer
GC 430 = Farbücher als String
Hier verstehe ich den Integerwert beim Gruppencode 420 nicht bzw. kann diesen Wert nicht in RGB (z.B. 200,100,50) wandeln. Da hilft mir aber vielleicht das Lisp von Joern weiter.

Zitat:
Original erstellt von joern bosse:
Hallo Bernd,
ich denke ab ACAD 2004 ist es sinnvoll, auch die RGB-Farben zu berücksichtigen, in Deinem Beispiel hat der Layer "ZRAL_SF53_53" keine AutoCAD-Standardfarbe. (GC 420)
Ich habe eine Funktion mit angehängt, die Dir die RGB-Werte ausgibt (Aufruf mit (rgb_farbe "LAYER"). Aber: es ist ungetestet, => Werte überprüfen.

Ich habe Dein Lisp mit einem Layer getestet. Dabei stimmt das Ergebnis Deiner Funktion mit den Werten beim Erstellen des Layers überein. Ich muss aber noch genauer schauen, was bei Deinem Lisp passiert.

Danke an euch und viele Grüße
Bernd

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