【Doslib】版本小于等于2022
本帖最后由 kucha007 于 2024-3-3 19:22 编辑最近因为多选文件的函数总是无法创建文件(似乎是没有权限?),所以接触了一下Doslib。
目前Doslib已经开源,也是不错的工具。唯一麻烦的点是需要根据CAD版本加载不同的ARX
话不多说,资源分享给大家
开源项目地址:https://wiki.mcneel.com/doslib/home
加载ARX的函数:
;判断并加载对应版本的ARX
(defun K:LoadDosLib (ARXPath / K:STR->Lst AcadVer ProARCH FileNam)
;根据分隔符拆分字符串@LeeMac
(defun K:STR->Lst (STR Del / len Lst pos)
(setq len (1+ (strlen Del)))
(while (setq pos (vl-string-search Del STR))
(setq Lst (cons (substr STR 1 pos) Lst)
STR (substr STR (+ pos len))
)
)
(reverse (cons STR Lst))
)
(setq AcadVer (substr (getvar "AcadVer") 1 2)
ProARCH (strcase (getenv "PROCESSOR_ARCHITECTURE"))
FileNam (if (eq "X86" ProARCH)
(strcat "DOSLib" AcadVer ".ARX")
(strcat "DOSLib" AcadVer "x64.ARX")
)
)
(if (not (member ARXPath (K:STR->Lst (getenv "ACAD") ";")))
(setenv "ACAD" (strcat (getenv "ACAD") ";" ARXPath));DosLibARX路径
)
(if (findfile FileNam)
(arxload FileNam nil)
(princ (strcat "\n——★★★ " ARXPath "未找到" FileNam ",请检查 ★★★——\n"))
)
(princ)
)
函数用法:
(K:LoadDOSLib "C:\\DosLibARX");路径自己解压后修改
DosLib功能用法详见帮助文档
kucha007 发表于 2023-12-15 19:59
用了,报错(˵ˉ͒〰ˉ͒˵)
是不是再CAD2021+的UTF模式?如果是,需要改一下open读取txt文件时,指定使用老的ANSI编码读取,具体可以参考open函数的帮助,txt文件强制指定了ANSI编码,编码不匹配读取中文会乱码。 本帖最后由 kucha007 于 2023-12-16 10:12 编辑
kozmosovia 发表于 2023-12-15 21:19
是不是再CAD2021+的UTF模式?如果是,需要改一下open读取txt文件时,指定使用老的ANSI编码读取,具体可以 ...
我是2014和2018都不行。不知道为啥。后来粗看了一下好像是这句代码循环一直没有结束,CAD就假死了
kozmosovia 发表于 2023-12-15 19:46
多选文件可以用PowerShell,没有版本的烦恼。http://bbs.mjtd.com/thread-188838-1-1.html
用了,报错(˵ˉ͒〰ˉ͒˵) 感谢分享!! 谢谢分享不错的文件 谢谢楼主分享!
谢谢楼主分享!大佬的新作
谢谢分享不错的文件:handshake 多谢分享!!! 谢谢楼主分享!大佬的新作 感谢楼主分享 前人种树,后人乘凉,感谢无私。
页:
[1]
2