wutao8282 发表于 2022-5-18 10:45:00

求助大神 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)
)

梦想家-DING 发表于 2022-5-19 11:12:46

(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)
)


------------------------------

试试看

wutao8282 发表于 2022-5-19 11:20:33

梦想家-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

wutao8282 发表于 2022-5-19 11:22:37

梦想家-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]
查看完整版本: 求助大神 lsp批量修改圆插件原保存格式dwg改成dxf