自贡黄明儒 发表于 2016-7-4 16:54:34

你不用反应器,是办不到的。

Rocky121209 发表于 2016-7-4 17:31:24

自贡黄明儒 发表于 2016-7-4 16:54 static/image/common/back.gif
你不用反应器,是办不到的。

初接触lisp,所以不是很懂,属于小白一个,用反应器的话,是不是比较麻烦?

Rocky121209 发表于 2016-7-4 18:34:41

本帖最后由 Rocky121209 于 2016-7-4 18:35 编辑

Sylvanas 发表于 2016-7-4 16:16 static/image/common/back.gif
试试scr吧

(defun c:tt ()

的确实现了我的要求,赞

唯一的遗憾就是会生成一个scr文件,我不希望在acaddoc.lsp添加命令,因为工作关系,我经常需要将lisp转移到其他电脑,所以,会麻烦,于是我将(vl-file-delete "D:\\openfile.scr")加在了我常使用的lisp命令中,只要我使用这个某个常用命令,就会把这个小文件删掉了

很感谢你

Rocky121209 发表于 2016-7-4 18:38:43

陨落 发表于 2016-7-4 13:21 static/image/common/back.gif
你的思路也可以直接实现
(setq fso (vlax-get-or-create-object "Scripting.FileSystemObject") )
(setq...
首先很感谢你的耐心回复,还想了不同的思路

我很想试试你这个方法,但是本人小白一个,只会defun c:xx的办法来触发基础的lisp命令,所以没看到这部分代码如何去触发和实现效果。。。能否简单教一下我怎么用?

masterlong 发表于 2016-7-4 19:35:21

scr用好了还是很强大的
可以专门建一个文件夹
存放各种应用的临时scr文件

陨落 发表于 2016-7-4 19:45:26

Rocky121209 发表于 2016-7-4 18:38 static/image/common/back.gif
首先很感谢你的耐心回复,还想了不同的思路

我很想试试你这个方法,但是本人小白一个,只会defun c:xx ...

我只是把核心代码写出来了,defun什么的你自己加
核心思路就是在CAD存放的最近打开文件的快捷方式,查看每个快捷方式的创建时间并进行比较,最新的那个就是上次打开的文件了

maiko 发表于 2016-7-4 23:06:24

本帖最后由 maiko 于 2016-7-4 23:13 编辑

最简单的办法是找到注册表存放文件历史记录位置,然后OPEN(vlax-invoke-method
(vlax-create-object "Shell.Application") 'open
(vl-registry-read
    (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Recent File List" )
    "File1"
)
)

Sylvanas 发表于 2016-7-5 09:14:56

本帖最后由 Sylvanas 于 2016-7-5 11:52 编辑

Rocky121209 发表于 2016-7-4 18:34 static/image/common/back.gif
的确实现了我的要求,赞

唯一的遗憾就是会生成一个scr文件,我不希望在acaddoc.lsp添加命令,因 ...
果然是强迫症

那好吧 其实要解决这个scr文件也是可以的。

改成这样

(defun c:tt ()
(setq ffn "D:\\openfile.scr"
      ff (open ffn "w")
      )
(write-line "open \"\" (while (null (vl-file-delete \"D:\\openfile.scr\"))(command \"delay\" 100))" ff)
(close ff)
(command "script" ffn)
)

这样就一次解决了,路径命令什么的自己改

我之所以习惯不删是因为经常用scr,路径都是一样的,方便管理和调试排错

Rocky121209 发表于 2016-7-6 14:36:55

Sylvanas 发表于 2016-7-5 09:14 static/image/common/back.gif
果然是强迫症

那好吧 其实要解决这个scr文件也是可以的。


的确没有了
果然高手

Rocky121209 发表于 2016-7-6 14:43:40

maiko 发表于 2016-7-4 23:06 static/image/common/back.gif
最简单的办法是找到注册表存放文件历史记录位置,然后OPEN

感谢你的回复,的确可以读出注册表
但是你的代码是新开一个CAD窗,而不是在原CAD窗打开,所以貌似不合适。。。
页: 1 [2] 3 4
查看完整版本: 请问一下lisp可不可以直接打开上次关闭的dwg文件