Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Mehrere Blöcke bearbeiten

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:  Mehrere Blöcke bearbeiten (1097 mal gelesen)
silcono
Mitglied
Planer


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

Beiträge: 88
Registriert: 19.12.2014

AutoCAD 2010 LT
AutoCAD 2014
AutoCAD 2018
AutoCAD MAP 3D 2017
Intel(R) Core(TM) i5-4570 CPU @ 3.20GhZ 3.20Ghz
16,00GB Ram
Windows 7- Prof. 64-Bit
ASUS EAH6450 Series

erstellt am: 07. Sep. 2015 10:00    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,

folgende Ausgangslage:

Ich habe eine DWG mit ca. 13500 Blöcken. Diese Blöcke sollen nun je eine Schraffur bekommen.
Für einen einzelnen Block, wäre die übliche Vorgehensweise feolgende:
Script:

-BBEARB
neu_ACAD_FMEBLOCK13423
SCHRAFF
SOLID
F -500,-500 500,500

_BCLOSE

-------
LISP:

(defun C:blockschr (/ )
(command "-BBEARB" "test_ACAD_FMEBLOCK4735" "")
(command "SCHRAFF" "SOLID" "F" "-500,-500" "500,500" "")
(command "_BCLOSE" "")
)end defun

Ich kann nun diese Vorgehensweise einfach kopieren und den Namen für jeden Block austauschen. Aber bei ca. 13500 Blöcken, hängt sich ACAD irgendwann auf.

Gibt es eine andere Möglichkeit die Blöcke zu bearbeiten?
Im Voraus besten Dank für das nachkrübbeln!

Viele Grüße
Silcono

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 07. Sep. 2015 10:33    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 silcono 10 Unities + Antwort hilfreich

Hallo Silcono,
du könntest in einer Schleife alle Blocknamen der Zeichnung durchlaufen lassen und die Command-Befehle ausführen lassen:
Code:

(defun C:blockschr ( / )
  (vl-load-com)
  (vlax-for ITEM
        (vla-get-blocks(vla-get-activedocument
                          (vlax-get-acad-object)))
    (if (/=(substr(vla-get-Name ITEM)1 1)"*")
      (progn
        (command "-BBEARB" (vla-get-Name ITEM) "")
        (command "SCHRAFF" "SOLID" "F" "-500,-500" "500,500" "")
        (command "_BCLOSE" "")))
    )
  )

WICHTIG: vorher alles speichern, denn ob AutoCAD da ohne Absturz durchkommt weiß ich nicht, die Command-Befehle sind in der Regel relativ schwerfällig. Sagen wir mal so, vielleicht klappt es ja ;-)

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Liniensignaturen Youtube

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

silcono
Mitglied
Planer


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

Beiträge: 88
Registriert: 19.12.2014

AutoCAD 2010 LT
AutoCAD 2014
AutoCAD 2018
AutoCAD MAP 3D 2017
Intel(R) Core(TM) i5-4570 CPU @ 3.20GhZ 3.20Ghz
16,00GB Ram
Windows 7- Prof. 64-Bit
ASUS EAH6450 Series

erstellt am: 07. Sep. 2015 10:48    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 Jörn,

viele Dank erstmal.
Das ist ja schon mal ein Ansatz.
Leider hat Schleife die selbe Auswirkung, wie die Wiederholung der Befehle mit allen Blocknamen.
ACAD hängt sich auf

Aber der Ansatz gefällt mir schon mal.

Trotzdem vielen Dank!

Grüße
Silcono

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 07. Sep. 2015 11:11    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 silcono 10 Unities + Antwort hilfreich

Zuerst einmal würde ich
Befehl: ZURÜCK STEUERN KEINE setzen, um die Rückgängig Funktion nicht unnötig zu belasten.
Dann kann man alle 100 Blöcke zwischenspeichern, ggf. sogar Zeichnung schließen und neu starten (allerdings höherer Programmieraufwand).
Oder gänzlich auf Commands verzichten und alle Änderungen direkt mir Lisp/vba/.net in der Datenbank durchführen, allerdings müsste das Schraffurobjekt dann generiert werden und das ist je nach Kontur recht aufwändig. Da wäre ein Beispiel mit einigen ausgewählten Blöcken hilfreich.

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 07. Sep. 2015 11: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 silcono 10 Unities + Antwort hilfreich

Hallo Silcono,
das ist ja schade, aber ich hatte es mir schon gedacht.

Habe leider im Moment wenig Zeit, aber Du kannst für ITEM die Methode vla-AddHatch verwenden, einfach mal nach googlen.
Wenn Du damit Deine Schraffuren erstellen kannst, dann brauchst Du keine Command-Befehle mehr.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Liniensignaturen Youtube

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

silcono
Mitglied
Planer


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

Beiträge: 88
Registriert: 19.12.2014

AutoCAD 2010 LT
AutoCAD 2014
AutoCAD 2018
AutoCAD MAP 3D 2017
Intel(R) Core(TM) i5-4570 CPU @ 3.20GhZ 3.20Ghz
16,00GB Ram
Windows 7- Prof. 64-Bit
ASUS EAH6450 Series

erstellt am: 07. Sep. 2015 11:26    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

@CAD-Huebner

Danke mal für die Anregungen, werde mich auf die Hinweise hin mal ergooglen. Hört sich aber noch einigen komplizierteren Wegen an, aber eine Herausforderung ist immer schön und hält bei Laune 

Danke!

Grüße
Silcono

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

silcono
Mitglied
Planer


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

Beiträge: 88
Registriert: 19.12.2014

AutoCAD 2010 LT
AutoCAD 2014
AutoCAD 2018
AutoCAD MAP 3D 2017
Intel(R) Core(TM) i5-4570 CPU @ 3.20GhZ 3.20Ghz
16,00GB Ram
Windows 7- Prof. 64-Bit
ASUS EAH6450 Series

erstellt am: 07. Sep. 2015 11:27    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

@joern bosse

viele Dank für den Hinweis, werde mich mal über vla-AddHatch erkundigen.

Grüße
silcono

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 07. Sep. 2015 12:43    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 silcono 10 Unities + Antwort hilfreich

Hallo Silcono,
ich glaube, so in etwas müßte es funktionieren. Ich habe bei mir ein Testdatei mit vielen Blockdefinitionen gehabt, nach Abschluss war in jeder Definition ein rechteckiges Solid-Hatch enthalten:
Code:

(defun C:blockschr ( /  VLA-PLINE VLA-HATCH)
  (vl-load-com)
  (vlax-for ITEM
        (vla-get-blocks(vla-get-activedocument
                          (vlax-get-acad-object)))
    (if (/=(substr(vla-get-Name ITEM)1 1)"*")
      (progn
        (setq vla-pline(vla-addLightweightPolyline
                        ITEM
                        (blockschr:->variantArray
                          '(-500.0 -500.0
                            500.0 -500.0
                            500.0 500.0
                            -500.0 500.0)
                          )))

        (vla-put-closed vla-pline :vlax-true)

        (setq vla-hatch(vla-AddHatch ITEM
                        acHatchPatternTypePreDefined "SOLID"
                        :vlax-True))
        (vlax-invoke vla-hatch 'AppendOuterLoop
          (list vla-pline))
        (vla-evaluate vla-hatch)
        (vla-delete vla-pline)
        )
      )
    )
  )


(defun blockschr:->variantArray (liste / )
  (vlax-make-variant(vlax-safearray-fill
                      (vlax-make-safearray
                        vlax-vbdouble ; element type
                        (cons 0
                              (- (length liste) 1)
                              ) ; array dimension
                        )liste))
  )


------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Liniensignaturen Youtube

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

silcono
Mitglied
Planer


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

Beiträge: 88
Registriert: 19.12.2014

AutoCAD 2010 LT
AutoCAD 2014
AutoCAD 2018
AutoCAD MAP 3D 2017
Intel(R) Core(TM) i5-4570 CPU @ 3.20GhZ 3.20Ghz
16,00GB Ram
Windows 7- Prof. 64-Bit
ASUS EAH6450 Series

erstellt am: 07. Sep. 2015 13: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

 
JÖRN!!!!
ca. 13500 Blöcke haben nun ihre Schraffur integriert.

Bäm!!!
VIELEN DANK! So viel Bemühung hätte ich nicht erwartet, geschweige denn verlangt :P

Viele Grüße
Silcono

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