| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Der Weg zur Smart Factory: Ganzheitliche Planung für eine digitale Zukunft, ein Webinar am 09.10.2024
|
Autor
|
Thema: Lisp für alles von Block setzten innerhalb von Blöcken? (1587 / mal gelesen)
|
nena23 Mitglied Montag bis Freitag, ganzen Tag lang
Beiträge: 461 Registriert: 25.01.2008 win 7 pro 64bit, immer aktuell Acad Architecture 2013/2017, fast immer aktuell
|
erstellt am: 06. Dez. 2019 16:11 <-- editieren / zitieren --> Unities abgeben:
Noch jemand wach? meinte ich hätte sowas mal gehabt. Müllzeichnungen mit reichlich Blöcken müssen aufgehübscht werden. Und jeden Blocktyp einzeln öffnen und Eigenschaften auf "von Block" umlegen dauert zu lange. Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1144 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 06. Dez. 2019 16:20 <-- editieren / zitieren --> Unities abgeben: Nur für nena23
|
nena23 Mitglied Montag bis Freitag, ganzen Tag lang
Beiträge: 461 Registriert: 25.01.2008 win 7 pro 64bit, immer aktuell Acad Architecture 2013/2017, fast immer aktuell
|
erstellt am: 06. Dez. 2019 16:36 <-- editieren / zitieren --> Unities abgeben:
|
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 09. Dez. 2019 09:00 <-- editieren / zitieren --> Unities abgeben: Nur für nena23
Hallo nena23, hier mal ein Lisp dass die Farbe aller Objekte in allen Blöcken auf vonblock stellt. Kannst du erweitern für Linientyp, Linienstärke, usw. Code: (vlax-for blk (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)) ) (if (= (vla-get-IsLayout blk) :vlax-false) (vlax-for obj blk (vla-put-color obj 0) ) ) )
EDIT: Da ist jetzt noch nichts mit Layer tauen, entsperren oder irgend eine Fehlerbehandlung dabei ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de [Diese Nachricht wurde von Andreas Kraus am 09. Dez. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nena23 Mitglied Montag bis Freitag, ganzen Tag lang
Beiträge: 461 Registriert: 25.01.2008 win 7 pro 64bit, immer aktuell Acad Architecture 2013/2017, fast immer aktuell
|
erstellt am: 09. Dez. 2019 09:29 <-- editieren / zitieren --> Unities abgeben:
|
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 09. Dez. 2019 13:36 <-- editieren / zitieren --> Unities abgeben: Nur für nena23
Vielleicht so: Code: (vl-load-com) (vlax-for blk (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)) ) (if (= (vla-get-IsLayout blk) :vlax-false) (vlax-for obj blk (if (vlax-property-available-p obj "color") (vla-put-color obj 0) ) ) ) )
Ich hab mal reingeschrieben dass die Farbe nur geändert wird wenn das Objekt auch "Farbe hat" Ach ja ... danach bitte regenerieren ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de [Diese Nachricht wurde von Andreas Kraus am 09. Dez. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 09. Dez. 2019 13:49 <-- editieren / zitieren --> Unities abgeben: Nur für nena23
(vl-load-com) (defun C:BLKOBJCOLOR(/ blk obj TC-OBJ) (vlax-for blk (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)) ) (if (= (vla-get-IsLayout blk) :vlax-false) (vlax-for obj blk (cond ((and(not(vl-catch-all-error-p (setq TC-OBJEKT(vl-catch-all-apply 'vlax-property-available-p (list OBJ 'TrueColor) ) ) ) ) TC-OBJEKT (not(vl-catch-all-error-p (setq TC-OBJEKT(vl-catch-all-apply 'vla-Get-TrueColor (list OBJEKT) ) ) ) ) ) (vla-put-ColorMethod TC-OBJEKT acColorMethodByLayer) (vlax-release-object TC-OBJEKT) ) ((vlax-property-available-p obj "color") (vla-put-color obj acbyBlock) ) ) ) ) ) (vla-Regen(vla-get-activedocument(vlax-get-acad-object))acAllViewports) ) ------------------ Also ich finde Unities gut ... und andere sicher auch --------------------------------------- - 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 |
nena23 Mitglied Montag bis Freitag, ganzen Tag lang
Beiträge: 461 Registriert: 25.01.2008 win 7 pro 64bit, immer aktuell Acad Architecture 2013/2017, fast immer aktuell
|
erstellt am: 09. Dez. 2019 14:00 <-- editieren / zitieren --> Unities abgeben:
Danke erstmal, werde ich nochmal ausprobieren. Habe inzwischen im x-ten Versuch eine lsp gefunden ("fixblockII") die es ohne Fehlermeldung tut. Zwar auf vonLayer, aber das passt hierfür auch. Dirk
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 09. Dez. 2019 15:38 <-- editieren / zitieren --> Unities abgeben: Nur für nena23
Schau das die verwendeten Codeschnipsel nicht alle Blöcke bearbeiten, denn es ist nicht wirklich was du möchtest (je nach Datei/Inhalt/Stilen). Die Beispiele hier im Thread sind dann doch eher fürs programmierende Volk die sich derartige Sicherungen noch selbst einbauen. Bemaßungen, StandardBemaßungspfeile, , Tabellen oder auch Anordnungn und mehr noch sind auch alles "Blöcke", ich denke nicht das du wirklich ALLE bearbeiten willst. (falls doch, ist es ein diskussionswürdiges Vorhaben ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Musicus Mitglied Staatl. gepr. Techniker
Beiträge: 688 Registriert: 26.07.2005 AutoCAD 2021 Linear Building 18 Linear CAD Solutions 18 C.A.T.S. Windows 10 64bit
|
erstellt am: 11. Dez. 2019 10:58 <-- editieren / zitieren --> Unities abgeben: Nur für nena23
Zitat: Original erstellt von nena23: Danke erstmal, werde ich nochmal ausprobieren. Habe inzwischen im x-ten Versuch eine lsp gefunden ("fixblockII") die es ohne Fehlermeldung tut. Zwar auf vonLayer, aber das passt hierfür auch. Dirk
Wenn das Ergebnis VONLAYER auch passt, dann sollte es der Befehl _-SETBYLAYER eigentlich auch tun.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |