| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Dyhamische Blöcke tauschen (2495 mal gelesen)
|
Mangrove Mitglied
Beiträge: 283 Registriert: 07.02.2007 Win 7 x64 Intel i7 3,5 Ggz, 16GB, Quadro K 2000 Acad 2016 Acad Architecture 2016 Revit 2017 R2
|
erstellt am: 23. Jul. 2009 16:45 <-- editieren / zitieren --> Unities abgeben:
Hallo, Da die Suchmaschine momentan offline ist poste ich meine Frage direkt, bitte um Verzeihung. Gibt es eine Möglichkeit dynamische Blöcke, in unserem Fall Fenster gegen andere auszutauschen ? Leider funktioniert der Befehl Block replace der Expresstools nicht da die dynamischen Blöcke temporäre Namen je nach aktuellem Zustand wie zB *D6 tragen. Das Tool wirft deswegen einen Fehler aus. Vielen Dank im voraus für eure Anregungen Jakob ------------------ Alle Fragen sind es wert gestellt zu werden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
j-sc Ehrenmitglied
Beiträge: 1838 Registriert: 14.07.2003 W7 64Bit intel core I7 2,8GHz / 4GB ATI FIRE PRO V5800 acad2011 acad2015 acad2018 Athena Expresstools
|
erstellt am: 23. Jul. 2009 17:06 <-- editieren / zitieren --> Unities abgeben: Nur für Mangrove
High, rein theoretisch funktioniert das genau wie bei "normalen" Blöcken, Einfügen einer gleichnamigen Blockdefinition (dwg) mit anderem Inhalt. In der Praxis muss man mit den dynamischen Parametern allerdings vorsichtig sein. Sind in der neuen Blockdefinition nur nichtdynamische Sachen geändert und die dynamischen ansonsten die gleichen geblieben, sollte es funktionieren. Gibt es Änderungen bei dynamischen Parametern, sollte man sich bei jeder eingefügten Blockreferenz vergewissern, ob das Ergebnis auch so aussieht, wie man's sich vorgestellt hat.
------------------ Ciao J-SC ... geht's vielleicht doch? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mangrove Mitglied
Beiträge: 283 Registriert: 07.02.2007 Win 7 x64 Intel i7 3,5 Ggz, 16GB, Quadro K 2000 Acad 2016 Acad Architecture 2016 Revit 2017 R2
|
erstellt am: 23. Jul. 2009 17:19 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 23. Jul. 2009 17:40 <-- editieren / zitieren -->
Hi Jakob, könntest Du eine Zeichnung mit vorhandenen Blöcken und eine neue Zeichnung mit der neuen Blockdefinition uploaden, denn es wird IMHO nicht leicht sein, grundsätzliche Antworten für die vielfältigen Möglichkeiten von dynamischen Blockdefinitionen (mit 2010 auch noch die Parametrik dazu) zu geben. Anhand Deines Beispiels kann ev. eine Lösung gefunden werden. - alfred - ------------------ www.hollaus.at |
Mangrove Mitglied
Beiträge: 283 Registriert: 07.02.2007 Win 7 x64 Intel i7 3,5 Ggz, 16GB, Quadro K 2000 Acad 2016 Acad Architecture 2016 Revit 2017 R2
|
erstellt am: 23. Jul. 2009 17:59 <-- editieren / zitieren --> Unities abgeben:
Danke vielmals für das Angebot aber aufgrund des Zeitdrucks haben die Kollegen sich schon dazu entschlossen die Blöcke von Hand zu ändern. Danke vielmals Jakob ------------------ Alle Fragen sind es wert gestellt zu werden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 23. Jul. 2009 18:03 <-- editieren / zitieren -->
Hi Jakob, versteh ich, Zeitdruck während eines Projekts kann sich nicht in Luft auflösen. Aber vielleicht hast Du das Problem mal wieder, vielleicht schon beim nächsten Projekt?! Dann hast Du aber wieder keine Lösung. Vielleicht schaffst Du es ja, wenn das Projekt fertig ist; könnte durchaus auch für andere (wie auch für mich) auch hilfreich sein, die diesen Thread später lesen. - alfred - ------------------ www.hollaus.at |
Mangrove Mitglied
Beiträge: 283 Registriert: 07.02.2007 Win 7 x64 Intel i7 3,5 Ggz, 16GB, Quadro K 2000 Acad 2016 Acad Architecture 2016 Revit 2017 R2
|
erstellt am: 23. Jul. 2009 18:39 <-- editieren / zitieren --> Unities abgeben:
|
SNOOP_69 Mitglied Konstrukteur - Innenausbau
Beiträge: 553 Registriert: 25.01.2006 Hardware: - Lenovo-W540 Software: - Win10 Pro 64bit - Autocad 2022-2024 (Vollversion+LT) - BricsCad - DraftSight 2023 - SolidWorks 2019-2023 - SWOOD 2023 - MasterCAM 2020-2023
|
erstellt am: 24. Jul. 2009 07:16 <-- editieren / zitieren --> Unities abgeben: Nur für Mangrove
Moin, ich würde in diesem Fall, da es ja wahrscheinlich schnell und einfach gehen soll, einfach mit den "Namen spielen". Ansatz: Block A kopieren über 0,0, dann in neue Zeichnung einfügen über 0,0. Dort umbenennen in Block B. Dann Block B wieder in die Zeichnung kopieren und übers Designcenter neu definieren. Ist zwar ein wenig umständlich, aber (aus eigener Erfahrung) machbar. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mangrove Mitglied
Beiträge: 283 Registriert: 07.02.2007 Win 7 x64 Intel i7 3,5 Ggz, 16GB, Quadro K 2000 Acad 2016 Acad Architecture 2016 Revit 2017 R2
|
erstellt am: 24. Jul. 2009 09:03 <-- editieren / zitieren --> Unities abgeben:
|
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 28. Jul. 2009 09:40 <-- editieren / zitieren --> Unities abgeben: Nur für Mangrove
Hi Mangrove, Du könntest mal versuchen mit folgendem Lisp einen internen dynamischen Block mit 'ner externen DWG die einen dynamischen Block definiert upzudaten. Bei normalen Blöcken funktioniert das problemlos, wozu das bei dynamischen Blöcken führt kannst Du ja einfach mal ausprobieren. Übrigens kann bei dieser Lösung der externe Name sich vom internen Namen der Blockdefinition komplett unterscheiden (siehe Kommentare am Anfang des Progs...) Update: Ich hab' auch noch mal berücksichtigt, das der Blockname am Ende umbenannt wird. Update 2: Attdia und Attreq Sysvars berücksichtigt. Code:
;| Funktion macht ein Update einer internen Blockdefinition durch den Import einer externen DWG. Argumente: INTERNAL-BLOCKNAME = String, Name des Blocks, z.B. "A" EXTERNAL-FULLPATHFILENAME = String, wenn sich die zu importierende DWG im Acad Suchpfad befindet, reicht hier die Angabe des Dateinamens, z.B. "B.dwg" Befindet sich die Datei NICHT im Suchpfad, bitte kompletten Pfad angeben, z.B. "c:\\temp\\B.dwg" oder "c:/temp/B.dwg". Bei Verwendung von Backslashes stehen zwei Backslashes für einen, da der Backslash normalerweise in Lisp ein Steuerzeichen darstellt. FLAG-RENAME = Flag 'T oder nil. Bei 'T wird die interne Blockdefinition umbenannt in den Dateinamen der externen Datei. Bei nil findet keine umbenennung statt. Anwendungsbeispiel: (UPDATE-BLOCK "B" "c:\\temp\\A.dwg" T) (UPDATE-BLOCK "B" "c:\\temp\\A.dwg" nil) (UPDATE-BLOCK "B" "A.dwg" nil) |; (defun UPDATE-BLOCK (INTERNAL-BLOCKNAME EXTERNAL-FULLPATHFILENAME FLAG-RENAME / FILENAME ALT_ATTDIA ALT_ATTREQ ) (if (not (tblsearch "BLOCK" INTERNAL-BLOCKNAME)) (princ (strcat "\nInterne Blockdefinition >" INTERNAL-BLOCKNAME "< nicht gefunden!" ) ) (if (not (setq FILENAME (findfile EXTERNAL-FULLPATHFILENAME))) (princ (strcat "\nExterne DWG >" EXTERNAL-FULLPATHFILENAME "< nicht gefunden!" ) ) (progn (setq ALT_ATTREQ (getvar "attreq") ALT_ATTDIA (getvar "attdia") ) (setvar "attreq" 0) (setvar "attdia" 0) (command "_.-insert" (strcat INTERNAL-BLOCKNAME "=" FILENAME) (command) ) (setvar "attreq" ALT_ATTREQ) (setvar "attdia" ALT_ATTDIA) (if (and FLAG-RENAME ;_ Wenn Flag gesetzt (/= (strcase INTERNAL-BLOCKNAME) (strcase (nth 1 (fnsplitl FILENAME))) ) ;_ Wenn interner und externer Name ungleich (not (tblsearch "BLOCK" (nth 1 (fnsplitl FILENAME)))) ;_ wenn neuer Name nicht bereits existiert ) (progn ;_ ...dann benenne den internen Block wie den importierten (command "_.-rename" "Block" INTERNAL-BLOCKNAME (nth 1 (fnsplitl FILENAME)) ) (princ (strcat "\nBlockdefinition >" INTERNAL-BLOCKNAME "< mit >" FILENAME "< aktualisiert und unbenannt in >" (nth 1 (fnsplitl FILENAME)) "<!" ) ) ) (princ (strcat "\nBlockdefinition >" INTERNAL-BLOCKNAME "< mit >" FILENAME "< aktualisiert, alter Name beibehalten !" ) ) ) ) ) ) (princ) )
------------------ Ciao, Marc [Diese Nachricht wurde von marc.scherer am 28. Jul. 2009 editiert.] [Diese Nachricht wurde von marc.scherer am 28. Jul. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |