[求助]删除一堆文件里面的所有类型属于"circle"的图元
每个文件都很简单, 但是逐个打开费时, 有可以批量处理的方法吗 (defun c:delcircle (/ dir ndir files_list numfiles i file ss ys)(setvar "CMDECHO" 0)
(setq dir (getfiled "指定要操作的文件夹内任一文件"
"指指定要操作的文件夹内任一文件"
"dwg"
32
)
)
(setq dir (vl-filename-directory dir))
(setq ndir (strcat dir "\\已处理"))
(if (not (findfile (strcat ndir)))
(vl-mkdir ndir)
)
(setq files_list (vl-directory-files dir "*.dwg" 1)) ;文件名列表
(setq numfiles (length files_list)
i 0
)
(while (and (setq file (car files_list))
(not (tblobjname "block" (vl-filename-base file)))
)
(setq ss (ssget "x" ())) ;所有图元
(command "erase" ss "")
(command "-purge" "a" "*" "n" "")
(setq filestr (strcat dir "\\" file))
(command "-insert" filestr "0,0" 1 1 0 "") ;插入文件
(command "explode" (entlast) "")
(setq ss_circle (ssget "x" '((0 . "circle"))))
(command "erase" ss_circle "")
(command "wblock" (strcat ndir "\\" file) "" "0,0,0" (ssget "x" ()) "")
(vl-file-delete filestr)
(setq i (1+ i))
(setq files_list (cdr files_list))
(princ (strcat "\n该文件夹共计"
(itoa numfiles)
"个图形文件,当前已处理第 "
(itoa i)
" 个图形!"
)
)
)
(princ "\n END")
(setvar "CMDECHO" 1)
)
碎玉す全瓦 发表于 2017-12-1 17:07
(defun c:delcircle (/ dir ndir files_list numfiles i file ss ys)
(setvar "CMDECHO" 0)
(setq di ...
耍不起来啊, "已处理"文件夹内是空的, 开始选择的时候怎么是选择单个文件?
页:
[1]