;; block import lisp 08/12/2008
;; Taxi in theswamp.org
;; erhalten Benutzerauswahl von Ordner
;; erhalten alle dwg Dateien in Ordner
dwg als Block einsetzen @ 0,0
;; bekommen gebundene Box von Block
;; Verschieben Sie den Einsatz nach rechts w/ Spalt zwischen den Blöcken
;; nächster Einsatz
(defun c:bi (/ Pfad lastdist Lücke Raum err newblk bname obj ll lr ur
Inspt dist getfolder)
(vl-load-com)
(defun getfolder ( / Dirpat msg)
(Setq msg "öffne einen Ordner und klicke auf Speichern)
(und
(setq dirpat (getfiled "browse for Ordner" msg " 1))
(setq dirpat (substr dirpat 1 (- (strlen dirpat)))
)
Schmutz
)
(defun activespace (doc)
(oder (= acmodelspace (vla-get-activespace doc))
(vlax-true (vla-get-mspace doc)))
(vla-get-modelspace doc)
(vla-get-paperspace doc)
)
)
(Satzspalt 5) ; dies ist der Spalt zwischen Blöcken
(setq lastdist 0.0)
(falls (setq path (getfolder))
(Prog.)
(setq space (activespace (vla-get-activedocument (vlax-get-acad-object))))
(Prompt "\n*** arbeiten, bitte warten...\n")
(foreach bname (vl-directory-files path "*.dwg) 1)
;; ok, versuchen Sie den Block
(falls vl-catch-all-error-p
(setq err (vl-catch-all-apply)
'(lambda (setq newblk) (vla-insertblock space)
(vlax-3d-point '(0.0 0.0 0.0)) (Strcat path bname) 1.0 1.0 1.0 1.0 1.0 0.0))
))
;; Anzeige der Fehlermeldung und Block / Dateiname
(prompt (strcat "\n" bname " (vl-catch-all-error-message err)))
andere
(progn ; Einlage war überflüssig, bewegen Sie den Block
;; bekommen gebundene Box
(falls vl-catch-all-error-p
(setq err (vl-catch-all-apply 'vla-getboundingbox)))
(Prompt (Strcat "\nbb Error - konnte nicht bewegen " bname "\n " (vl-catch-all-error-message err)))
(Prog.)
(setq ll (vlax-safearray->list ll)
ur (vlax-safearray->list ur)
lr (Liste (Auto) (cadr ll)
(Entfernung ll lr)
)
;; bewegen Sie den Block
(setq ;inspt (vla-get-insertionpoint newblk)
newpt (polar '(0. 0. 0.) 0,0 (+ letzte Spalte (* dist 0.5))
lastdist (+ lastdist gap dist)
)
(vlax-put newblk 'Insertionpoint newpt)
)
)
)
)
)
)
)
(princ)
)
(princ)
(Prompt "\nblock import geladen, geben Sie bi zu laufen.)