;; importation en bloc 08/12/2008
;; taxi à theswamp.org
;; obtenir la sélection utilisateur du dossier
;; obtenir tous les fichiers dwg dans le dossier
;; insérer dwg comme bloc @ 0,0
;; obtenir la boîte de blocage
;; déplacer l'insert à droite w/ espace entre les blocs
;; insérer ensuite
(defun c:bi (/ chemin lastdist gap space err newblk bname obj ll lr ur
inspt dist getfolder)
(vl-load-com)
(défun getfolder ( / dirpat msg)
(setq msg "ouvrir un dossier et cliquer sur Enregistrer")
(et
(setq dirpat (browse for folder " msg " 1))
(setq dirpat (substr dirpat 1 (- (strlen dirpat) (strlen msg))))
)
dirpat
)
(espace actif défini (doc)
(si (ou (= acmodelspace (vla-get-activespace doc))
(= :vlax-true (vla-get-mspace doc))
(vla-get-modelspace doc)
(vla-get-paperspace doc)
)
)
(setq gap 5) ; c'est l'écart entre les blocs
(setq lastdist 0.0) ; c'est la distance cumulée
(si (chemin setq (fichier d'accès))
(progrès
(espace setq (espace actif (document vla-get-active (vlax-get-acad-objet)))
(prompte "\n*** travailler, veuillez patienter ...\n")
(pour chaque bname (vl-répertoire-files chemin "*.dwg" 1)
;; ok, essayez et insérez le bloc
(si
(setq err)
«(lambda () (setq newblk (vla-inserblock space)
(vlax-3d-point '(0,0 0,0)) (chemin strcat bname) 1,0 1,0 1,0 0,0))
))))
;; affiche le message d'erreur et le nom du bloc/fichier
(prompt (strcat "\n" bname " " (vl-catch-all-error-message err)))
;; autres
(prog ; insert a sucessful, déplacer le bloc
;; obtenir la boîte de délimitation
(si
(setq err (vl-catch-all-apply 'vla-getboundingbox (liste newblk 'll 'ur)))
(prompt (erreur "\nbb - ne pouvait pas déplacer " bname "\n " (vl-catch-all-error-message err)))
(progrès
(setq ll (vlax-safearray->list ll)
(vlax-safearray->list ur)
lr (liste des voitures)
Dist (distance ll lr)
)
;; déplacer le bloc
(setq ;inspt (vla-get-insertionpoint newblk)
newpt (polaire '(0. 0. 0.) 0,0 (+ écart de lastdist (* dist 0,5)))
Lastdist (+ lastdist gap dist)
)
(nouveaux points d'insertion de sortie)
)
)
)
)
)
)
)
(principal)
)
(principal)
(prompt "\nblock importation charged, entrez bi à exécuter.")