乐筑天下

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

[编程交流] 外部参照Lisp例程

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:30:41 | 显示全部楼层
 
否则会打印两次“Select Xref:”
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 07:34:36 | 显示全部楼层
可能是对的。我有时会忘记,并不是每个人都将cmdecho设置为0。
回复

使用道具 举报

33

主题

117

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2022-7-6 07:36:15 | 显示全部楼层
@李·麦克
 
优秀的编码从分离x-refs开始,又好又整洁。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:40:02 | 显示全部楼层
 
谢谢你,宝贝
回复

使用道具 举报

33

主题

117

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2022-7-6 07:44:49 | 显示全部楼层
@李·麦克,
 
只需快速查询一下。我尝试使用xref reload命令,但出现以下错误:
 
命令:xrr
; 错误:自动化错误。文件访问错误
 
我已经完成了该文件的电子传输,然后将所有x-references放置到相应的文件夹中。当我打开图形时,它会打开,但没有x参考,表示找不到x参考。因此,当例程运行时,显然无法找到要重新加载的x引用。但是,如果我将x参考复制到与图形相同的文件夹中,则在打开图形时会自动加载x参考,并且可以使用xrr例程卸载和重新加载。
 
我使用以下例程卸载x参考,而不是将其分离:
 
  1. (defun c:xru (/ tData XName);Identify/Unload Xref
  2.   (defun *error* (msg)
  3.      (princ " ")
  4.    )
  5.   (while
  6.      (setq tData (entget (car (entsel " Select Item to Test for Xref"))))
  7.      (if
  8.         (setq XName (cdr (assoc 2 tData)))
  9.             (if (assoc 1 (tblsearch "BLOCK" XName))
  10.                (progn
  11.                   (command ".xref" "u" XName)
  12.                   (prompt (strcat " Xref " XName " unloaded" ))
  13.                )
  14.                (princ " Block Selected - Try Again")
  15.             );if
  16.         (princ " Entity in Base Drawing - Try Again")
  17.      );if
  18.   );while
  19.   (princ)
  20. )

 
如果您能就如何解决此问题提供任何建议,我们将不胜感激。
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:46:15 | 显示全部楼层
 
在AutoCAD中打开图形时,图形文件所在的文件夹称为“工作目录”。
 
AutoCAD搜索文件时,首先搜索工作目录,然后搜索“选项”菜单中“文件”选项卡下的“支持文件搜索路径”列表。
 
因此,当外部参照文件放置在工作目录中时,AutoCAD尝试定位文件时会找到它们;这让我不禁要问:外部参照的路径类型是什么?
 
 
请注意,如果用户未能选择对象,您的代码将导致错误,因为entget函数将传递一个nil参数。但是,由于您重新定义了*error*函数,只打印一个空格而不显示错误消息,因此无法检测到此错误。
 
此外,由于您没有本地化*错误*符号,因此重新定义了内置AutoCAD*错误*处理程序,这意味着对于任何未定义自己的*错误*函数的AutoLISP程序,所有错误消息都不会被检测到。请阅读我关于错误处理和变量本地化的教程,以更好地理解这种做法。
回复

使用道具 举报

33

主题

117

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2022-7-6 07:49:37 | 显示全部楼层
嗨,李,
 
x参考的路径如下:
 
E: \Southwark parking estates\estates TMA和RTRA-INV\u AREA 4\TQ Mastermap\TQ3374NW。图纸
 
绘制路径如下:
 
E: \Southwark parking estates\estates TMA and RTRA-INV\u区域4\estates TMA and RTRA-INV\u区域4。图纸
 
当我尝试使用xrr命令重新加载卸载的x引用时,就会出现问题。
 
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:52:41 | 显示全部楼层
外部参照路径类型是什么?i、 e.绝对/相对/无?
回复

使用道具 举报

33

主题

117

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2022-7-6 07:54:36 | 显示全部楼层
李,
 
如何确定路径是否为绝对/相对/无?
 
目前它们在记忆棒上,所以我要说它们是绝对的,因为它们包括本地硬盘驱动器号或网络服务器驱动器号。
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:59:11 | 显示全部楼层
 
这可以从外部参照选项板(命令行处的外部参照)中确定,该选项板列出了图形中包含的所有文件参照。
 
文件引用的“保存路径”属性是用于确定该引用的源文件位置的路径。“保存路径”(即完整/相对/无)的性质是在图形中插入外部参照时设置的,可以是完整路径(指向外部参照源文件位置的绝对路径)、相对路径(相对于插入外部参照的图形文件位置的路径),或无(即没有路径与外部参照关联,AutoCAD尝试从支持路径或工作目录中获取外部参照文件)。
 
 
路径类型不取决于外部参照文件的位置,而是取决于此类文件在主图形中的参照方式。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-9 18:59 , Processed in 0.629818 second(s), 70 queries .

© 2020-2025 乐筑天下

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