急!!!!各位大侠帮个忙:
本帖最后由 mandala 于 2011-8-23 20:37 编辑写了一个程序,包括一个lsp文件、一个dcl文件和10个txt文件,放在一个文件夹中,在CAD里设置好“支持文件搜索路径”。
没编译成vlx之前,使用正常,但编译成vlx之后(将所有文件一起编译进去了),删除原文件夹,在CAD中导入vlx,结果提示“某某txt不存在”!
应该是路径的问题?我从没编译过带dcl和txt的文件,是否我编译得不对? 学习了,谢谢 我也遇到这种情况,就简单的把相应的txt和DCL文件一起放在支持路径文件夹中。 本帖最后由 mandala 于 2011-8-23 23:05 编辑
楼上的办法我当然知道,不过这样我还要编译成vlx干什么。
这个程序是给别人用的,本来只要给他一个vlx就可以了,现在得全拷给他,还要提醒他放在支持目录下。
编译的时候,把顺序改改,txt文件放前面试一试 本帖最后由 mandala 于 2011-8-23 23:21 编辑
cnks 发表于 2011-8-23 22:23 static/image/common/back.gif
编译的时候,把顺序改改,txt文件放前面试一试
好像没什么用。
我看到网上有个说法,说编译后,不需要路径。
因此在程序中要写成这样:
(if (null (setq txt (findfile "C:\\ABC\\Test.txt"))) (setq txt "Test.txt")))
但我试过也没用,因为 (open "Test.txt" “r”)的结果是nil。
在程序中加入寻找目录对话框的语句 byghbcx 发表于 2011-8-24 08:36 static/image/common/back.gif
在程序中加入寻找目录对话框的语句
我已经全部编译成vlx文件了,哪来的目录? (getFolder "请选择\"*.txt\"所在文件夹" )
(defun getFolder (msg / WinShell shFolder path catchit)
(vl-load-com)
(setq winshell (vlax-create-object "Shell.Application"))
(setq shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 msg 1))
(setq
catchit (vl-catch-all-apply
'(lambda ()
(setq shFolder (vlax-get-property shFolder 'self))
(setq path (vlax-get-property shFolder 'path))
)
)
)
(if (vl-catch-all-error-p catchit)
nil
path
)
)
加入lisp中重新编绎成vlx 本帖最后由 mandala 于 2011-8-24 09:32 编辑
byghbcx 发表于 2011-8-24 08:53 http://bbs.mjtd.com/static/image/common/back.gif
(getFolder "请选择\"*.txt\"所在文件夹" )
(defun getFolder (msg / WinShell shFolder path catchit)
...
非常感谢你的帮助……这个lsp是用来指定TXT文件所在目录的吧。
不过我的需求是:所有txt和dcl都打包在一个vlx中,执行时硬盘上不存在什么TXT文件。不然我为什么要把它们都编译成一个vlx呢,直接把这些东西都拷入支持路径下都可以了么。
我的疑惑是:假使编译入vlx的txt文件不能被vlx调用,那为什么还要编译进去?放外边不一样吗?
用下面这个函数:
(vl-get-resource text-file)