Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Ausgewählte Blöcke tauschen / ersetzen

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:  Ausgewählte Blöcke tauschen / ersetzen (5193 / mal gelesen)
Franke79
Mitglied


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

Beiträge: 4
Registriert: 03.02.2017

AutoCAD 2014

erstellt am: 03. Feb. 2017 09:07    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 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
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 03. Feb. 2017 09:28    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 Franke79 10 Unities + Antwort hilfreich

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


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

Beiträge: 4
Registriert: 03.02.2017

AutoCAD 2014

erstellt am: 03. Feb. 2017 10: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

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
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 03. Feb. 2017 10:10    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 Franke79 10 Unities + Antwort hilfreich

User FAQ hat da zwei Threads zum Thema.

1. Appload
2. Acaddoc.lsp

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

Franke79
Mitglied


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

Beiträge: 4
Registriert: 03.02.2017

AutoCAD 2014

erstellt am: 03. Feb. 2017 10:25    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

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


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

Beiträge: 2966
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 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 Franke79 10 Unities + Antwort hilfreich


BRE.lsp

 
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


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

Beiträge: 4
Registriert: 03.02.2017

AutoCAD 2014

erstellt am: 03. Feb. 2017 10: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

Nochmals vielen Dank und ja, der Seitenhieb ist angekommen     

Ich habe aber elendig lange gesucht...wahrscheinlich irgendwie in die falsche Richtung.
Also es hat funktioniert und ich ernenne dich schon jetzt zum Forumuser des Monats
FEBRUAR 2017             

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

Viva
Mitglied



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

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 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 Franke79 10 Unities + Antwort hilfreich

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

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