| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | Von der Idee zum Prototyp: Effiziente Prozesse im Rapid Prototyping, ein Webinar am 25.10.2024
|
Autor
|
Thema: Verschachtelte Blöcke auf einen Block reduzieren (6370 mal gelesen)
|
seite87 Mitglied
Beiträge: 3 Registriert: 15.08.2013 Autocad 2007, 2013 achitecture, 2014 LT
|
erstellt am: 15. Aug. 2013 10:04 <-- editieren / zitieren --> Unities abgeben:
Moin zusammen, ich arbeite noch nicht sehr lange mit Autocad und habe da eine Frage. Wir müssen im Büro Architektenpläne als xRef nutzen und damit unsere eingezeichneten Sachen besser zu sehen sind, werden diese Pläne vorher komplett grau gefärbt. Dafür habe ich bereits eine LISP-Datei bei CAD-Wiesel gefunden (einefarb.lsp), die mir sehr viel Arbeit abnimmt. Jedoch scheitert diese LISP an verschachtelten Blöcken, also wenn sich im Block weitere Blöcke befinden. Einfach alles sprengen will ich jedoch auch nicht. Gibt es eine Möglichkeit oder eine weitere LISP, die die Blöcke IN den Blöcke auflöst, sodass nur noch eine Blockebene vorhanden ist? Ich habe schon mal danach gesucht, aber alles was ich gefunden haben, waren Hilfestellungen, zur Programmierung einer solchen LISP, aber da meine Programmierkenntnisse sich auf ein Minimum beschränken und ich gerade in der LISP-Programmierung so gar keine Ahnung habe, helfen mir Schlagwörter wie INSERT und EXPLODE nicht viel. Ich kann mir zwar etwas darunter vorstellen, aber ich habe keine Ahnung, wie man das dann umsetzt... Beste Grüße, David [Diese Nachricht wurde von seite87 am 15. Aug. 2013 editiert.] 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: 15. Aug. 2013 10:39 <-- editieren / zitieren --> Unities abgeben: Nur für seite87
Hallo David, erst einmal Herzlich Willkommen im WBF! Anderer Ansatz: wenn die Pläne sauber mit alle Elemenenten in der Farbe "Vonlayer" gezeichnet sind, reicht es doch, wenn ihr die "ge x-reft en" Layer auf Grau setzt. Und um Elemente in Blöcken, die nicht "vonlayer" sind darauf zu setzen (auch in verschachtelten Blöcken) such mal nach Block_konvert.lsp Gruß Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
seite87 Mitglied
Beiträge: 3 Registriert: 15.08.2013 Autocad 2007, 2013 achitecture, 2014 LT
|
erstellt am: 15. Aug. 2013 10:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, die Idee hatte der Kollege auch schon, aber da scheiterte es dann an den Blöcken, die farbige Elemente enthalten. Aber wenn es dafür eine Lösung gibt, würde es ja den gleichen Zweck erfüllen! Ich werde gleich mal danach suchen! Besten Dank für den Hinweis, das Willkommen und die superschnelle Antwort! David 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: 15. Aug. 2013 11:02 <-- editieren / zitieren --> Unities abgeben: Nur für seite87
Da gibts ein Tool "BLOCKFLATTEN", das genau das tut, was du wolltest... aus der Programmbeschreibung: "Das Tool BLOCKFLATTEN automatisiert diesen Algorithmus, ohne die obersten Blockreferenzen aufzulösen. Nach Programmstart mit BLOCKFLATTEN wird der Nutzer aufgefordert, die in der Struktur zu ändernden Blöcke auszuwählen. Das kann durch Auswahl entsprechender Blockreferenzen, aber auch durch Eingabe der durch Komma getrennten Blocknamen erfolgen. Dann werden für jeden Block in der Auswahl durch die rekursiv aufgerufene Funktion INSERTEXPLODE alle untergeordneten Blockreferenzen aufgelöst und die entstandenen Objekte dem in der Struktur obersten Block zugeordnet. Eine eventuell gesetzte Eigenschaft "Block auflösen nicht zulassen" wird dabei temporär auf "zulassen" gesetzt. Das Ergebnis ist eine unverschachtelte Blockstruktur." Wie gesagt : "Viele Wegen führen nach Rom..." ... Aber zum "Einfärben" gibt's auch das Tool "Color2Grey" ... -> mal Suchen .... ansonsten stellt ACAD den Befehl "_setbylayer" bereit .... da musst du dann nur noch die Layerfarben nachpflegen ...
------------------ 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 |
seite87 Mitglied
Beiträge: 3 Registriert: 15.08.2013 Autocad 2007, 2013 achitecture, 2014 LT
|
erstellt am: 15. Aug. 2013 11:16 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas und Thomas, deine Idee hat super funktioniert! Für alle die ein ähnliches Problem haben, hier die Links zur Lösung: http://ww3.cad.de/foren/ubb/uploads/cockpit/Block_konvert.LSP (hier gibt es den Inhalt der .lsp-Datei)
http://ww3.cad.de/foren/ubb/Forum54/HTML/029013.shtml (und hier erfährt man, dass man das Ganze mit _SETBYLAYER aufruft!)
Warum der Aufruf über _SETBYLAYER erfolgt, habe ich noch nicht verstanden - ich dachte immer Aufruf wäre das Wort hinter dem defun...?! Aber wie heißt es so schön: "Akzeptieren ist einfacher als verstehen!" Vielen Dank für die schnelle und kompetente Hilfe! Gruß, David Edit: Okay, ich denke mal, dass ich das falsch verstanden habe und _SETBYLAYER nicht die block_konvert.lsp aufruft, sondern eine eigenständige Funktion von ACAD ist. Aaaaaaaaber: Sie erfüllt den gewünschten Zweck! Zum Thema "Blockflatten" habe ich leider nichts spontan gefunden, daher werde ich mich erstmal mit dieser Methode versuchen, da es auf den ersten Blick super klappt.
Besten Dank für die Vorschläge! [Diese Nachricht wurde von seite87 am 15. Aug. 2013 editiert.] 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: 15. Aug. 2013 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für seite87
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|