明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: Rocky121209

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

[复制链接]
 楼主| 发表于 2016-7-6 15:47 | 显示全部楼层
陨落 发表于 2016-7-4 19:45
我只是把核心代码写出来了,defun什么的你自己加
核心思路就是在CAD存放的最近打开文件的快捷方式,查看 ...

哦,谢谢你了,不过那这样的话,我会在好多个电脑里面都留下不少打开信息,这样不大合适
发表于 2016-7-6 16:32 | 显示全部楼层
Rocky121209 发表于 2016-7-6 15:47
哦,谢谢你了,不过那这样的话,我会在好多个电脑里面都留下不少打开信息,这样不大合适

17楼文件,用下面的方法打开试试
;;打开文件时,不出现字体选择对话框 自贡黄明儒 2013年2月5日
(defun C:MyOpen (/ DOCOBJ DWGNAME)
  (or *ACAD* (setq *ACAD* (vlax-get-acad-object)))
  (setq DwgName (getfiled "打开文件" (getvar "dwgprefix") "dwg" 0))
  (setq DocObj (vla-open (vla-get-Documents *ACAD*) DwgName))
  (vla-Activate DocObj)
  (princ)
)

发表于 2016-7-6 17:56 | 显示全部楼层
你到底要什么效果?插入历史记录最后一个文件?还是打开最后一个文件,我发现你离标题原意有区别,最好是想清楚再提问!
 楼主| 发表于 2016-7-6 18:32 | 显示全部楼层
maiko 发表于 2016-7-6 17:56
你到底要什么效果?插入历史记录最后一个文件?还是打开最后一个文件,我发现你离标题原意有区别,最好是想 ...

效果就是类似1楼截图,点击那个文件名的效果,我想用命令来实现
你的代码是在新窗口打开,而不是当前CAD窗口,所以有点不一样
可能我表达有点问题,不知道你明白没?
发表于 2016-7-6 19:21 | 显示全部楼层
Rocky121209 发表于 2016-7-6 15:47
哦,谢谢你了,不过那这样的话,我会在好多个电脑里面都留下不少打开信息,这样不大合适

可能你没太懂我意思……那些东西都是CAD自己留下的,你想不留下除非自己手动删掉……另外我觉得17楼的办法才是最好的
 楼主| 发表于 2016-7-7 17:50 | 显示全部楼层
嗯嗯,多谢指导。
我明白了你的意思,读取的只是注册表里的东西,而不是真正的文件
然后我按17楼的代码,再结合了下22楼的触发办法。修改成了下面这个
(defun C:MyOpen (/ DOCOBJ File1)
  (vlax-invoke-method
    (vlax-create-object "Shell.Application") 'open
    (vl-registry-read
      (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Recent File List" )
      "File1"
    )
  )
   (setq DocObj (vla-open (vla-get-Documents *ACAD*) File1))
   (vla-Activate DocObj)
   (princ)
)
然后发现,这种打开不是在当前窗口打开的,而是新开一个CAD窗口打开的。而且由于字体、教育版的问题,取消掉的文件,CAD是不存文件路径到注册表的,所以打开的不是上一个取消的文件,而是上一次正常打开的文件,所以貌似用不了。

另外,其实我要完成的事情对各位大神来说应该很简单,我贴个完整的出来,相信大家就知道我想干嘛了,也不复杂。
(defun c:JJ ()
(ARXLOAD "E:\\资料\\BladeR18_x64.arx")
   (setq ffn "C:\\openfile.scr"
         ff (open ffn "w")
         )
   (write-line "open \"\" (while (null (vl-file-delete \"C:\\openfile.scr\"))(command \"delay\" 100))" ff)
   (close ff)
   (command "script" ffn)
)
凡是带教育版标记的文件,取消后,激活这段代码我就可以直接重打开,而且教育版标记也消失掉了。然后我可以选择直接保存去除掉教育版标记还是保存原有的文件不动。因为工作原因,有些文件我不方便更改别人的。


发表于 2016-7-12 00:47 | 显示全部楼层
你自己都写出完整的来了,消遣别人?不知所云
发表于 2016-7-12 15:08 | 显示全部楼层
Sylvanas 发表于 2016-7-4 16:16
试试scr吧

(defun c:tt ()

把路径设置为回收站,openfile.scr就自动消失了,非常好
发表于 2016-7-13 11:06 | 显示全部楼层
669423907 发表于 2016-7-12 15:08
把路径设置为回收站,openfile.scr就自动消失了,非常好

具体怎么做的,完整代码分享一下3
发表于 2016-7-13 11:17 | 显示全部楼层
个人的系统设有 RamDisk , 其内有 Temp <Dir> , 常用来作跳板...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-17 12:04 , Processed in 0.239475 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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