Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Farbe auf von Layer - Problem mit GC420,430

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
Autor Thema:   Farbe auf von Layer - Problem mit GC420,430 (1840 mal gelesen)
tappenbeck
Mitglied
Vermessungsingenieur


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

Beiträge: 1152
Registriert: 30.05.2002

AutoCAD (Map)2015, Topobase, Lisp, .vb.net (Einsteiger)

erstellt am: 14. Feb. 2012 15:39    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

Hi !

ich versuche gerade mittels LISP eine Elementfarbe auf vonLayer zu setzen. Bekantermaßen hat ein solches Element nicht den Gruppencode 62.

Gefunden habe ich bisher im Netz den Link zu mapcar (http://www.autolisp-tutorial.mapcar.net/entmod.html).

Aber irgendwie klappt das nur, wenn ich auf eine Element schreibe das auch nur eine Indexfarbe hat. Wenn das Zielelement allerdings einen Farbbuch hat (und damit den GC 420,430 beinhaltet) dann bleiben die GC erhalten und die Indexfarbe wird ignoriert.

Kann einer von Euch mir einen Tipp geben wie ich das realisiert bekomme ?

Gruß Jan :-)

------------------
jan :-)

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: 13435
Registriert: 30.11.2003

.

erstellt am: 14. Feb. 2012 15: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 tappenbeck 10 Unities + Antwort hilfreich

GC420 und GC430 löschen

(entmod(vl-remove-if'(lambda(X)(member(car X)'(420 430)))(entget(car(entsel)))))
------------------
      - 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

tappenbeck
Mitglied
Vermessungsingenieur


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

Beiträge: 1152
Registriert: 30.05.2002

AutoCAD (Map)2015, Topobase, Lisp, .vb.net (Einsteiger)

erstellt am: 15. Feb. 2012 09:42    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

hi !

das hat mir schon einmal bei der "Bereinigung" der Liste geholfen.

Das Problem ist nur das mit entmod es jetzt ein Problem gibt.

Vor dem entmod habe ich mir mal die Elementliste ausgeben lassen:

Code:
((-1 . <Objektname: 7ffffb09eb0>) (0 . LINE) (330 .
<Objektname: 7ffffb069f0>) (5 . 283) (100 . AcDbEntity) (67 . 0) (410 . Model)
(8 . 0) (370 . 106) (100 . AcDbLine) (10 8571.01 4280.33 0.0) (11 8732.12
1338.6 0.0) (210 0.0 0.0 1.0))

Nachdem zurückschreiben hat das Element immer noch sein Farbe die es vor dem entmod hatte:

Code:
((-1 . <Objektname: 7ffffb09eb0>) (0 . "LINE") (330 .
<Objektname: 7ffffb069f0>) (5 . "283") (100 . "AcDbEntity") (67 . 0) (410 .
"Model") (8 . "0") (62 . 6) (370 . 106) (100 . "AcDbLine") (10 8571.01 4280.33
0.0) (11 8732.12 1338.6 0.0) (210 0.0 0.0 1.0))

Hat einer eine weiterführende Idee ?

Gruß Jan :-)

------------------
jan :-)

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: 13435
Registriert: 30.11.2003

.

erstellt am: 15. Feb. 2012 09:50    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 tappenbeck 10 Unities + Antwort hilfreich

(62 . 6) mit (62 . 256) subst 'en ?

... oder gleich ActivX nehmen und im Truecolorobjekt Colormethod auf acColorMethodByLayer setzen ...

------------------
  - 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

tappenbeck
Mitglied
Vermessungsingenieur


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

Beiträge: 1152
Registriert: 30.05.2002

AutoCAD (Map)2015, Topobase, Lisp, .vb.net (Einsteiger)

erstellt am: 15. Feb. 2012 10:55    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

hi !

danke - damit habe ich schon einmal mit vonLayer hinbekommen.

Damit hat sihc aber gleich die nächste Baustelle aufgemacht.

Wenn ich auf eine Element ein TrueColor (GC420) oder ein Farbbuch (GC430) zuweisen möchte und vorher dieses nicht vorhanden ist, dann kommt es zu Problemen.

Sind diese GC schon da, dann ist der Austausch kein Problem. Wenn der Gruppencode nicht mehr benötigt (zb. wenn eine Indexfarbe oder vonlayer / vonblock verwendet wird) - dann ist es auch jetzt möglich diesen GC zu entfernen.

Wenn dieser aber nicht vorhanden ist, dann muss dieser irgendwie angehängt werden.

Hierzu habe ich folgendes zusammengebaut:

Code:
(if source_gc420
;;wenn ein GC vorliegt, dann wird dieser ausgetauscht
(if (assoc 420 eliste)
(setq
eliste
      (subst
        (cons 420 source_gc420)
        (assoc 420 eliste)
        eliste
  ) ;Austauschen des Ltyps in der Elementdatenliste
) ;end-setq
;;ansonsten GC neu anhängen
(setq eliste (list eliste (cons 420 source_gc420)))
);endif
(setq eliste (vl-remove-if'(lambda(X)(member(car X)'(420))) eliste))
);endif - gc420

Wenn ich das Ausführe dann kommt die Meldung, das der DXF-Gruppencode falsch ist:

Zitat:
gc62  42
gc420 14856199
gc430 RAL CLASSIC$RAL 1004
zurückschreiben: ((((-1 . <Objektname: 7ffffb09eb0>) (0 . LINE) (330 .
<Objektname: 7ffffb069f0>) (5 . 283) (100 . AcDbEntity) (67 . 0) (410 . Model)
(8 . 0) (62 . 42) (370 . 106) (100 . AcDbLine) (10 8571.01 4280.33 0.0) (11
8732.12 1338.6 0.0) (210 0.0 0.0 1.0)) (420 . 14856199)) (430 . RAL CLASSIC$RAL
1004))
Fehler: Fehlerhafte DXF-Gruppe: (((-1 . <Objektname: 7ffffb09eb0>) (0 . "LINE")
(330 . <Objektname: 7ffffb069f0>) (5 . "283") (100 . "AcDbEntity") (67 . 0)
(410 . "Model") (8 . "0") (62 . 42) (370 . 106) (100 . "AcDbLine") (10 8571.01
4280.33 0.0) (11 8732.12 1338.6 0.0) (210 0.0 0.0 1.0)) (420 . 14856199))

Hat einer vielleicht auch hierzu eine Idee ?

Gruß Jan :-)

------------------
jan :-)

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: 13435
Registriert: 30.11.2003

.

erstellt am: 15. Feb. 2012 11:04    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 tappenbeck 10 Unities + Antwort hilfreich

.. jo .. die Reihenfolge der GC beachten
62 kommt hinter 8, 420 hinter 62 und 430 hinter 420

------------------
  - 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

tappenbeck
Mitglied
Vermessungsingenieur


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

Beiträge: 1152
Registriert: 30.05.2002

AutoCAD (Map)2015, Topobase, Lisp, .vb.net (Einsteiger)

erstellt am: 15. Feb. 2012 11:14    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

hi !

kannst Du mir dann auch noch verraten wie ich diese dort einsortiert bekommen kann ?

Gruß Jan :-)

------------------
jan :-)

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: 13435
Registriert: 30.11.2003

.

erstellt am: 15. Feb. 2012 11: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 Nur für tappenbeck 10 Unities + Antwort hilfreich

nö ... , zeig auch mal ein wenig Eigeninitiative.

P.S. das Thema gabs schon öfter hier im Brett

------------------
  - 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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 220
Registriert: 22.08.2006

erstellt am: 15. Feb. 2012 11:24    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 tappenbeck 10 Unities + Antwort hilfreich

hallo jan
Zitat:
Wenn ich das Ausführe dann kommt die Meldung, das der DXF-Gruppencode falsch ist

das liegt daran, dass deine liste falsch aufgebaut wird. folgende zeile ist falsch:
Code:
(setq eliste (list eliste (cons 420 source_gc420)))

wenn du eine unterliste an eine bestehende liste mit unterlisten als unterliste anhaengen willst, dann so:

Code:
(setq eliste (append eliste (list (cons 420 source_gc420))))

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

tappenbeck
Mitglied
Vermessungsingenieur


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

Beiträge: 1152
Registriert: 30.05.2002

AutoCAD (Map)2015, Topobase, Lisp, .vb.net (Einsteiger)

erstellt am: 15. Feb. 2012 11:49    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 !
mit dem Hinweis von neurosis hat es funktioniert - danke dafür.
Zitat:

.. jo .. die Reihenfolge der GC beachten
62 kommt hinter 8, 420 hinter 62 und 430 hinter 420

das stimmt nicht ganz - es hat auch so funktioniert.

AutoCAD sortiert die GC im Anschluss selber ein.

Gruß Jan :-)

------------------
jan :-)

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: 19657
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 15. Feb. 2012 11:55    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 tappenbeck 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von tappenbeck:
Hallo !
mit dem Hinweis von neurosis hat es funktioniert - danke dafür.

das stimmt nicht ganz - es hat auch so funktioniert.

AutoCAD sortiert die GC im Anschluss selber ein.

Gruß Jan :-)


auch das STIMMT NICHT GANZ 

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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

tappenbeck
Mitglied
Vermessungsingenieur


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

Beiträge: 1152
Registriert: 30.05.2002

AutoCAD (Map)2015, Topobase, Lisp, .vb.net (Einsteiger)

erstellt am: 20. Feb. 2012 13: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

Moin!

ich muss dieses Posting nochmal aufnehmen.

Mein Problem ist das irgendwie die modifizierte Liste nicht an dem Objekt übernommen wird - auch kommt keine Fehlermeldung.

Hier erst einmal einige Info. Es soll die volayer-Eigenschaften (Farbe) auf ein Element mit Farbe übertragen werden. Hierzu entferne ich alle überflüssigen GC mittels beispielhaft:

Code:

(setq eliste (vl-remove-if'(lambda(X)(member(car X)'(62))) eliste))

Jetzt habe ich mal eliste ausgeben lassen vor und hinter von Entmod

eliste wie das Objekt vorgefunden wird:

Zitat:
((-1 . <Objektname: 7ffffb0a420>) (0 . LINE) (330 .
<Objektname: 7ffffb069f0>) (5 . 33A) (100 . AcDbEntity) (67 . 0) (410 . Model)
(8 . Layer1) (62 . 6) (6 . ACAD_ISO02W100) (370 . 106) (100 . AcDbLine) (10
10010.3 814.887 0.0) (11 10130.3 -989.963 0.0) (210 0.0 0.0 1.0))

eliste vor ENTMOD:

Code:
((-1 . <Objektname: 7ffffb0a420>) (0 . LINE) (330 . <Objektname:
7ffffb069f0>) (5 . 33A) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . Layer1)
(6 . ACAD_ISO02W100) (370 . 106) (100 . AcDbLine) (10 10010.3 814.887 0.0) (11
10130.3 -989.963 0.0) (210 0.0 0.0 1.0))

Nachdem sich nicht geändert hat fragt ich die aktuellen Daten mittels (entget (car (entsel))) ab:

Zitat:
((-1 . <Objektname: 7ffffb0a420>) (0 . "LINE") (330 .
<Objektname: 7ffffb069f0>) (5 . "33A") (100 . "AcDbEntity") (67 . 0) (410 .
"Model") (8 . "Layer1") (62 . 6) (6 . "ACAD_ISO02W100") (370 . 106) (100 .
"AcDbLine") (10 10010.3 814.887 0.0) (11 10130.3 -989.963 0.0) (210 0.0 0.0
1.0))

Gesperrt ist das Element auch nicht - wie gesagt es kommt auch keine Fehlermeldung - dennoch ist (62 . 6) immer noch da !!!!

Hat einer von Euch eine Idee ?

Gruß Jan :-)

------------------
jan :-)

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: 13435
Registriert: 30.11.2003

.

erstellt am: 20. Feb. 2012 13:08    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 tappenbeck 10 Unities + Antwort hilfreich

tappenbeck
Mitglied
Vermessungsingenieur


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

Beiträge: 1152
Registriert: 30.05.2002

AutoCAD (Map)2015, Topobase, Lisp, .vb.net (Einsteiger)

erstellt am: 20. Feb. 2012 15:18    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

hi !

danke für die Info - das hatte ich aus dem Auge verloren obwohl schon einmal beschrieben.

Gruß Jan :-)

------------------
jan :-)

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)2020 CAD.de | Impressum | Datenschutz