本帖最后由 kucha007 于 2024-3-3 19:22 编辑
最近因为多选文件的函数总是无法创建文件(似乎是没有权限?),所以接触了一下Doslib。
目前Doslib已经开源,也是不错的工具。唯一麻烦的点是需要根据CAD版本加载不同的ARX
话不多说,资源分享给大家
开源项目地址:https://wiki.mcneel.com/doslib/home
加载ARX的函数:

函数用法:
复制代码
DosLib功能用法详见帮助文档
网友答:
是不是再CAD2021+的UTF模式?如果是,需要改一下open读取txt文件时,指定使用老的ANSI编码读取,具体可以参考open函数的帮助,txt文件强制指定了ANSI编码,编码不匹配读取中文会乱码。网友答: 本帖最后由 kucha007 于 2023-12-16 10:12 编辑
我是2014和2018都不行。不知道为啥。后来粗看了一下好像是这句代码循环一直没有结束,CAD就假死了
网友答:
用了,报错(˵ˉ͒〰ˉ͒˵)网友答: 感谢分享!!网友答: 谢谢分享不错的文件网友答: 谢谢楼主分享!网友答:
谢谢楼主分享!大佬的新作网友答:
谢谢分享不错的文件
网友答:
多谢分享!!!网友答:
谢谢楼主分享!大佬的新作网友答:
感谢楼主分享网友答:
前人种树,后人乘凉,感谢无私。
最近因为多选文件的函数总是无法创建文件(似乎是没有权限?),所以接触了一下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
用了,报错(˵ˉ͒〰ˉ͒˵)网友答: 感谢分享!!网友答: 谢谢分享不错的文件网友答: 谢谢楼主分享!网友答:
谢谢楼主分享!大佬的新作网友答:
谢谢分享不错的文件
网友答:
多谢分享!!!网友答:
谢谢楼主分享!大佬的新作网友答:
感谢楼主分享网友答:
前人种树,后人乘凉,感谢无私。