Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Farbe von Attributen ändern

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:  Farbe von Attributen ändern (1948 / mal gelesen)
MB-fab
Mitglied
Techniker - Elektrotechnik


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

Beiträge: 34
Registriert: 18.10.2016

Autocad 2016, MEP 2016, PIT 2016, MS V8i

erstellt am: 29. Sep. 2017 16:37    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 Zusammen,

ich glaube das Thema wurde schon behandelt - vor Jahren - aber ich finde es einfach nicht mehr.

Das Problem: Wir haben ca. 100 Blockdefinitionen in denen Attribute mit den Einstellungen:
Layer  =  0
Farbe  =  7
liegen.

Jetzt müsste ich diese Farbe auf 250 setzten. Warum!? -> Die .ctb ist so gestrickt, vom Kunden, dass die Farbe 7 183,183,183 wird

Gab es da nicht mal eine Lisp!?

Grüße Fab

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

Meldin
Mitglied



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

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 29. Sep. 2017 22:45    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 MB-fab 10 Unities + Antwort hilfreich

Hier mal ein Anfang.
Code:
(setq aws(car(entsel)))
(while (= "Attribut" (getpropertyvalue (setq aws (entnext aws)) "LocalizedName"))
  (setpropertyvalue aws "Color" 250)
)

------------------
Gruß Wolfgang

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

MB-fab
Mitglied
Techniker - Elektrotechnik


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

Beiträge: 34
Registriert: 18.10.2016

Autocad 2016, MEP 2016, PIT 2016, MS V8i

erstellt am: 13. Okt. 2017 15: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

Hallo Wolfgang,

super vielen Dank.

Leider habe ich überhaupt keine Routine im Programmieren und kann nicht viel mit dem Schnipsel anfangen.
Könnte mir noch einer ein bisschen weiterhelfen?

Grüße

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

Meldin
Mitglied



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

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 13. Okt. 2017 15:44    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 MB-fab 10 Unities + Antwort hilfreich

Hi,
also momentan schlecht da URLAUB     
Aber deine Abgaben sich mager z.B. alle Blöcke in der Zeichnung, nur bestimmte, nur ausgewählte usw. Meine zeilen müssetet du nur in ein Defun packen und du hättest ein tolle um einen block zu ändern also so etwa
(defun c:meinTool ()  ........hier die Zeilen.......... )

------------------
Gruß Wolfgang

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

MB-fab
Mitglied
Techniker - Elektrotechnik


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

Beiträge: 34
Registriert: 18.10.2016

Autocad 2016, MEP 2016, PIT 2016, MS V8i

erstellt am: 16. Okt. 2017 13: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

Hallo,

danke für deine Rückmeldung.
Ich müsste alle Blockdefinitionen in der Zeichnung bearbeiten.
Ob das in einem Arbeitsschritt geht oder die Blöcke einzeln ausgewählt werden müssen wäre mir erstmal egal.

Bin auch schon hingegangen und habe deine Zeilen in das Schema gepackt, aber da kommt der Fehler 'nil' raus.

Schönen Urlaub noch

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: 16. Okt. 2017 15:16    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 MB-fab 10 Unities + Antwort hilfreich

Hallo Fab,
ich habe von Wolfgang den Code mal in eine Schleife gepackt, Blöcke auswählen und dann sollten alle Attribute die Farbe 250 haben:

Code:

(defun c:test ( / AWS AWSBLOCK N)
  (if (and (princ "\nBlöcke auswählen:")
  (setq awsBlock (ssget (list (cons 0 "INSERT")))))
    (progn
      (setq n 0)
      (repeat (sslength awsBlock)
(setq aws (ssname awsBlock n))
(while (= "Attribut" (getpropertyvalue
      (setq aws (entnext aws)) "LocalizedName"))
  (setpropertyvalue aws "Color" 250)
  )
(setq n (+ n 1))))
    )
  (princ)
)

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

Jörn
http://www.bosse-engineering.com

Liniensignaturen Youtube

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

MB-fab
Mitglied
Techniker - Elektrotechnik


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

Beiträge: 34
Registriert: 18.10.2016

Autocad 2016, MEP 2016, PIT 2016, MS V8i

erstellt am: 16. Okt. 2017 15:48    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 Jörn,

das ist natürlich sehr gut. Ich glaube da wäre ich nicht drauf gekommen.

Was meint ihr, kann man auch soweit in die Blockdefinition eingreifen um das Attribut auf Farbe 250 legen.
Also nicht über den Erweiterten Attributs-Editor, sondern so wie wenn man im Blockeditor die Attribute anwählt und auf die Farbe 250 legt.
Für mich ist immer das Problem, wenn man hin geht und Attsync macht, dann ist die ganze Einstellung wieder auf Ursprung.

Grüße Fab

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 16. Okt. 2017 16: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 MB-fab 10 Unities + Antwort hilfreich

Hallo Fab,
lass mich auch mal 
Das hier setzt alle Attribute in alle Blöcken auf die Farbe 250
Wenn du die Blöcke wählen möchtest geht das mit einem kleinen Umbau auch.

(vl-load-com)
(vlax-for blk (vla-get-blocks
(vla-get-activedocument (vlax-get-acad-object))
      )
  (vlax-for obj blk
    (if (= (vla-get-ObjectName obj) "AcDbAttributeDefinition")
      (vla-put-color obj 250)
    )
  )
)

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

MB-fab
Mitglied
Techniker - Elektrotechnik


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

Beiträge: 34
Registriert: 18.10.2016

Autocad 2016, MEP 2016, PIT 2016, MS V8i

erstellt am: 19. Okt. 2017 13:03    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 Andreas,

ist das als vlx Datei zu speichern?

Gruß Fab

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 19. Okt. 2017 14:26    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 MB-fab 10 Unities + Antwort hilfreich

Nö , als LSP
Das is LISP Quellcode

Wenn du das mit dem LISP-Editor kompilierst wird daraus ne VLX

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

MB-fab
Mitglied
Techniker - Elektrotechnik


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

Beiträge: 34
Registriert: 18.10.2016

Autocad 2016, MEP 2016, PIT 2016, MS V8i

erstellt am: 19. Okt. 2017 14:46    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

ach.. ich bin auch nicht selten blöd.
Natürlich, habe alles gemacht und hat auch optimal funktioniert.

Vielen vielen Dank!

Wie müsste man das Progrämmchen noch anpassen um dann einzelne Blocks zu wählen?
Vielleicht lerne ich dann ja auch nach dem dummy Prinzip so was zu erstellen, wenn ich ein Gerüst habe.

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: 19. Okt. 2017 14: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 MB-fab 10 Unities + Antwort hilfreich

Hallo Fab,
über VLA-ITEM und dem Blocknamen:

Code:

(setq blk
      (vla-item (vla-get-blocks
  (vla-get-activedocument
    (vlax-get-acad-object))
  "MeinBlockName")))

(vlax-for obj blk
  (if (= (vla-get-ObjectName obj)
  "AcDbAttributeDefinition")
    (vla-put-color obj 250)
    )
  )


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

Jörn
http://www.bosse-engineering.com

Liniensignaturen Youtube

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

MB-fab
Mitglied
Techniker - Elektrotechnik


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

Beiträge: 34
Registriert: 18.10.2016

Autocad 2016, MEP 2016, PIT 2016, MS V8i

erstellt am: 19. Okt. 2017 15:32    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

da kommt jetzt ein Fehler.
Zu viele tatsächliche Parameter.

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: 19. Okt. 2017 16: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 MB-fab 10 Unities + Antwort hilfreich

Hallo Fab,
war nur schnell hingetippt, eine Klammer war falsch:
Code:

(setq blk
      (vla-item
(vla-get-blocks
  (vla-get-activedocument
    (vlax-get-acad-object)
    )
  )
"MeinBlockName")
      )

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

Jörn
http://www.bosse-engineering.com

Liniensignaturen Youtube

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

MB-fab
Mitglied
Techniker - Elektrotechnik


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

Beiträge: 34
Registriert: 18.10.2016

Autocad 2016, MEP 2016, PIT 2016, MS V8i

erstellt am: 20. Okt. 2017 08:57    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

Bei den Klammern kann man aber auch die Übersicht verlieren, also ich zumindest.
Habe jetzt mal alles zusammen gebaut, aber geht leider nicht: Fehler
Automatisierungsfehler Schlüssel nicht gefunden

(vl-load-com)
(vlax-for blk (vla-get-blocks
(vla-get-activedocument (vlax-get-acad-object))
      )
(setq blk
      (vla-item
(vla-get-blocks
  (vla-get-activedocument
    (vlax-get-acad-object)
    )
  )
"MeinBlockName")
      )
(vlax-for obj blk
  (if (= (vla-get-ObjectName obj)
  "AcDbAttributeDefinition")
    (vla-put-color obj 250)
    )
  )
  )

Wenn einer einer mal einem DAU die Augen öffnen würde. 

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: 20. Okt. 2017 09:53    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 MB-fab 10 Unities + Antwort hilfreich

Hallo Fab,
ich glaube, da hast Du zwei Sachen ungünstig gemischt. Entweder Du läßt die vlax-for-Schleife für alle vorhandenen Blockdefinition durchlaufen, oder Du nimmst nur eine Blockdefinition mit vla-item.

Vielleicht wird folgendes deutlicher (ist wieder ungetestet und nur schnell getippt, ich hoffe, die Funktionsnamen erklären alles):

Code:

(defun AlleBlockDefinitionen ( / )
  (vl-load-com)
  (vlax-for blk (vla-get-blocks
  (vla-get-activedocument
    (vlax-get-acad-object))
  )
    (vlax-for obj blk
      (if (= (vla-get-ObjectName obj)
    "AcDbAttributeDefinition")
(vla-put-color obj 250)
)
      )
    )
  )

(defun NurEinBlock (BlockName / )
(vl-load-com)
  (setq blk
(vla-item
  (vla-get-blocks
    (vla-get-activedocument
      (vlax-get-acad-object)
      )
    )
  BlockName))
  (vlax-for obj blk
      (if (= (vla-get-ObjectName obj)
    "AcDbAttributeDefinition")
(vla-put-color obj 250)
)
      )
  )

(defun c:testAlle ( / )
  (AlleBlockDefinitionen)
  )

(defun c:testEinzel ( / )
  (NurEinBlock "MeinBlockName")
  )



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

Jörn
http://www.bosse-engineering.com

Liniensignaturen Youtube

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