dtucad 发表于 2022-2-9 22:52:29

lisp能用的多选文件对话框函数

本帖最后由 dtucad 于 2022-5-8 10:46 编辑



由于lisp没有多选文件对话框,所以用c#做了一个,并打包到lisp中,加载附件lisp文件即可使用

函数使用说明:
;多选对话框函数:DTU-MultiSelectDialog (支持cad2007及以上版本)
;参数1为对话框标题栏提示文字
;参数2为文件类型
;返回值:所选择的文件名表(含路径)

;例子:
;(DTU-MultiSelectDialog "请选择文件" "所有文件(*.*)|*.*")
;(DTU-MultiSelectDialog "请选择DWG文件" "DWG文件(*.dwg)|*.DWG")
;(DTU-MultiSelectDialog "请选择LSP文件" "LSP文件(*.lsp)|*.LSP")


DLL打包进lisp用到了盛老师的汇编版打包工具,非常感谢
http://bbs.mjtd.com/forum.php?mo ... hlight=%B4%F2%B0%FC


刀图用户交流群:894659298

(免币了这么久,2022.5.8开始收个币)

cghdy 发表于 2022-2-10 09:35:30

cghdy 发表于 2022-2-10 09:24
想问问,开启对话框后能不能切换选择文件类型

(DTU-MultiSelectDialog "请选择DWG文件" "DWG文件(*.dwg)|*.DWG|LSP文件(*.lsp)|*.LSP")

yhly555 发表于 2022-2-11 12:42:41

很高大,谢谢分享

376394482 发表于 2022-7-5 16:38:41



(if (< (atoi (substr (getvar "acadver") 1 2)) 19)
        (setq *DTU-MultiSelectDialog-path* "d:\\DTU-MultiSelectDialog-低版本.dll");cad2007~2012版
        (setq *DTU-MultiSelectDialog-path* "d:\\DTU-MultiSelectDialog-高版本.dll");cad2013及以上版本
)

替换为

(if (< (atoi (substr (getvar "acadver") 1 2)) 19)
        (setq *DTU-MultiSelectDialog-path* (vl-string-subst "DTU-MultiSelectDialog-低版本.dll" "acad.exe" (findfile "acad.exe")));cad2007~2012版
        (setq *DTU-MultiSelectDialog-path* (vl-string-subst "DTU-MultiSelectDialog-高版本.dll" "acad.exe" (findfile "acad.exe")));cad2013及以上版本
)

错误: ADODB.Stream: 写入文件失败。
只能放在第一层目录吗?

悟沧 发表于 2022-2-9 23:01:19

强烈支持,下载试用下。

cghdy 发表于 2022-2-10 09:14:41

谢谢高手分享

cghdy 发表于 2022-2-10 09:24:54

想问问,开启对话框后能不能切换选择文件类型

20060510412 发表于 2022-2-10 13:11:15

谢谢楼主分享,楼主是个热心人!

f4800 发表于 2022-2-10 21:45:17

谢谢楼主分享,楼主是个热心人!

sfzyr 发表于 2022-3-13 03:22:11

找了好久,这个功能终于有解决方案了。原有调用系统cmdlg的,调用IE,WORD,EXCEL的,都弱爆了。这个多文件选择对话框,必须支持。感谢楼主分享。

mokson 发表于 2022-3-13 10:05:30

这是折衷的方法吧,真不相信lisp都不更新了。
页: [1] 2 3
查看完整版本: lisp能用的多选文件对话框函数