找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 185|回复: 0

[API应用] XDrxAPI 15 个 Attribute 函数帮助手册

[复制链接]

已领礼包: 145个

财富等级: 日进斗金

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

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

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

×
1
函数名称: xdrx-attribute-fieldlength

描述:
获取属性字段的长度

调用格式:
(xdrx-attribute-fieldlength <属性实体>)

参数说明:
* <属性实体>: 属性实体对象(RTENAME)

返回值:
返回属性字段的长度(整数)

示例用法1:
(xdrx-attribute-fieldlength ent)
; 获取指定属性实体的字段长度

示例用法2:
(setq len (xdrx-attribute-fieldlength (car (entsel))))
; 交互选择属性实体并获取其字段长度

注意事项:
1. 仅适用于AcDbAttribute类型实体
2. 返回值为字段定义的长度限制
3. 实际内容长度可能小于返回值
------------------------------------------------------------
2
函数名称: xdrx-attribute-isconstant

描述:
判断属性是否为常量属性

调用格式:
(xdrx-attribute-isconstant <属性实体>)

参数说明:
* <属性实体>: 属性实体对象(RTENAME)

返回值:
是常量属性返回T,否则返回nil

示例用法1:
(xdrx-attribute-isconstant ent)
; 判断指定属性是否为常量属性

示例用法2:
(if (xdrx-attribute-isconstant (car (entsel)))
    (princ "这是常量属性")
    (princ "这不是常量属性")
)
; 交互选择属性并判断

注意事项:
1. 仅适用于AcDbAttribute类型实体
2. 常量属性在块插入时不能修改
3. 返回值可直接用于条件判断
------------------------------------------------------------
3
函数名称: xdrx-attribute-isinvisible

描述:
判断属性是否不可见

调用格式:
(xdrx-attribute-isinvisible <属性实体>)

参数说明:
* <属性实体>: 属性实体对象(RTENAME)

返回值:
不可见返回T,否则返回nil

示例用法1:
(xdrx-attribute-isinvisible ent)
; 判断指定属性是否不可见

示例用法2:
(if (xdrx-attribute-isinvisible (car (entsel)))
    (princ "该属性不可见")
    (princ "该属性可见")
)
; 交互选择属性并判断可见性

注意事项:
1. 仅适用于AcDbAttribute类型实体
2. 不可见属性仍存在于图形中但不显示
3. 返回值可直接用于条件判断
------------------------------------------------------------
4
函数名称: xdrx-attribute-isPreset

描述:
判断属性是否为预设属性

调用格式:
(xdrx-attribute-isPreset <属性实体>)

参数说明:
* <属性实体>: 属性实体对象(RTENAME)

返回值:
是预设属性返回T,否则返回nil

示例用法1:
(xdrx-attribute-isPreset ent)
; 判断指定属性是否为预设属性

示例用法2:
(if (xdrx-attribute-isPreset (car (entsel)))
    (princ "这是预设属性")
    (princ "这不是预设属性")
)
; 交互选择属性并判断

注意事项:
1. 仅适用于AcDbAttribute类型实体
2. 预设属性在块插入时不提示输入值
3. 返回值可直接用于条件判断
------------------------------------------------------------
5
函数名称: xdrx-attribute-isVerifiable

描述:
判断属性是否可验证

调用格式:
(xdrx-attribute-isVerifiable <属性实体>)

参数说明:
* <属性实体>: 属性实体对象(RTENAME)

返回值:
可验证返回T,否则返回nil

示例用法1:
(xdrx-attribute-isVerifiable ent)
; 判断指定属性是否可验证

示例用法2:
(if (xdrx-attribute-isVerifiable (car (entsel)))
    (princ "该属性可验证")
    (princ "该属性不可验证")
)
; 交互选择属性并判断可验证性

注意事项:
1. 仅适用于AcDbAttribute类型实体
2. 可验证属性在插入时会检查输入值
3. 返回值可直接用于条件判断
------------------------------------------------------------
6
函数名称: xdrx-attribute-lockposition

描述:
判断属性位置是否锁定

调用格式:
(xdrx-attribute-lockposition <属性实体>)

参数说明:
* <属性实体>: 属性实体对象(RTENAME)

返回值:
位置锁定返回T,否则返回nil

示例用法1:
(xdrx-attribute-lockposition ent)
; 判断指定属性位置是否锁定

示例用法2:
(if (xdrx-attribute-lockposition (car (entsel)))
    (princ "该属性位置已锁定")
    (princ "该属性位置未锁定")
)
; 交互选择属性并判断位置锁定状态

注意事项:
1. 仅适用于AcDbAttribute类型实体
2. 锁定位置的属性不能移动
3. 返回值可直接用于条件判断
------------------------------------------------------------
7
函数名称: xdrx-attribute-setinvisible

描述:
设置属性的可见性

调用格式:
(xdrx-attribute-setinvisible <属性实体> [T])

参数说明:
* <属性实体>: 属性实体对象(RTENAME)
* [T]: 可选参数,存在则设置不可见,否则设置可见(RTT)

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

示例用法1:
(xdrx-attribute-setinvisible ent T)
; 设置属性不可见

示例用法2:
(xdrx-attribute-setinvisible ent)
; 设置属性可见

注意事项:
1. 仅适用于AcDbAttribute类型实体
2. 不可见属性仍存在于图形中但不显示
3. 可随时切换可见性状态
------------------------------------------------------------
8
函数名称: xdrx-attribute-settag

描述:
设置属性的标签

调用格式:
(xdrx-attribute-settag <属性实体> <新标签>)

参数说明:
* <属性实体>: 属性实体对象(RTENAME)
* <新标签>: 新的属性标签字符串(RTSTR)

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

示例用法1:
(xdrx-attribute-settag ent "新标签")
; 设置属性的标签为"新标签"

示例用法2:
(xdrx-attribute-settag (car (entsel)) "编号")
; 交互选择属性并设置标签为"编号"

注意事项:
1. 仅适用于AcDbAttribute类型实体
2. 标签是属性的唯一标识符
3. 修改标签不会影响属性值
------------------------------------------------------------
9
函数名称: xdrx-attribute-tag

描述:
获取属性的标签

调用格式:
(xdrx-attribute-tag <属性实体>)

参数说明:
* <属性实体>: 属性实体对象(RTENAME)

返回值:
返回属性标签字符串

示例用法1:
(xdrx-attribute-tag ent)
; 获取指定属性的标签

示例用法2:
(princ (strcat "属性标签是: " (xdrx-attribute-tag (car (entsel))))
; 交互选择属性并显示其标签

注意事项:
1. 仅适用于AcDbAttribute类型实体
2. 标签是属性的唯一标识符
3. 返回值可直接用于字符串操作
------------------------------------------------------------
10
函数名称: xdrx-attributedef-make

描述:
将文本或MTEXT转换为属性定义

调用格式:
(xdrx-attributedef-make <文本实体> [T])

参数说明:
* <文本实体>: 文本或MTEXT实体对象(RTENAME)
* [T]: 可选参数,存在则转换后删除原实体(RTT)

返回值:
成功返回新创建的属性定义实体名,失败返回nil

示例用法1:
(xdrx-attributedef-make ent)
; 将文本转换为属性定义(保留原文本)

示例用法2:
(xdrx-attributedef-make (car (entsel)) T)
; 交互选择文本并转换为属性定义(删除原文本)

注意事项:
1. 支持AcDbText和AcDbMText类型实体
2. 转换后会保留原文本的所有属性
3. 创建的属性定义可直接用于块定义
------------------------------------------------------------
11
函数名称: xdrx-attribute-setlockposition

描述:
设置属性位置锁定状态

调用格式:
(xdrx-attribute-setlockposition <属性实体> <锁定状态>)

参数说明:
* <属性实体>: 属性实体对象(RTENAME)
* <锁定状态>: 锁定状态字符串("1"锁定/"0"解锁)(RTSTR)

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

示例用法1:
(xdrx-attribute-setlockposition ent "1")
; 锁定属性位置

示例用法2:
(xdrx-attribute-setlockposition (car (entsel)) "0")
; 交互选择属性并解锁位置

注意事项:
1. 仅适用于AcDbAttribute类型实体
2. 锁定后属性位置不可移动
3. 可随时切换锁定状态
------------------------------------------------------------
12
函数名称: xdrx-attribute-isReallyLocked

描述:
判断属性是否真正锁定(考虑块参照中的锁定状态)

调用格式:
(xdrx-attribute-isReallyLocked <属性实体>)

参数说明:
* <属性实体>: 属性实体对象(RTENAME)

返回值:
真正锁定返回T,否则返回nil

示例用法1:
(xdrx-attribute-isReallyLocked ent)
; 判断属性是否真正锁定

示例用法2:
(if (xdrx-attribute-isReallyLocked (car (entsel)))
    (princ "属性已真正锁定")
    (princ "属性未真正锁定")
)
; 交互选择属性并判断锁定状态

注意事项:
1. 仅适用于AcDbAttribute类型实体
2. 考虑块参照中的锁定状态
3. 返回值可直接用于条件判断
------------------------------------------------------------
13
函数名称: xdrx-attribute-isMText

描述:
判断属性是否为多行文本属性

调用格式:
(xdrx-attribute-isMText <属性实体>)

参数说明:
* <属性实体>: 属性实体对象(RTENAME)

返回值:
是多行文本属性返回T,否则返回nil

示例用法1:
(xdrx-attribute-isMText ent)
; 判断指定属性是否为多行文本属性

示例用法2:
(if (xdrx-attribute-isMText (car (entsel)))
    (princ "这是多行文本属性")
    (princ "这不是多行文本属性")
)
; 交互选择属性并判断类型

注意事项:
1. 仅适用于AcDbAttribute类型实体
2. 多行文本属性支持复杂格式
3. 返回值可直接用于条件判断
------------------------------------------------------------
14
函数名称: xdrx-attribute-updateMText

描述:
更新多行文本属性

调用格式:
(xdrx-attribute-updateMText <多行文本属性实体>)

参数说明:
* <多行文本属性实体>: 多行文本属性实体对象(RTENAME)

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

示例用法1:
(xdrx-attribute-updateMText ent)
; 更新指定的多行文本属性

示例用法2:
(if (xdrx-attribute-updateMText (car (entsel)))
    (princ "多行文本属性更新成功")
    (princ "更新失败或不是多行文本属性")
)
; 交互选择属性并更新

注意事项:
1. 仅适用于多行文本属性(AcDbAttribute)
2. 更新后会重新计算文本布局
3. 修改文本内容后建议调用此函数
------------------------------------------------------------
15
函数名称: xdrx-attribute-to-mtext

描述:
将普通属性转换为多行文本属性

调用格式:
(xdrx-attribute-to-mtext <属性实体>)

参数说明:
* <属性实体>: 属性实体对象(RTENAME)

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

示例用法1:
(xdrx-attribute-to-mtext ent)
; 将指定属性转换为多行文本属性

示例用法2:
(if (xdrx-attribute-to-mtext (car (entsel)))
    (princ "转换成功")
    (princ "转换失败或已是多行文本属性")
)
; 交互选择属性并转换

注意事项:
1. 仅适用于普通属性(AcDbAttribute)
2. 转换后会保留原属性内容
3. 转换后的属性支持多行文本格式
------------------------------------------------------------


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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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