BrianTFC 发表于 2022-7-6 06:17:47

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

 
 
谢谢
布瑞恩

BlackBox 发表于 2022-7-6 06:30:47

 
我有一段时间没见到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))
)
)

Bill Tillman 发表于 2022-7-6 06:36:47

只需在命令行上使用:
 
(_OpenDwg "F:\\any_path_name_you_want\\any_filename_you_want.dwg" T)
 
您还可以使用代码从用户那里获取他们想要打开的文件的输入。。。。当最近的文件大部分时间仍在文件下拉菜单中时,这似乎是一种很难做到的方式。。。AutoCAD中已经内置了用于打开文件的文件对话框。然而,我们都有自己的需求和理由以某种方式做事。

BlackBox 发表于 2022-7-6 06:44:54

 
... 如果像所有最近的文件一样,对所有项目使用SSM,情况并非如此。DST公司
 
 
同意,但这些对话框很少自动转到特定于项目的相对文件夹供用户选择(无需自定义)。。。因此,我要求提供上述额外信息。
 
干杯

BrianTFC 发表于 2022-7-6 06:49:08

我只想打开最新和最棒的(不管实际日期本身)?唯一更新的是日期7-8-13。
 
谢谢
布瑞恩

BrianTFC 发表于 2022-7-6 06:58:58

黑匣子,
 
有可能做到这一点吗?
我只想打开最新和最棒的(不管实际日期本身)?唯一更新的是日期7-8-13。
 
谢谢
布瑞恩

BlackBox 发表于 2022-7-6 07:07:52

 
我仍然没有足够的信息,真的。。。好的,那么文件名内的日期是什么变化;总是今天吗?是否要提示您输入日期?日期是否始终采用这种格式(即MM-DD-YY)?

BrianTFC 发表于 2022-7-6 07:10:58

问题1=不,不总是今天的日期,无论何时更新
问题2=如果我不必这样做,因为我每次都必须寻找它。
问题3=是的,这是格式
 
我希望这有帮助。谢谢

BrianTFC 发表于 2022-7-6 07:19:29

黑匣子,
 
你需要更多信息来完成这项工作吗?
 
谢谢
布瑞恩
页: [1]
查看完整版本: 使用lisp打开Dwg