乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 32|回复: 8

[编程交流] 使用lisp打开Dwg

[复制链接]

39

主题

180

帖子

141

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
195
发表于 2022-7-6 06:17:47 | 显示全部楼层 |阅读模式
全部的
 
我找到了伦德曼写的这个Lisp程序的句子;它工作得很好。我想知道我需要做什么,使它继续打开文件,即使文件名的一部分发生变化,即;每次更新时不更改代码的日期
 
新作业模板-7-8-13-小。图纸
 
 
 
  1. (defun c:OpenMyDwg ( / _OpenDwg )
  2. (defun _OpenDwg  (dwg readOnly / f oDwg)
  3. ;; RenderMan, CADTutor.net
  4. ;; Example: (_OpenDwg "FilePath\\FileName.dwg" T)
  5. (vl-load-com)  
  6. (if (and (setq f (findfile dwg)) (/= 1 (getvar 'sdi)))
  7.    (vla-activate
  8.      (vla-open (vla-get-documents (vlax-get-acad-object))
  9.                f
  10.                (cond ((= T readOnly) :vlax-true)
  11.                      ((:vlax-false)))))
  12.    (cond (f (prompt "\n** Command not available in SDI mode ** "))
  13.          ((prompt (strcat "\n** ""
  14.                           (strcase (vl-filename-base dwg))
  15.                           "" cannot be found ** "))))))
  16. (_OpenDwg
  17.    "F:\\DRAWINGS\\ARCHITECTURAL DETAILS\\NEW JOB\\NEW JOB TEMPLATE-7-8-13 - SMALL.dwg"
  18.    T)
  19. (princ))

 
 
谢谢
布瑞恩
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 06:30:47 | 显示全部楼层
 
我有一段时间没见到RenderMan了,但如果我可以问一下约会的情况。。。您是每天更改日期,希望通过对话框进行选择,还是总是希望打开最新和最棒的日期(不管实际日期本身)?
 
 
 
此外,我认为他不会介意我对他的代码稍加修改:
  1. (vl-load-com)
  2. (defun _OpenDwg (dwg readOnly / doc)
  3. ;; BlackBox... Inspired by RenderMan, CADTutor.net
  4. ;; Example: (_OpenDwg "FilePath\\FileName.dwg" T)
  5. ;; Return: T, if successful; otherwise nil.
  6. (and (not
  7.         (vl-catch-all-error-p
  8.           (setq doc (vl-catch-all-apply
  9.                       'vla-open
  10.                       (list (vla-get-documents (vlax-get-acad-object))
  11.                             dwg
  12.                             (if readOnly
  13.                               :vlax-true
  14.                               :vlax-false
  15.                             )
  16.                       )
  17.                     )
  18.           )
  19.         )
  20.       )
  21.       (not (vla-activate doc))
  22. )
  23. )
回复

使用道具 举报

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-6 06:36:47 | 显示全部楼层
只需在命令行上使用:
 
  1. (_OpenDwg "F:\\any_path_name_you_want\\any_filename_you_want.dwg" T)

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

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 06:44:54 | 显示全部楼层
 
... 如果像所有最近的文件一样,对所有项目使用SSM,情况并非如此。DST公司
 
 
同意,但这些对话框很少自动转到特定于项目的相对文件夹供用户选择(无需自定义)。。。因此,我要求提供上述额外信息。
 
干杯
回复

使用道具 举报

39

主题

180

帖子

141

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
195
发表于 2022-7-6 06:49:08 | 显示全部楼层
我只想打开最新和最棒的(不管实际日期本身)?唯一更新的是日期7-8-13。
 
谢谢
布瑞恩
回复

使用道具 举报

39

主题

180

帖子

141

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
195
发表于 2022-7-6 06:58:58 | 显示全部楼层
黑匣子,
 
有可能做到这一点吗?
我只想打开最新和最棒的(不管实际日期本身)?唯一更新的是日期7-8-13。
 
谢谢
布瑞恩
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:07:52 | 显示全部楼层
 
我仍然没有足够的信息,真的。。。好的,那么文件名内的日期是什么变化;总是今天吗?是否要提示您输入日期?日期是否始终采用这种格式(即MM-DD-YY)?
回复

使用道具 举报

39

主题

180

帖子

141

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
195
发表于 2022-7-6 07:10:58 | 显示全部楼层
问题1=不,不总是今天的日期,无论何时更新
问题2=如果我不必这样做,因为我每次都必须寻找它。
问题3=是的,这是格式
 
我希望这有帮助。谢谢
回复

使用道具 举报

39

主题

180

帖子

141

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
195
发表于 2022-7-6 07:19:29 | 显示全部楼层
黑匣子,
 
你需要更多信息来完成这项工作吗?
 
谢谢
布瑞恩
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 18:57 , Processed in 0.649981 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表