| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | WS LANDCAD-Anwendertreffen 2025, eine Veranstaltung am 17.09.2025
|
Autor
|
Thema: Ausgewählte Blöcke tauschen / ersetzen (5812 / mal gelesen)
|
Franke79 Mitglied
 Beiträge: 4 Registriert: 03.02.2017 AutoCAD 2014
|
erstellt am: 03. Feb. 2017 09:07 <-- editieren / zitieren --> Unities abgeben:         
Hallo Zusammen... Ich weiß, das Thema "Blöcke tauschen" wurde hier schon sehr oft diskutiert...leider hab ich noch keine Lösung für meinen speziellen Fall gefunden: Ich möchte Blöcke in der Zeichnung ersetzen. Aber nicht global alle, sondern nur vorher ausgewählte.... Wir hatten mal einen "selbsterstellten" Befehl auf der Arbeit, der vom Ablauf ungefähr so war: 1 - Zu ersetzenden Block auswählen (Pick oder aus Liste) 2 - Einzusetzenden Block auswählen (Pick oder aus Liste) 3 - Objekte wählen ( hier war es egal, ob nur explizit die zu ersetzenden Blöcke gewählt wurden. Man konnte einfach ein sinnvolles Fenster ziehen, und der zu ersetzende Block wurde aus allen gewählten Objekten heraus gefiltert.... Diese Filterfunktion ist nicht kriegsentscheidend...wichtig für mich wäre, wenn ich einfach eine Auswahl treffen könnte, anstatt alles global zu ändern Ich hoffe, mein Anliegen ist verständlich erklärt... Würde mich freuen, wenn hier jemand eine Lösung parat hat. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22365 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 03. Feb. 2017 09:28 <-- editieren / zitieren --> Unities abgeben:          Nur für Franke79
Kostenlos gibt es kaum etwas vernünftiges (sobald Attribute und dynamische Blöcke ins Spiel kommen), Suchst du etwas Halbgares, dann suche nach Tools und teste was das Zeug hält. Die einfachste Variante: Die Blockreferenz auf einen anderen Block verweisen lassen, so wie hier zB: http://ww3.cad.de/foren/ubb/Forum54/HTML/024044.shtml Aber wie gesagt: dynamsiche Blöcke, Attribute oder gesperrte Layer, all sowas ist in den wenigen Zeilen nicht berücksichtigt und daher können auch mal unerwünschte Ergebnisse vorkommen. Dort ist es mit Einzel-Klick umgesetzt, man könnte aber auch eine gewöhnliche Objektwahl anbieten.
Code:
; http://ww3.cad.de/foren/ubb/Forum54/HTML/024044.shtml (defun C:BLOCKSWITCH( / BL NL AWS) (if(or(and(setq BL(car(Entsel "\nQuellblock wählen:"))) (setq BL(entget BL)) (=(cdr(assoc 0 BL))"INSERT") (setq BL (cdr(assoc 2 BL))) ) (prompt "\n Keine Blockreferenz gewählt:") ) (if (and (setq NL(car(Entsel "\nZielblock wählen:"))) (setq NL(entget NL)) (=(cdr(assoc 0 NL))"INSERT") (setq AWS (ssget (list'(0 . "INSERT")(assoc 2 NL)))) ) (foreach i (if AWS (vl-remove-if 'listp (mapcar 'cadr (ssnamex AWS)))) (entmod (subst (cons 2 BL)(assoc 2 (entget i))(entget i))) ) ) ) )
------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Franke79 Mitglied
 Beiträge: 4 Registriert: 03.02.2017 AutoCAD 2014
|
erstellt am: 03. Feb. 2017 10:08 <-- editieren / zitieren --> Unities abgeben:         
Es darf ruhig halbgar sein...kein Problem...es handelt sich eh nur um einfache Blöcke...nur leider weiß ich nicht, wie ich diesen Text verarbeiten muss, damit ein Befehl dabei herauskommt Tools hab ich schon viele ausprobiert, aber die bieten leider immer nur die globale Lösung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22365 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 03. Feb. 2017 10:10 <-- editieren / zitieren --> Unities abgeben:          Nur für Franke79
|
Franke79 Mitglied
 Beiträge: 4 Registriert: 03.02.2017 AutoCAD 2014
|
erstellt am: 03. Feb. 2017 10:25 <-- editieren / zitieren --> Unities abgeben:         
Yeah! Also das hat bis hierher schon mal funktioniert...vielen Dank dafür... Ist, wie da sagst, noch nicht die sauberste Lösung, aber schon mal sehr hilfreich... Leider hab ich diese Lisp Kenntnisse nicht, um das ganze nach meinen Wünschen anzupassen Aber schon mal vielen Dank dafür !!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadwomen Ehrenmitglied V.I.P. h.c. Mädchen für fast alles
     
 Beiträge: 3095 Registriert: 26.08.2002 ACAD R11 - 2022 (Plant3D) AVIS ACAD LT 2013- 2021 ZWCAD 2015 Versuch "nun ja" [s]History P3D 2012/(13) SP und Hotfix([/s]<P> Windows 10 / 64 Bit Xeon CPU 3.5GHz 16GB Ram NVIDIA Quadro P2000 3x Dell TV100 88P Monitore
|
erstellt am: 03. Feb. 2017 10:28 <-- editieren / zitieren --> Unities abgeben:          Nur für Franke79
so wusste da war was dank Google auch wieder gefunden, hoffe das trifft es ... und wie hier heute schon von einem Mitglied erwähnt , manchmal muss man nur ein wenig Eigenleistung in die Suche stecken ;-) der Dank gebührt Alan J. Thompson, 02.09.2010 ---------------- (defun c:BRE (/ *error* blk f ss temp) ;; Replace multiple instances of selected blocks (can be different) with selected block ;; Size and Rotation will be taken from original block and original will be deleted ;; Required subroutines: AT:GetSel ;; Alan J. Thompson, 02.09.10 ;; Found at: http://www.cadtutor.net/forum/showthread.php?48458-Replace-Selected-Bloc k-Or-Blocks-With-Another-Block (vl-load-com) (defun *error* (msg) (and f *AcadDoc* (vla-endundomark *AcadDoc*)) (if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,"))) (princ (strcat "\nError: " msg)) ) ) (if (and (AT:GetSel entsel "\nSelect replacement block: " (lambda (x / e) (if (and (eq "INSERT" (cdr (assoc 0 (setq e (entget (car x)))))) (/= 4 (logand (cdr (assoc 70 (tblsearch "BLOCK" (cdr (assoc 2 e))))) 4)) (/= 4 (logand (cdr (assoc 70 (entget (tblobjname "LAYER" (cdr (assoc 8 e)))))) 4)) ) (setq blk (vlax-ename->vla-object (car x))) ) ) ) (princ "\nSelect blocks to be repalced: ") (setq ss (ssget "_:L" '((0 . "INSERT")))) ) (progn (setq f (not (vla-startundomark (cond (*AcadDoc*) ((setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object)))) ) ) ) ) (vlax-for x (setq ss (vla-get-activeselectionset *AcadDoc*)) (setq temp (vla-copy blk)) (mapcar (function (lambda (p) (vl-catch-all-apply (function vlax-put-property) (list temp p (vlax-get-property x p)) ) ) ) '(Insertionpoint Rotation XEffectiveScaleFactor YEffectiveScaleFactor ZEffectiveScaleFactor ) ) (vla-delete x) ) (vla-delete ss) (*error* nil) ) ) (princ) ) (defun AT:GetSel (meth msg fnc / ent good) ;; meth - selection method (entsel, nentsel, nentselp) ;; msg - message to display (nil for default) ;; fnc - optional function to apply to selected object ;; Ex: (AT:GetSel entsel "\nSelect arc: " (lambda (x) (eq (cdr (assoc 0 (entget (car x)))) "ARC"))) ;; Alan J. Thompson, 05.25.10 (setvar 'errno 0) (while (not good) (setq ent (meth (cond (msg) ("\nSelect object: ") ) ) ) (cond ((vl-consp ent) (setq good (cond ((or (not fnc) (fnc ent)) ent) ((prompt "\nInvalid object!")) ) ) ) ((eq (type ent) 'STR) (setq good ent)) ((setq good (eq 52 (getvar 'errno))) nil) ((eq 7 (getvar 'errno)) (setq good (prompt "\nMissed, try again."))) ) ) ) ------------------------------------------ ------------------ Also ich finde Unities gut ... und andere sicher auch ------------------------------------------------ cadwomen™ Plant ist wie Öl suchen, je tiefer man bohrt desto mehr kommt ans Tageslicht [Diese Nachricht wurde von cadwomen am 03. Feb. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Franke79 Mitglied
 Beiträge: 4 Registriert: 03.02.2017 AutoCAD 2014
|
erstellt am: 03. Feb. 2017 10:46 <-- editieren / zitieren --> Unities abgeben:         
|
Viva Mitglied

 Beiträge: 88 Registriert: 07.08.2008 Intel i7-3770 3.4GHz, 8GB Ram, Windows 7, Autocad Architecture 2016 mit SIA Lokalisierung
|
erstellt am: 03. Feb. 2017 15:29 <-- editieren / zitieren --> Unities abgeben:          Nur für Franke79
Kleine Bemerkung nebenbei. Ab Autocad Architecture + MEP ab 2015 oder sicher ab 2016 gibt es einen Befehl _AecChangeBlock dazu. Mit diesem Befehl können mehrere Blöcke ausgewählt und durch einen anderen Block getauscht werden. Die Skalierung und Attribute bleiben erhalten. ------------------ mfg Viva Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |