找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 137|回复: 0

[API应用] XDrxAPI 16 个 XREF 函数帮助文档

[复制链接]

已领礼包: 145个

财富等级: 日进斗金

发表于 2025-5-22 15:55:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1
函数名称: xdrx-xref-allocate-name
函数别名: xdrx-xref-createblockname

描述:
为外部参照分配唯一的块名称

调用格式:
(xdrx-xref-allocate-name <外部参照路径>)

参数说明:
* <外部参照路径>: 外部参照文件路径(RTSTR)

返回值:
生成的唯一块名称字符串

示例用法1:
(xdrx-xref-allocate-name "D:/drawings/外部参照.dwg")
; 返回类似"外部参照$0$12345"的唯一名称

注意事项:
1. 返回的名称保证在当前图纸中唯一
2. 名称基于文件路径自动生成
3. 用于后续外部参照绑定操作
------------------------------------------------------------
2
函数名称: xdrx-xref-attach

描述:
附加外部参照到当前图纸

调用格式:
(xdrx-xref-attach <外部参照路径> <块名称> [插入点] [旋转角度] [X比例] [Y比例] [Z比例] [数据库] [密码] [T])

参数说明:
* <外部参照路径>: 外部参照文件路径(RTSTR)
* <块名称>: 外部参照的块名称(RTSTR)
* [插入点]: 外部参照插入点(RT3DPOINT)
* [旋转角度]: 旋转角度(弧度)(RTREAL/RTSHORT)
* [X比例]: X方向缩放比例(RTREAL/RTSHORT)
* [Y比例]: Y方向缩放比例(RTREAL/RTSHORT)
* [Z比例]: Z方向缩放比例(RTREAL/RTSHORT)
* [数据库]: 目标数据库(RTENAME)
* [密码]: 外部参照密码(RTSTR)
* [T]: 显示附加对话框(RTT)

返回值:
包含外部参照实体和块表记录实体的列表

示例用法1:
(xdrx-xref-attach "D:/xref.dwg" "外部参照1" '(0 0 0) 0.0 1.0 1.0 1.0)
; 在原点附加外部参照,不旋转,比例1:1:1

示例用法2:
(xdrx-xref-attach "D:/xref.dwg" "外部参照1" '(100 100 0) (/ pi 4) 0.5 0.5 1.0)
; 在(100,100)附加,旋转45度,XY比例0.5

注意事项:
1. 前两个参数是必须的
2. 默认插入点为(0,0,0),旋转角度0,比例1:1:1
3. 返回的列表中第一个元素是外部参照实体,第二个是块表记录
4. 密码参数用于加密的外部参照
------------------------------------------------------------
3
函数名称: xdrx-xref-bind

描述:
绑定外部参照到当前图纸

调用格式:
(xdrx-xref-bind <块名/块参照> [数据库] [T] [T])

参数说明:
* <块名/块参照>: 外部参照块名或块参照实体(RTSTR/RTENAME)
* [数据库]: 目标数据库(RTENAME)
* [T]: 第一个T表示使用插入绑定方式(RTT)
* [T]: 第二个T表示显示绑定对话框(RTT)

返回值:
绑定成功返回T,否则返回nil

示例用法1:
(xdrx-xref-bind "外部参照1")
; 绑定名为"外部参照1"的外部参照

示例用法2:
(xdrx-xref-bind blkref T)
; 使用插入绑定方式绑定块参照

示例用法3:
(xdrx-xref-bind "外部参照1" T T)
; 使用插入绑定方式并显示对话框

注意事项:
1. 默认使用绑定方式(保留外部参照命名结构)
2. 使用插入绑定方式会合并外部参照到当前图纸
3. 绑定后外部参照变为普通块
------------------------------------------------------------
4
函数名称: xdrx-xref-clone
函数别名: xdrx-xref-ncopy

描述:
克隆外部参照中的指定实体

调用格式:
(xdrx-xref-clone <块参照> <实体1> <实体2> ...)

参数说明:
* <块参照>: 外部参照块实体(RTENAME)
* <实体1> <实体2> ...: 要克隆的实体列表(RTENAME)

返回值:
成功返回T,否则返回nil

示例用法1:
(xdrx-xref-clone blkref ent1 ent2 ent3)
; 克隆外部参照中的三个实体

示例用法2:
(setq ents (xdrx-ss->ents (ssget)))
(xdrx-xref-clone blkref (car ents) (cadr ents))
; 克隆选择集中的前两个实体

注意事项:
1. 第一个参数必须是外部参照块实体
2. 克隆的实体将保持原始位置和属性
3. 适用于从外部参照中提取特定实体
------------------------------------------------------------
5
函数名称: xdrx-xref-dbresolve

描述:
解析当前图纸中的外部参照

调用格式:
(xdrx-xref-dbresolve [数据库] [T] [T])

参数说明:
* [数据库]: 目标数据库(RTENAME)
* [T]: 第一个T表示使用线程引擎(RTT),NIL表示不使用
* [T]: 第二个T表示仅解析新参照(RTT),NIL表示解析所有

返回值:
成功返回T,否则返回nil

示例用法1:
(xdrx-xref-dbresolve)
; 使用默认设置解析所有外部参照

示例用法2:
(xdrx-xref-dbresolve T T)
; 使用线程引擎仅解析新参照

注意事项:
1. 仅支持AutoCAD 2005及以上版本
2. 默认使用线程引擎并解析所有参照
3. 解析可更新外部参照的最新状态
------------------------------------------------------------
6
函数名称: xdrx-xref-detach

描述:
从当前图纸中分离外部参照

调用格式:
(xdrx-xref-detach <块名/块参照> [数据库] [T])

参数说明:
* <块名/块参照>: 外部参照块名或块参照实体(RTSTR/RTENAME)
* [数据库]: 目标数据库(RTENAME)
* [T]: 显示分离对话框(RTT)

返回值:
分离成功返回T,否则返回nil

示例用法1:
(xdrx-xref-detach "外部参照1")
; 分离名为"外部参照1"的外部参照

示例用法2:
(xdrx-xref-detach blkref T)
; 分离块参照并显示对话框

注意事项:
1. 分离操作不可撤销
2. 默认静默模式不显示对话框
3. 分离后外部参照定义将从图纸中移除
------------------------------------------------------------
7
函数名称: xdrx-xref-edresolve

描述:
解析当前编辑中的外部参照

调用格式:
(xdrx-xref-edresolve [数据库] [T])

参数说明:
* [数据库]: 目标数据库(RTENAME)
* [T]: 显示解析对话框(RTT)

返回值:
解析成功返回T,否则返回nil

示例用法1:
(xdrx-xref-edresolve)
; 静默解析所有编辑中的外部参照

示例用法2:
(xdrx-xref-edresolve T)
; 显示对话框解析外部参照

注意事项:
1. 仅解析当前编辑中的外部参照
2. 默认静默模式不显示对话框
3. 解析可更新外部参照到最新状态
------------------------------------------------------------
8
函数名称: xdrx-xref-get-graph

描述:
获取当前图纸的外部参照关系图

调用格式:
(xdrx-xref-get-graph [数据库] [T])

参数说明:
* [数据库]: 目标数据库(RTENAME)
* [T]: 包含幽灵参照(RTT)

返回值:
返回外部参照关系图实体

示例用法1:
(xdrx-xref-get-graph)
; 获取当前图纸的外部参照关系图

示例用法2:
(xdrx-xref-get-graph T)
; 获取包含幽灵参照的关系图

注意事项:
1. 关系图实体可用于分析外部参照层级
2. 默认不包含幽灵参照
3. 返回的实体需要手动释放
------------------------------------------------------------
9
函数名称: xdrx-xref-graph-make

描述:
创建新的外部参照关系图

调用格式:
(xdrx-xref-graph-make [参照图节点])

参数说明:
* [参照图节点]: 参照图节点实体(RTENAME)

返回值:
返回新建的外部参照关系图实体

示例用法1:
(xdrx-xref-graph-make)
; 创建空的外部参照关系图

示例用法2:
(setq node (xdrx-xref-get-graph))
(xdrx-xref-graph-make node)
; 基于现有节点创建关系图

注意事项:
1. 无参数时创建空关系图
2. 返回的实体需要手动释放
3. 可用于构建自定义参照关系
------------------------------------------------------------
10
函数名称: xdrx-xref-graph-node-make

描述:
创建外部参照关系图节点

调用格式:
(xdrx-xref-graph-node-make [参照名称] [块ID] [数据库] [状态])

参数说明:
* [参照名称]: 外部参照名称(RTSTR)
* [块ID]: 块表记录ID(RTENAME)
* [数据库]: 目标数据库(RTENAME)
* [状态]: 参照状态(RTSHORT)

返回值:
返回新建的参照图节点实体

示例用法1:
(xdrx-xref-graph-node-make)
; 创建空的参照图节点

示例用法2:
(xdrx-xref-graph-node-make "XREF1" blkId dbId 1)
; 创建指定参数的参照图节点

注意事项:
1. 无参数时创建空节点
2. 状态参数: 0=未解析,1=已解析,2=未找到
3. 返回的实体需要手动释放
------------------------------------------------------------
11
函数名称: xdrx-xref-list

描述:
列出当前图纸或指定图纸中的外部参照

调用格式:
(xdrx-xref-list [状态] [文件路径])

参数说明:
* [状态]: 参照状态过滤条件(RTT/RTNIL/RTSHORT)
* [文件路径]: 目标DWG文件路径(RTSTR)

返回值:
返回外部参照名称列表或实体列表

示例用法1:
(xdrx-xref-list)
; 列出当前图纸所有外部参照名称

示例用法2:
(xdrx-xref-list T)
; 列出当前图纸所有外部参照实体

示例用法3:
(xdrx-xref-list 1 "C:/drawing.dwg")
; 列出指定图纸中已解析的外部参照

注意事项:
1. 状态参数: 1=已解析,2=未解析,3=未找到,4=文件丢失,5=循环参照
2. 无参数时返回名称列表
3. 使用T参数返回实体列表
------------------------------------------------------------
12
函数名称: xdrx-xref-overlay

描述:
附加覆盖型外部参照到当前图纸

调用格式:
(xdrx-xref-overlay <文件路径> <块名> [插入点] [旋转角度] [X比例] [Y比例] [Z比例] [T] [数据库] [密码])

参数说明:
* <文件路径>: 外部参照文件路径(RTSTR)
* <块名>: 外部参照块名(RTSTR)
* [插入点]: 参照插入点(RT3DPOINT)
* [旋转角度]: 旋转角度(RTREAL/RTSHORT)
* [X比例]: X方向比例(RTREAL/RTSHORT)
* [Y比例]: Y方向比例(RTREAL/RTSHORT)
* [Z比例]: Z方向比例(RTREAL/RTSHORT)
* [T]: 显示对话框(RTT)
* [数据库]: 目标数据库(RTENAME)
* [密码]: DWG文件密码(RTSTR)

返回值:
成功返回(参照实体 块表记录),失败返回nil

示例用法1:
(xdrx-xref-overlay "C:/xref.dwg" "XREF1")
; 附加覆盖型外部参照

示例用法2:
(xdrx-xref-overlay "C:/xref.dwg" "XREF1" '(0 0 0) 0 1 1 1)
; 指定位置和比例附加参照

注意事项:
1. 覆盖型参照不会嵌套显示
2. 默认比例为1:1:1
3. 默认插入点为原点
4. 需要文件访问权限
------------------------------------------------------------
13
函数名称: xdrx-xref-reload

描述:
重新加载指定的外部参照

调用格式:
(xdrx-xref-reload <块名/块参照> [数据库] [T])

参数说明:
* <块名/块参照>: 外部参照块名或块参照实体(RTSTR/RTENAME)
* [数据库]: 目标数据库(RTENAME)
* [T]: 显示重载对话框(RTT)

返回值:
重载成功返回T,否则返回nil

示例用法1:
(xdrx-xref-reload "外部参照1")
; 重载名为"外部参照1"的外部参照

示例用法2:
(xdrx-xref-reload blkref T)
; 重载块参照并显示对话框

注意事项:
1. 重载会更新外部参照到最新版本
2. 默认静默模式不显示对话框
3. 需要外部参照文件可访问
------------------------------------------------------------
14
函数名称: xdrx-xref-repath

描述:
修改外部参照的路径

调用格式:
(xdrx-xref-repath <参照文件名> <新路径>)

参数说明:
* <参照文件名>: 外部参照文件名(RTSTR)
* <新路径>: 新的参照文件路径(RTSTR)

返回值:
修改成功返回T,否则返回nil

示例用法1:
(xdrx-xref-repath "外部参照1.dwg" "C:/新路径/")
; 修改外部参照1的路径

示例用法2:
(xdrx-xref-repath "建筑.dwg" "D:/项目/最新版本/")
; 更新建筑参照的路径

注意事项:
1. 路径可以是绝对路径或相对路径
2. 仅修改路径,不重新加载参照
3. 需要文件访问权限
------------------------------------------------------------
16
函数名称: xdrx-xref-xbind

描述:
将外部参照中的对象绑定到当前图纸

调用格式:
(xdrx-xref-xbind <实体列表> [数据库] [T])

参数说明:
* <实体列表>: 要绑定的对象实体列表(RTENAME)
* [数据库]: 目标数据库(RTENAME)
* [T]: 显示绑定对话框(RTT)

返回值:
绑定成功返回T,否则返回nil

示例用法1:
(xdrx-xref-xbind (list ent1 ent2))
; 绑定指定实体到当前图纸

示例用法2:
(xdrx-xref-xbind (list ent1 ent2) T)
; 绑定实体并显示对话框

注意事项:
1. 绑定后对象成为当前图纸的一部分
2. 默认静默模式不显示对话框
3. 绑定后原外部参照仍保留
------------------------------------------------------------


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-10-1 16:26 , Processed in 0.385062 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表