求批量写块,
本帖最后由 ly8zx2109 于 2013-4-16 08:02 编辑求批量写块(WBLOCK),CAD图中块名不同,但是有有一定规律,可编缉 写出文件名,求各位高手给个程序。谢谢。
本帖最后由 Gu_xl 于 2013-4-23 16:16 编辑
(defun c:tt (/ *error* cmdecho filename name path i)
(defun *error* (s)
(princ s)
(setvar 'cmdecho cmdecho)
)
(setq cmdecho (getvar 'cmdecho))
(setvar 'cmdecho 0)
(cond
((not (setq filename (getfiled "保存文件名" "" "dwg" 1))))
(t
(setq name (VL-FILENAME-BASE filename)
path (strcat (VL-STRING-RIGHT-TRIM
"\\"
(VL-FILENAME-DIRECTORY filename)
)
"\\"
)
i 0
)
(princ "\n选择写块物体:")
(while (setq ss (ssget))
(command "wblock"
(strcat path name (itoa (setq i (1+ i))) ".dwg")
""
"0,0,0"
ss
""
)
(command "oops")
(princ "\n继续选择写块物体<右键结束>:")
)
)
)
(setvar 'cmdecho cmdecho)
(princ)
) 有一定规律,是什么规律?还是上传测试用的附件再说吧
;c:blk 批量块输出到指定文件夹文件 By Gu_xl
(defun c:blk (/ WINSHELL SHFOLDER CATCHIT PATH BLL XL K KN BL N B expert cmdecho)
(setq expert (getvar 'expert)
cmdecho (getvar 'cmdecho)
)
(setvar 'expert 5)
(setvar 'cmdecho 0)
(setq winshell (vlax-create-object "Shell.Application"))
(setq shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 "选择文件夹" 1))
(setq
catchit (vl-catch-all-apply
'(lambda ()
(setq shFolder (vlax-get-property shFolder 'self))
(setq path (vlax-get-property shFolder 'path))
)
)
)
(if (not (vl-catch-all-error-p catchit))
(progn
(setq blL '() xl '(0 0) k 0 kn 0)
(setq bl (tblnext "BLOCK" T))
(setq bll (cons (cdr (assoc 2 bl)) blL))
(while (setq bl (tblnext "block"))
(setq bll (cons (cdr (assoc 2 bl)) blL))
)
(setq bll (acad_strLSort bll))
(foreach b bll
(command "wblock" (strcat path "\\" b) b)
)
)
)
(vlax-release-object winshell)
(setvar 'expert expert)
(setvar 'cmdecho cmdecho)
(princ)
) 向G版学习了 就是把附件中的图分为四张图。不是把每个块分出去。谢谢版主。
就是这个附件 谢谢
AutoCAD Batchplot 批量打印程序 这个程序就可做到这些功能,后来才发现的,谢谢版主了。 Gu_xl 发表于 2013-4-16 09:15 static/image/common/back.gif
块多了会导至CAD卡死
页:
[1]
2