Rocky121209 发表于 2016-7-6 15:47:17

陨落 发表于 2016-7-4 19:45 static/image/common/back.gif
我只是把核心代码写出来了,defun什么的你自己加
核心思路就是在CAD存放的最近打开文件的快捷方式,查看 ...

哦,谢谢你了,不过那这样的话,我会在好多个电脑里面都留下不少打开信息,这样不大合适

自贡黄明儒 发表于 2016-7-6 16:32:30

Rocky121209 发表于 2016-7-6 15:47 static/image/common/back.gif
哦,谢谢你了,不过那这样的话,我会在好多个电脑里面都留下不少打开信息,这样不大合适

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)
)

maiko 发表于 2016-7-6 17:56:25

你到底要什么效果?插入历史记录最后一个文件?还是打开最后一个文件,我发现你离标题原意有区别,最好是想清楚再提问!

Rocky121209 发表于 2016-7-6 18:32:09

maiko 发表于 2016-7-6 17:56 static/image/common/back.gif
你到底要什么效果?插入历史记录最后一个文件?还是打开最后一个文件,我发现你离标题原意有区别,最好是想 ...
效果就是类似1楼截图,点击那个文件名的效果,我想用命令来实现
你的代码是在新窗口打开,而不是当前CAD窗口,所以有点不一样
可能我表达有点问题,不知道你明白没?

陨落 发表于 2016-7-6 19:21:36

Rocky121209 发表于 2016-7-6 15:47 static/image/common/back.gif
哦,谢谢你了,不过那这样的话,我会在好多个电脑里面都留下不少打开信息,这样不大合适

可能你没太懂我意思……那些东西都是CAD自己留下的,你想不留下除非自己手动删掉……另外我觉得17楼的办法才是最好的

Rocky121209 发表于 2016-7-7 17:50:54

嗯嗯,多谢指导。
我明白了你的意思,读取的只是注册表里的东西,而不是真正的文件
然后我按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)
)凡是带教育版标记的文件,取消后,激活这段代码我就可以直接重打开,而且教育版标记也消失掉了。然后我可以选择直接保存去除掉教育版标记还是保存原有的文件不动。因为工作原因,有些文件我不方便更改别人的。


maiko 发表于 2016-7-12 00:47:46

你自己都写出完整的来了,消遣别人?不知所云

669423907 发表于 2016-7-12 15:08:06

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

(defun c:tt ()


把路径设置为回收站,openfile.scr就自动消失了,非常好

自贡黄明儒 发表于 2016-7-13 11:06:20

669423907 发表于 2016-7-12 15:08 static/image/common/back.gif
把路径设置为回收站,openfile.scr就自动消失了,非常好

具体怎么做的,完整代码分享一下3

Andyhon 发表于 2016-7-13 11:17:19

个人的系统设有 RamDisk , 其内有 Temp <Dir> , 常用来作跳板...
页: 1 2 [3] 4
查看完整版本: 请问一下lisp可不可以直接打开上次关闭的dwg文件