un lisp che esportava i blocchi all'interno di un file in una cartella...
Con questo puoi scegliere la destinazione e i nomi dei blocchi:
; Marc'Antonio Alessi - http://xoomer.alice.it/alessi
;
; Funzione: C:ALE_Block_WriteMultiple
;
; Versione 1.00 - 04/03/2005
;
; Note:
; i file esistenti nella destinazione saranno eventualmente sovrascritti,
; l'esportazione non avviene se si cerca di sovrascrivere files in uso
; o in sola lettura
;
(defun C:ALE_Block_WriteMultiple ( / Countr OutPat BlkNms TblDat BlkNam EntDat OutFil)
(if
(and
(setq
Countr 0
OutPat (ALE_BrowseForFolder "Seleziona la destinazione:" 48 "")
)
(setq BlkNms (strcase (getstring "\nNome del blocco o parte del nome <*>: ")))
)
(progn
(and (eq BlkNms "") (setq BlkNms "*"))
(while (setq TblDat (tblnext "BLOCK" (not TblDat)))
(setq
BlkNam (cdr (assoc 2 TblDat))
EntDat (entget (tblobjname "BLOCK" BlkNam))
)
(if
(and
(zerop (logand 61 (cdr (assoc 70 EntDat))))
(wcmatch (strcase (cdr (assoc 2 EntDat))) BlkNms)
)
(progn
(setq OutFil (strcat OutPat "\\" BlkNam ".dwg"))
(vl-catch-all-apply
'(lambda ( )
(if (eq 1 (logand 1 (getvar "CMDACTIVE")))
(repeat 4 (command))
)
(if (findfile OutFil)
(command "._-WBLOCK" OutFil "_Y" BlkNam)
(command "._-WBLOCK" OutFil BlkNam)
)
(setq Countr (1+ Countr))
)
)
)
)
)
)
)
(princ (strcat "\n" (itoa Countr) "blocchi esportati. "))
(princ)
)
;
; Marc'Antonio Alessi - http://xoomer.alice.it/alessi
;
; Function: ALE_BrowseForFolder
;
; Version 1.01 - 10/11/2005
;
; Example: (ALE_BrowseForFolder "Select a folder:" 48 "C:\\Temp\\")
; > "C:\\Temp"
;
; ulFlags - value of iOptns
;
; 1 RestrictToFilesystem = &H1 ' BIF_RETURNONLYFSDIRS
; 2 RestrictToDomain = &H2 ' BIF_DONTGOBELOWDOMAIN
; 8 RestrictToSubfolders = &H8 ' BIF_RETURNFSANCESTORS
; 16 ShowTextBox = &H10 ' BIF_EDITBOX
; 32 ValidateSelection = &H20 ' BIF_VALIDATE
; 64 NewDialogStyle = &H40 ' BIF_NEWDIALOGSTYLE
; 4096 BrowseForComputer = &H1000 ' BIF_BROWSEFORCOMPUTER
; 8192 BrowseForPrinter = &H2000 ' BIF_BROWSEFORPRINTER
; 16384 BrowseForEverything = &H4000 ' BIF_BROWSEINCLUDEFILES
;
; In this sample I use iOptns = 48 > 16 + 32
;
; Credits: Tony Tanzillo - Tim Willey
;
; VLA Acad globals: *AcadApp* = Acad.Application
;
; Vla-get-HWND note from Tim Willey: I set that up because I use dual
; monitors and it would pop up between both screens. After I set it, it popped
; in in the correct location, in the middle of the current Acad screen.
;
(defun ALE_BrowseForFolder (PrmStr iOptns DefFld / ShlObj Folder FldObj OutVal)
(vl-load-com)
(or *AcadApp* (setq *AcadApp* (vlax-get-acad-object)))
(setq
ShlObj (vla-getInterfaceObject *AcadApp* "Shell.Application")
Folder (vlax-invoke-method ShlObj
'BrowseForFolder (vla-get-HWND *AcadApp*) PrmStr iOptns DefFld
)
)
(vlax-release-object ShlObj)
(if Folder
(progn
(setq
FldObj (vlax-get-property Folder 'Self)
OutVal (vlax-get-property FldObj 'Path)
)
(vlax-release-object Folder)
(vlax-release-object FldObj)
OutVal
)
)
)
--
Marc'Antonio Alessi
(vl-string-translate "1234567890" "***@mst.lan" "499825513610716")
http://xoomer.alice.it/alessi
2D Parametric for 2000-2008 <
(strcat "I like " (substr (ver) 8 4) "!")
--