[分享]SCR技术示例20250316更新
本帖最后由 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 ally y" openfile)
(write-line "_.qsave _.close" openfile)
)
(close openfile)
(command ".script" file)
(vl-file-delete file)
(princ)
)
本帖最后由 tigcat 于 2025-3-5 23:19 编辑
Bao_lai 发表于 2025-3-5 22:52
见过SCR的文件,但是一直没有找到怎么去写个SCR的语法介绍。
宝来兄,leemac网站上有示例,其实就是把cad操作写在记事本文档里,换行对应空格命令
例如,画圆
circle
0,0
20
也可以写成一行,空格相当于输入的意思
_.circle _non 0,0,0 5 (注意5后面也要带个空格表示确认) 见过SCR的文件,但是一直没有找到怎么去写个SCR的语法介绍。:dizzy: 脚本是吧,找个类似的参考一下 简单点,要deepseek去写个python代码去ocr,完了再python自动生成autoliso程序
【用deepseek写出一个图片转CAD的程序】 https://www.bilibili.com/video/BV1Nr9aYCEEE/?share_source=copy_web&vd_source=ff7330370cab8323b7cc937854dffb6f 看样子要多学习deepseek的用法 小更新,增加了leemac的对话框函数. 大部分SCR里面的操作都有COM的对应,反正都是要编程的实现的,直接用DBX比用SCR要快和方便的多。 kozmosovia 发表于 2025-3-17 10:06
大部分SCR里面的操作都有COM的对应,反正都是要编程的实现的,直接用DBX比用SCR要快和方便的多。
打印dbx办不到吧 一直在找,谢谢分享。:victory:
页:
[1]