Hallo
Das Lisp hier habe ich mal kurz aus dem Ärmel geschüttelt.
Es setzt voraus, dass alle Blöcke als DWG in einem Unterordner der Zeichnung sind, in welche Du sie einfügen willst.
Es werden dann aber ALLE Blöcke eingefügt. Erstelle also einen Ordner, welche nur Zeichnungen enthält, welche Du auch wirklich brauchst.
Die 5 (!) kannst Du an Deinen gewünschten Abstand anpassen, mit welchem weitere Blöcke vom letzten eingefügt werden, so dass nicht alles auf dem Nullpunkt zu stehen kommt.
Code:
(vl-load-com)(defun BrowseForFolder (text Rootfolder / ret y)
(setq y (vlax-get-or-create-object "shell.application"))
(if
(setq ret (vlax-invoke y "BrowseForFolder" 0 text 1 Rootfolder))
(setq ret (vlax-get (vlax-get ret "Self") "Path"))
)
(vlax-release-object y)
ret
)
(defun c:Allins (/ +X Blockordner Dateiliste)
(setq +X 0)
(setq Blockordner (BrowseForFolder "Unterordner mit Blöcken wählen" (getvar "dwgprefix")))
(setq Dateiliste (vl-directory-files Blockordner "*.dwg" 1))
(repeat (length Dateiliste)
(command "_-insert"
(strcat Blockordner "\\" (car Dateiliste))
(strcat (itoa +X) ",0") "1" "1" "0")
(setq Dateiliste (cdr Dateiliste))
(setq +X (+ +X 5)) ;_<-- hier den gewünschten Abstand zum nächsten Block eingeben (jetzt 5 Einheiten)
)
)
Den Ordnerauswahl-Dialog habe ich hier aus dem Forum. Danke an den Urheber.
Lade das Lisp, gib "allins" ein, wähle den gewünschten Unterordner aus und
Carpe Diem!
------------------
Du kannst in anderen nur entzünden,
was in Dir selber brennt!
Wollte noch ein File anhängen, aber habe die Kiste schon heruntergefahren.
[Diese Nachricht wurde von CADuceus am 16. Mrz. 2018 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP