- 积分
- 15413
- 明经币
- 个
- 注册时间
- 2016-1-26
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 tigcat 于 2025-3-16 22:45 编辑
SCR是一项古老的技术,虽说现在编程方式多种多样,但这种技术也许也有不时之需.分享一个代码.对多个文件执行相同的命令/lisp命令.多文件选择是几年前复制论坛大侠的成果.需要opendcl的支持,现在可以替换成高飞等大神的函数.我自己装了opendcl,就不改了,你们谁改好了分享啊
;20250316更新
补充了leemac的函数,可以不依赖odcl了.
里面的程序自带一个小功能,视口改为一个,并zoom e全图.
;|
http://bbs.mjtd.com/forum.php?mo ... 103&fromuid=7314147
本帖最后由 millermin 于 2013-2-3 09:10 编辑
|;
(defun c:scr3 (/ currentdwg file file-list get-multi-files load-odclp openfile vl-filename-base-and-ext)
(command "opendcl")
;;;忘记定义odcl变量!
;;;(defun Load-Odclp()
;;; (if (setq ODCL (findfile (strcat "OpenDCL.x64." (itoa(atoi (getvar "acadver")))".arx"))) T nil)
;;;)
(DEFUN Load-Odclp (/ A)
(VL-CATCH-ALL-APPLY 'VL-CMDF '("OPENDCL"))
(if
(setq A (CAR
(VL-REMOVE-IF-NOT
'(LAMBDA (X) (WCMATCH X "opendcl*arx"))
(ARX)
)
)
)
(PROGN (VL-ARX-IMPORT A))
)
)
(defun vl-filename-base-and-ext (path)
(strcat (vl-filename-base path) (vl-filename-extension path))
)
(defun GET-MULTI-FILES (name extention path /)
(Load-Odclp)
(DCL_MULTIFILEDIALOG ;;;TIFF (*.tif)|*.tif||
extention ;"TIFF (*.dwg)|*.dwg"
name
(if path path (GETVAR "DWGPREFIX"))
)
)
;(setq folder (getstring "\nCHOOSE YOUR DRAWING FILES PATH ONLY -- SHEET NUMBER "))
;;; ;(setq path (strcat folder "\\"))
;;;
;;; (setq file-list (mapcar '(lambda (dwgname) (strcat path dwgname))
;;; (vl-directory-files path "*.dwg")
;;; )
;;; )
;;; (setq currentdwg (strcat path (getvar "dwgname")))
(setq file-list (GET-MULTI-FILES "请选择处理的文件:" "DWG图形文件(*.dwg)|*.dwg" "THISCOMPUTER"))
(setq openfile (open (setq file "c:/myscript.scr") "w"))
(foreach f file-list
(write-line (strcat "_.open \"" f "\"") openfile)
(write-line "(load \"E:/迅雷下载/04一级建造师/lisp学习/1/43-备份文件/c2x2.lsp\")" openfile)
(write-line "c2x2" openfile) ;c2x2是lisp程序的命令
;(write-line "-vports si zoom e setbylayer all y y" openfile)
(write-line "_.qsave _.close" openfile)
)
(close openfile)
(command ".script" file)
(vl-file-delete file)
(princ)
)
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|