明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: Rocky121209

[已解答] 请问一下lisp可不可以直接打开上次关闭的dwg文件

[复制链接]
发表于 2016-7-4 16:54:34 | 显示全部楼层
你不用反应器,是办不到的。
 楼主| 发表于 2016-7-4 17:31:24 | 显示全部楼层
自贡黄明儒 发表于 2016-7-4 16:54
你不用反应器,是办不到的。

初接触lisp,所以不是很懂,属于小白一个,用反应器的话,是不是比较麻烦?
 楼主| 发表于 2016-7-4 18:34:41 | 显示全部楼层
本帖最后由 Rocky121209 于 2016-7-4 18:35 编辑
Sylvanas 发表于 2016-7-4 16:16
试试scr吧

(defun c:tt ()

的确实现了我的要求,赞

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

很感谢你
 楼主| 发表于 2016-7-4 18:38:43 | 显示全部楼层
陨落 发表于 2016-7-4 13:21
你的思路也可以直接实现
(setq fso (vlax-get-or-create-object "Scripting.FileSystemObject") )
(setq  ...

首先很感谢你的耐心回复,还想了不同的思路

我很想试试你这个方法,但是本人小白一个,只会defun c:xx的办法来触发基础的lisp命令,所以没看到这部分代码如何去触发和实现效果。。。能否简单教一下我怎么用?
发表于 2016-7-4 19:35:21 来自手机 | 显示全部楼层
scr用好了还是很强大的
可以专门建一个文件夹
存放各种应用的临时scr文件
发表于 2016-7-4 19:45:26 | 显示全部楼层
Rocky121209 发表于 2016-7-4 18:38
首先很感谢你的耐心回复,还想了不同的思路

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

我只是把核心代码写出来了,defun什么的你自己加
核心思路就是在CAD存放的最近打开文件的快捷方式,查看每个快捷方式的创建时间并进行比较,最新的那个就是上次打开的文件了
发表于 2016-7-4 23:06:24 | 显示全部楼层
本帖最后由 maiko 于 2016-7-4 23:13 编辑

最简单的办法是找到注册表存放文件历史记录位置,然后OPEN
  1. (vlax-invoke-method
  2.   (vlax-create-object "Shell.Application") 'open
  3.   (vl-registry-read
  4.     (strcat "HKEY_CURRENT_USER\" (vlax-product-key) "\\Recent File List" )
  5.     "File1"
  6.   )
  7. )
复制代码
发表于 2016-7-5 09:14:56 | 显示全部楼层
本帖最后由 Sylvanas 于 2016-7-5 11:52 编辑
Rocky121209 发表于 2016-7-4 18:34
的确实现了我的要求,赞

唯一的遗憾就是会生成一个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,路径都是一样的,方便管理和调试排错
 楼主| 发表于 2016-7-6 14:36:55 | 显示全部楼层
Sylvanas 发表于 2016-7-5 09:14
果然是强迫症

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

的确没有了
果然高手
 楼主| 发表于 2016-7-6 14:43:40 | 显示全部楼层
maiko 发表于 2016-7-4 23:06
最简单的办法是找到注册表存放文件历史记录位置,然后OPEN

感谢你的回复,的确可以读出注册表
但是你的代码是新开一个CAD窗,而不是在原CAD窗打开,所以貌似不合适。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-27 20:15 , Processed in 0.192763 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表