求助大神 lsp批量修改圆插件原保存格式dwg改成dxf
求助高手指点,如何把这个lsp批量修改插件保存格式改成dxf(打开格式和保存格式都改成dxf。原dwg)(defun c:tt (/ f file tmp)(setqf (getfiled "选择文件夹并任意选取一个文件,请先剔除无需处理文件"
"d:\\"
"dwg"
0
)
f (vl-filename-directory f)
f (mapcar '(lambda (x) (strcat f "\\" x))
(vl-directory-files f "*.dwg" 1)
)
)
(setq tmp (open (setq file (strcat (getenv "TEMP") "\\tmp.scr")) "w"))
(foreach n f
(write-line (strcat "_.open \"" n "\"") tmp)
(write-line
"(setq ss (ssget \"x\" '((0 . \"CIRCLE\") )))
(repeat(setq n (sslength ss))
(setqen (ssname ss (setq n (1- n))))
(setq centerpt(Cdr(Assoc 10 (Entget en))))
(entmake (list '(0 . \"LINE\") (cons 10 (polar centerpt pi 5 )) (cons 11 (polar centerpt 0 5 ))))
(entmake (list '(0 . \"LINE\") (cons 10 (polar centerpt( * 0.5 pi) 5 )) (cons 11 (polar centerpt( * -0.5 pi) 5 )))))"
tmp
)
(write-line "_.qsave _.close" tmp)
)
(close tmp)
(command ".script" file)
(vl-file-delete file)
(princ)
)
(DEFUN C:dxf(/ F W p n s)
(SETQ W (GETVAR "DWGPREFIX"))
(setq s (ssget))
(SETQ F (GETFILED "另存为 dxf" W "dxf" 3))
(IF F
(IF (FINDFILE F)
(progn
(COMMAND "WBLOCK" F "y" "" "0,0" s "")
(command "oops"))
(progn
(COMMAND "WBLOCK" F "" "0,0" s "")
(command "oops"))
)
)
(princ)
)
------------------------------
试试看
梦想家-DING 发表于 2022-5-19 11:12
(DEFUN C:dxf(/ F W p n s)
(SETQ W (GETVAR "DWGPREFIX"))
(setq s (ssget))
非常感谢,不过我是要按上面这个改,批量修改图纸里面的圆,在圆心处加十字标。批处理。上面的代码现在是选择一个文件夹里面的任意图纸,可以把文件夹内所有的圆心加十字标,但是只支持dwg,我要修改的文件格式是dxf的,希望能帮我dwg改成dxf 梦想家-DING 发表于 2022-5-19 11:12
(DEFUN C:dxf(/ F W p n s)
(SETQ W (GETVAR "DWGPREFIX"))
(setq s (ssget))
(defun c:tt (/ f file tmp)
(setqf (getfiled "选择文件夹并任意选取一个文件,请先剔除无需处理文件"
"d:\\"
"dwg"
0
)
f (vl-filename-directory f)
f (mapcar '(lambda (x) (strcat f "\\" x))
(vl-directory-files f "*.dwg" 1)
)
)
(setq tmp (open (setq file (strcat (getenv "TEMP") "\\tmp.scr")) "w"))
(foreach n f
(write-line (strcat "_.open \"" n "\"") tmp)
(write-line
"(setq ss (ssget \"x\" '((0 . \"CIRCLE\") )))
(repeat(setq n (sslength ss))
(setqen (ssname ss (setq n (1- n))))
(setq centerpt(Cdr(Assoc 10 (Entget en))))
(entmake (list '(0 . \"LINE\") (cons 10 (polar centerpt pi 5 )) (cons 11 (polar centerpt 0 5 ))))
(entmake (list '(0 . \"LINE\") (cons 10 (polar centerpt( * 0.5 pi) 5 )) (cons 11 (polar centerpt( * -0.5 pi) 5 )))))"
tmp
)
(write-line "_.qsave _.close" tmp)
)
(close tmp)
(command ".script" file)
(vl-file-delete file)
(princ)
)
页:
[1]