tigcat 发表于 2025-3-5 21:51:14

[分享]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:11:00

本帖最后由 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后面也要带个空格表示确认)

Bao_lai 发表于 2025-3-5 22:52:27

见过SCR的文件,但是一直没有找到怎么去写个SCR的语法介绍。:dizzy:

mercio 发表于 2025-3-6 08:33:06

脚本是吧,找个类似的参考一下

菜卷鱼 发表于 2025-3-6 14:12:47

简单点,要deepseek去写个python代码去ocr,完了再python自动生成autoliso程序

【用deepseek写出一个图片转CAD的程序】 https://www.bilibili.com/video/BV1Nr9aYCEEE/?share_source=copy_web&vd_source=ff7330370cab8323b7cc937854dffb6f

yangjian00yy 发表于 2025-3-8 11:05:49

看样子要多学习deepseek的用法

tigcat 发表于 2025-3-16 22:46:19

小更新,增加了leemac的对话框函数.

kozmosovia 发表于 2025-3-17 10:06:03

大部分SCR里面的操作都有COM的对应,反正都是要编程的实现的,直接用DBX比用SCR要快和方便的多。

sandyvs 发表于 2025-3-21 15:35:28

kozmosovia 发表于 2025-3-17 10:06
大部分SCR里面的操作都有COM的对应,反正都是要编程的实现的,直接用DBX比用SCR要快和方便的多。

打印dbx办不到吧

Pegasus 发表于 2025-4-15 18:24:08

一直在找,谢谢分享。:victory:
页: [1]
查看完整版本: [分享]SCR技术示例20250316更新