乐筑天下

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

[编程交流] 关闭后续图形

[复制链接]

6

主题

25

帖子

19

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-5 17:03:35 | 显示全部楼层 |阅读模式
我正在创建一个lisp,以将所有后续图形关闭到当前图形。(当前右侧的文件选项卡)下面是我能得到的最接近的,但偶尔我会得到“错误:自动化错误”。绘图很忙。”
 
  1. (defun c:Close-Subsq-dwgs (/ acadx cur docs dwg nds num)
  2. (vl-load-com)
  3. (setq cur (getvar 'dwgname))  
  4.    (setq acadx (vlax-get-acad-object)         ;Get AutoCAD ActiveX object
  5.            docs (vla-get-Documents acadx)  ;Get collection of open documents
  6.            nds (1- (vla-get-Count docs))         ;Gets number of open docs
  7.            num 0)
  8. (while (/= (vla-get-name (vla-item docs nds)) cur)
  9.    (setq dwg (vla-item docs nds))
  10.     (if (/= 0 (vlax-variant-value (vla-getvariable dwg "DBMOD")))
  11.       (vla-save dwg)
  12.      )
  13. (vla-close dwg :vlax-False)
  14. (setq num (1+ num)
  15.            nds (1- nds))
  16. )
  17. (princ (strcat "\n " (itoa num) " Drawings closed"))
  18. (princ)
  19. )

 
 
我认为需要:(vla-^c^c dwg)取消vla访问的图形中发生的任何事情,但没有这样的命令。有人知道解决方案吗?
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 18:57:49 | 显示全部楼层
嗨,西蒙,
 
 
认为问题在于从curdwg和vla getname中获得的名称。同时使用while意味着一旦处理的文档是当前dwg,循环就会停止。不管怎样,我通常用这个:
 
 
祝你好运,Rlx组
 
 
ps不保存退出我使用
 
 
  1. 2

 
 
已经有几个月没有编码了,所以我可能有点生疏;-)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 02:11 , Processed in 2.557615 second(s), 56 queries .

© 2020-2025 乐筑天下

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