使用lisp打开Dwg
全部的我找到了伦德曼写的这个Lisp程序的句子;它工作得很好。我想知道我需要做什么,使它继续打开文件,即使文件名的一部分发生变化,即;每次更新时不更改代码的日期
新作业模板-7-8-13-小。图纸
(defun c:OpenMyDwg ( / _OpenDwg )
(defun _OpenDwg(dwg readOnly / f oDwg)
;; RenderMan, CADTutor.net
;; Example: (_OpenDwg "FilePath\\FileName.dwg" T)
(vl-load-com)
(if (and (setq f (findfile dwg)) (/= 1 (getvar 'sdi)))
(vla-activate
(vla-open (vla-get-documents (vlax-get-acad-object))
f
(cond ((= T readOnly) :vlax-true)
((:vlax-false)))))
(cond (f (prompt "\n** Command not available in SDI mode ** "))
((prompt (strcat "\n** \""
(strcase (vl-filename-base dwg))
"\" cannot be found ** "))))))
(_OpenDwg
"F:\\DRAWINGS\\ARCHITECTURAL DETAILS\\NEW JOB\\NEW JOB TEMPLATE-7-8-13 - SMALL.dwg"
T)
(princ))
谢谢
布瑞恩
我有一段时间没见到RenderMan了,但如果我可以问一下约会的情况。。。您是每天更改日期,希望通过对话框进行选择,还是总是希望打开最新和最棒的日期(不管实际日期本身)?
此外,我认为他不会介意我对他的代码稍加修改:
(vl-load-com)
(defun _OpenDwg (dwg readOnly / doc)
;; BlackBox... Inspired by RenderMan, CADTutor.net
;; Example: (_OpenDwg "FilePath\\FileName.dwg" T)
;; Return: T, if successful; otherwise nil.
(and (not
(vl-catch-all-error-p
(setq doc (vl-catch-all-apply
'vla-open
(list (vla-get-documents (vlax-get-acad-object))
dwg
(if readOnly
:vlax-true
:vlax-false
)
)
)
)
)
)
(not (vla-activate doc))
)
)
只需在命令行上使用:
(_OpenDwg "F:\\any_path_name_you_want\\any_filename_you_want.dwg" T)
您还可以使用代码从用户那里获取他们想要打开的文件的输入。。。。当最近的文件大部分时间仍在文件下拉菜单中时,这似乎是一种很难做到的方式。。。AutoCAD中已经内置了用于打开文件的文件对话框。然而,我们都有自己的需求和理由以某种方式做事。
... 如果像所有最近的文件一样,对所有项目使用SSM,情况并非如此。DST公司
同意,但这些对话框很少自动转到特定于项目的相对文件夹供用户选择(无需自定义)。。。因此,我要求提供上述额外信息。
干杯 我只想打开最新和最棒的(不管实际日期本身)?唯一更新的是日期7-8-13。
谢谢
布瑞恩 黑匣子,
有可能做到这一点吗?
我只想打开最新和最棒的(不管实际日期本身)?唯一更新的是日期7-8-13。
谢谢
布瑞恩
我仍然没有足够的信息,真的。。。好的,那么文件名内的日期是什么变化;总是今天吗?是否要提示您输入日期?日期是否始终采用这种格式(即MM-DD-YY)? 问题1=不,不总是今天的日期,无论何时更新
问题2=如果我不必这样做,因为我每次都必须寻找它。
问题3=是的,这是格式
我希望这有帮助。谢谢 黑匣子,
你需要更多信息来完成这项工作吗?
谢谢
布瑞恩
页:
[1]