Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Block-im-Block auflösen

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:  Block-im-Block auflösen (6552 mal gelesen)
glocker
Mitglied
CAD-Systemadministrator


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

Beiträge: 73
Registriert: 24.06.2004

AutoCAD-Mechanical2007 auf WindowsXP

erstellt am: 23. Mrz. 2011 17:55    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

Liebe AutoCAD-Gemeinde

ich habe bereits das Archiv nach passenden Informationen abgegrast, aber leider nichts passendes für mein Problem gefunden (weil es zum Thema Block einfach auch zu viele Beiträge gibt)...

Unsere Zeichnungen sind wie es sich gehört danz ordentlich mit Blöcken strukturiert. Auf diese Blöcke könnte ich nun ganz bequem einzeln zugreifen, wenn diese nicht wiederum Blöcke enthalten würden und diese wieder usw...

Gibt es eine Möglichkeit, einen Block so zu bearbeiten, dass alle in dem Block enthaltenen Blöcke aufgelöst werden und anschliessend nur noch "normale" Elemente drin sind?
Das bereinigen eines solchen platten Blocker wäre kein Problem - hierfür habe ich schon ein geeignetes Tool zur Verfügung.

Momentan kenne ich nur die Möglichkeit, den Block zu editieren und solange Blöcke aufzulösen, bis keiner mehr übrig ist - das dauert oft aber sehr lange und oft bleibt dann doch wieder einer übrig oder ich habe versehentlich eine Schraffur aufgelöst oder noch schlimmeres...

Hat hier jemand eine gute Idee
Das wäre ganz prima!

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 23. Mrz. 2011 18:20    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 glocker 10 Unities + Antwort hilfreich

Hallo glocker,

Programmiert habe ich derlei bereits - ginge also.

Aber das Lisp-Forum ist ja für Fragen der (Lisp-)Programmierung gedacht. Daher meine Fragen: Wie weit bist mit eigenen Programmierversuchen? Wo hakt es bei der Umsetzung genau?

Meine (schnellmalruntergetipptecommand)Lösung sieht wie folgt aus:
--> Schleife durch die Blocktabelle in der folgendes gemacht wird
1. Einfügen des Blocks am Ursprung
2. Ursprung
3. --> While-Schleife Prüfen ob bei den aufgelösten Elementen ein INSERT dabei ist
  =:Ja - Insert aus vorherigen Auswahlsatz entfernen , Insert explodieren, die neuen Elemente diesem hinzufügen --> weiter in der Schleife
  =:Nein - Block erstellen unter gleichen Namen mit den im Auswahlsatz befindlichen Elementen, Basispunkt = Ursprung
  <--
<--

Bei Fragen ...

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

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

glocker
Mitglied
CAD-Systemadministrator


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

Beiträge: 73
Registriert: 24.06.2004

AutoCAD-Mechanical2007 auf WindowsXP

erstellt am: 24. Mrz. 2011 08:31    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, Herr Brischke

etwas habe ich natürlich schon
z.B. ein Autolisp zum löschen aller Elemente mit bestimmten Kriterien (Layer, Name usw...) oder etwas zum exploren von Blöcken mit Ausnahmen (Schraffuren, Namensregeln, Bemassungen usw...).

Wo's klemmt ist, wie ich innerhalb dem Scan des Plockinhalts etwas mit URSPRUNG auflösen und den Umgang mit der sich dann ändernden Blockinhalt.

Erschwerend kommt hinzu, daß es sich um Layouts mit unzähligen so zu bearbeitenden Blöcken handelt.

Heftig, was???

Gruß Helmut

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 24. Mrz. 2011 08:50    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 glocker 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von glocker:
... etwas habe ich natürlich schon
z.B. ein Autolisp zum löschen aller Elemente mit bestimmten Kriterien (Layer, Name usw...) oder etwas zum exploren von Blöcken mit Ausnahmen (Schraffuren, Namensregeln, Bemassungen usw...). ...


Keine Ahnung, wie du diese Programme aufgebaut hast und nun verwenden kannst. Ich würde (als schnellen Weg) einfach ein (command "_.insert" ..) und ein anschließendes (command "_.explode" ..) verwenden.
Zitat:
Original erstellt von glocker:
... Wo's klemmt ist, wie ich innerhalb dem Scan des Plockinhalts etwas mit URSPRUNG auflösen und den Umgang mit der sich dann ändernden Blockinhalt. ...

Darum habe ich in meinem vorherigem Post die Command-Variante beschrieben. Da musst du nicht durch die Blockelemente durchhecheln, sondern sammelst die Elemente ein, die beim Explode der Blockreferenz entstanden sind. (ssget "_p")
Zitat:
Original erstellt von glocker:
... Erschwerend kommt hinzu, daß es sich um Layouts mit unzähligen so zu bearbeitenden Blöcken handelt.
Heftig, was??? ...


Nein, nicht heftig, weil das ziemlich egal ist. Wenn du die Blockdefinitionen änderst, dann wirkt sich das auf alle Blockreferenzen aus, egal auf welchem Layout sich diese befinden, oder wie tief diese verschachtelt sind.

Schau dir mal den Ablauf meines ersten Posts an .. das ist der Programmablaufplan, der mit einer einfachen Command-Programmierung und nur wenigen Lisp-Kenntnissen zum Erfolg führen kann.

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

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

glocker
Mitglied
CAD-Systemadministrator


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

Beiträge: 73
Registriert: 24.06.2004

AutoCAD-Mechanical2007 auf WindowsXP

erstellt am: 24. Mrz. 2011 09:17    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

Aha - so geht das...
Dann werde ich mal schauen, ob ich mit diesen Informationen etwas brauchbares zusammengebastelt bekomme....
Herzlichen Dank für die Informationen

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 24. Mrz. 2011 13:12    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 glocker 10 Unities + Antwort hilfreich

Frank-WZB
Mitglied
Konstrukteur-WZB

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

Beiträge: 7
Registriert: 22.09.2004

Acad2004, LT2004
deutsch
Win2000, NT4

erstellt am: 30. Mai. 2011 10: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 Nur für glocker 10 Unities + Antwort hilfreich

Hallo
Da ich zur Zeit recht selten hier ins Forum reinschaue,
kommt mein Hinweis dazu recht spät.

Mir wurde bei diesem Thema schon unter folgendem Link hier im Forum geholfen (Suche unter: ssget verschachtelte Blöcke 22.09.2004)
http://ww3.cad.de/foren/ubb/Forum145/HTML/000789.shtml

Ich hoffe es hilft dir

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 30. Mai. 2011 14:36    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 glocker 10 Unities + Antwort hilfreich

Hoppla, den Beitrag hab ich ja ganz übersehen.

Für eine einfache Verschachtelung sollte das hier gehen.

(vl-load-com)
(setq blk_name (cdr (assoc 2 (entget (car (entsel))))))
(setq
  blk_obj (vla-item (vla-get-blocks
      (vla-get-activedocument (vlax-get-acad-object))
    )
    blk_name
  )
)
(vlax-for obj blk_obj
  (if (= (vla-get-objectname obj) "AcDbBlockReference")
    (vla-explode obj)
  )
)


Kann man ja ausbauen.
Vielleicht ne Rekursion oder so.

------------------
Geht nicht, gibts nicht

Gruß
Andreas
http://kraus-cad.de

[Diese Nachricht wurde von Andreas Kraus am 30. Mai. 2011 editiert.]

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