本帖最后由 kucha007 于 2024-3-3 19:22 编辑

最近因为多选文件的函数总是无法创建文件(似乎是没有权限?),所以接触了一下Doslib。
目前Doslib已经开源,也是不错的工具。唯一麻烦的点是需要根据CAD版本加载不同的ARX
话不多说,资源分享给大家


开源项目地址:https://wiki.mcneel.com/doslib/home


加载ARX的函数:

  1. ;判断并加载对应版本的ARX
  2. (defun K:LoadDosLib (ARXPath / K:STR->Lst AcadVer ProARCH FileNam)
  3.   ;根据分隔符拆分字符串@LeeMac
  4.   (defun K:STR->Lst (STR Del / len Lst pos)
  5.     (setq len (1+ (strlen Del)))
  6.     (while (setq pos (vl-string-search Del STR))
  7.       (setq Lst (cons (substr STR 1 pos) Lst)
  8.             STR (substr STR (+ pos len))
  9.       )
  10.     )
  11.     (reverse (cons STR Lst))
  12.   )
  13.   (setq AcadVer (substr (getvar "AcadVer") 1 2)
  14.         ProARCH (strcase (getenv "PROCESSOR_ARCHITECTURE"))
  15.         FileNam (if (eq "X86" ProARCH)
  16.                   (strcat "DOSLib" AcadVer ".ARX")
  17.                   (strcat "DOSLib" AcadVer "x64.ARX")
  18.                 )
  19.   )
  20.   (if (not (member ARXPath (K:STR->Lst (getenv "ACAD") ";")))
  21.       (setenv "ACAD" (strcat (getenv "ACAD") ";" ARXPath));DosLibARX路径
  22.   )
  23.   (if (findfile FileNam)
  24.     (arxload FileNam nil)
  25.     (princ (strcat "\n——★★★ " ARXPath "未找到" FileNam ",请检查 ★★★——\n"))
  26.   )
  27.   (princ)
  28. )

函数用法:
  1. (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

用了,报错(˵ˉ͒〰ˉ͒˵)

网友答: 感谢分享!!

网友答: 谢谢分享不错的文件

网友答: 谢谢楼主分享!

网友答:
谢谢楼主分享!大佬的新作

网友答:
谢谢分享不错的文件

网友答: 多谢分享!!!

网友答: 谢谢楼主分享!大佬的新作

网友答: 感谢楼主分享

网友答: 前人种树,后人乘凉,感谢无私。
  • 上一篇:使用.net扩展lisp
  • 下一篇:没有了