XDSoft 发表于 2025-5-27 03:38:38

XDrxAPI 52 个 Layer/LayerState 函数帮助手册

1
函数名称: xdrx-layer-override-p

描述:
检查图层是否有任何属性覆盖

调用格式:
(xdrx-layer-override-p <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- t: 图层有属性覆盖
- nil: 无覆盖或检查失败

示例用法:
(xdrx-layer-override-p "0") ; 检查"0"图层是否有覆盖
(xdrx-layer-override-p ent) ; 检查指定图层实体是否有覆盖

注意事项:
1. 覆盖包括颜色、线型等属性的修改
2. 仅检查当前空间(模型/布局)
3. 不存在的图层返回nil
4. 世界图层(WORLD)始终返回nil
------------------------------------------------------------
2
函数名称: xdrx-layer-remove-alloverrides

描述:
移除图层的所有属性覆盖设置

调用格式:
(xdrx-layer-remove-alloverrides <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- t: 移除成功
- nil: 移除失败

示例用法:
(xdrx-layer-remove-alloverrides "0") ; 移除"0"图层的所有覆盖
(xdrx-layer-remove-alloverrides ent) ; 移除指定图层的所有覆盖

注意事项:
1. 会移除颜色、线型等所有属性覆盖
2. 仅影响当前空间(模型/布局)
3. 不存在的图层返回nil
4. 世界图层(WORLD)不受影响
5. 操作不可撤销
------------------------------------------------------------
3
函数名称: xdrx-layer-hidden-p

描述:
检查图层是否被隐藏

调用格式:
(xdrx-layer-hidden-p <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- t: 图层被隐藏
- nil: 图层未隐藏或检查失败

示例用法:
(xdrx-layer-hidden-p "0") ; 检查"0"图层是否隐藏
(xdrx-layer-hidden-p ent) ; 检查指定图层是否隐藏

注意事项:
1. 仅检查图层的隐藏状态
2. 不影响图层的冻结状态
3. 不存在的图层返回nil
4. 世界图层(WORLD)始终返回nil
5. 结果反映当前空间状态
------------------------------------------------------------
4
函数名称: xdrx-layer-getmaterial

描述:
获取图层关联的材质实体

调用格式:
(xdrx-layer-getmaterial <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- 材质实体名: 获取成功
- nil: 获取失败

示例用法:
(xdrx-layer-getmaterial "0") ; 获取"0"图层的材质
(xdrx-layer-getmaterial ent) ; 获取指定图层的材质

注意事项:
1. 返回材质实体名(ename)
2. 无材质关联时返回nil
3. 不存在的图层返回nil
4. 世界图层(WORLD)返回nil
5. 材质实体可通过其他函数进一步查询
------------------------------------------------------------
5
函数名称: xdrx-layer-getdesc

描述:
获取图层的描述信息

调用格式:
(xdrx-layer-getdesc <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- 字符串: 图层的描述信息
- nil: 获取失败或描述为空

示例用法:
(xdrx-layer-getdesc "0") ; 获取"0"图层的描述
(xdrx-layer-getdesc ent) ; 获取指定图层的描述

注意事项:
1. 返回描述字符串
2. 无描述时返回nil
3. 不存在的图层返回nil
4. 世界图层(WORLD)返回nil
5. 描述信息可能包含多行文本
------------------------------------------------------------
6
函数名称: xdrx-layer-inuse-p

描述:
检查图层是否被图形对象使用

调用格式:
(xdrx-layer-inuse-p <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- t: 图层被使用
- nil: 图层未被使用或检查失败

示例用法:
(xdrx-layer-inuse-p "0") ; 检查"0"图层是否被使用
(xdrx-layer-inuse-p ent) ; 检查指定图层是否被使用

注意事项:
1. 检查当前图形中是否有对象使用该图层
2. 包括可见和不可见对象
3. 不存在的图层返回nil
4. 世界图层(WORLD)始终返回t
5. 结果反映当前图形状态
------------------------------------------------------------
7
函数名称: xdrx-layer-getcolor

描述:
获取图层的颜色信息

调用格式:
(xdrx-layer-getcolor <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- 整数: 索引颜色号(ACI)
- 列表: 真彩色(R G B)格式
- nil: 获取失败

示例用法:
(xdrx-layer-getcolor "0") ; 获取"0"图层颜色
(xdrx-layer-getcolor ent) ; 获取指定图层颜色

注意事项:
1. 索引色返回0-256的整数
2. 真彩色返回(R G B)列表
3. 不存在的图层返回nil
4. 世界图层(WORLD)返回7(白色)
5. 结果包含图层替代色
------------------------------------------------------------
8
函数名称: xdrx-layer-getlinetype

描述:
获取图层的线型信息

调用格式:
(xdrx-layer-getlinetype <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- 列表: (线型名称 . 线型实体名)
- nil: 获取失败

示例用法:
(xdrx-layer-getlinetype "0") ; 获取"0"图层线型
(xdrx-layer-getlinetype ent) ; 获取指定图层线型

注意事项:
1. 返回(线型名 . 实体名)的关联表
2. 默认线型为"Continuous"
3. 不存在的图层返回nil
4. 世界图层(WORLD)返回("Continuous" . <实体名>)
5. 结果包含图层替代线型
------------------------------------------------------------
9
函数名称: xdrx-layer-getlineweight

描述:
获取图层的线宽设置

调用格式:
(xdrx-layer-getlineweight <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- 整数: 线宽值(毫米*100)
- nil: 获取失败

示例用法:
(xdrx-layer-getlineweight "0") ; 获取"0"图层线宽
(xdrx-layer-getlineweight ent) ; 获取指定图层线宽

注意事项:
1. 返回值为毫米*100的整数值
2. 0表示默认线宽
3. -1表示随层线宽
4. -2表示随块线宽
5. -3表示线宽未设置
------------------------------------------------------------
10
函数名称: xdrx-layer-getplotstyle

描述:
获取图层的打印样式信息

调用格式:
(xdrx-layer-getplotstyle <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- 列表: (打印样式名称 . 打印样式实体名)
- nil: 获取失败

示例用法:
(xdrx-layer-getplotstyle "0") ; 获取"0"图层打印样式
(xdrx-layer-getplotstyle ent) ; 获取指定图层打印样式

注意事项:
1. 返回(打印样式名 . 实体名)的关联表
2. 默认打印样式为"Normal"
3. 不存在的图层返回nil
4. 世界图层(WORLD)返回("Normal" . <实体名>)
5. 结果包含图层替代打印样式
------------------------------------------------------------
11
函数名称: xdrx-layer-getproperty

描述:
获取图层的所有属性信息

调用格式:
(xdrx-layer-getproperty <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
属性列表包含以下项:
- "Color": 颜色值(RGB列表或索引)
- "LineType": 线型名称(字符串)
- "LineWeight": 线宽值(整数)
- "PlotStyle": 打印样式(名称和实体名)
- "Material": 材质实体名
- "Frozen": 是否冻结(T/nil)
- "Locked": 是否锁定(T/nil)
- "Off": 是否关闭(T/nil)
- "Hidden": 是否隐藏(T/nil)
- "Plottable": 是否可打印(T/nil)
- "Vpdflt": 视口冻结状态(T/nil)
- "Transparency": 透明度设置

示例用法:
(xdrx-layer-getproperty "0")
; 返回示例:
; (("Color" (0 0 0)) ("LineType" "Continuous") ("LineWeight" -3)
;("PlotStyle" "Color_7" <Entity name: 1>) ("Material" <Entity name: 1f119ebaee0>)
;("Frozen" nil) ("Locked" nil) ("Off" nil) ("Hidden" nil)
;("Plottable" T) ("Vpdflt" nil) ("Transparency" "ByLayer"))

注意事项:
1. 颜色值可能是RGB列表或索引整数
2. 线宽值: -3=未设置, -2=随块, -1=随层
3. 打印样式包含名称和实体名
4. 所有开关属性用T/nil表示状态
5. 透明度可以是"ByLayer"/"ByBlock"/具体值
------------------------------------------------------------
12
函数名称: xdrx-layer-gettransp

描述:
获取图层的透明度设置

调用格式:
(xdrx-layer-gettransp <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- 字符串: "ByLayer"或"ByBlock"
- 列表: ("ByAlpha" 透明度值)
- nil: 获取失败

示例用法:
(xdrx-layer-gettransp "0") ; 获取"0"图层透明度
(xdrx-layer-gettransp ent) ; 获取指定图层透明度

注意事项:
1. 返回"ByLayer"表示随层透明度
2. 返回"ByBlock"表示随块透明度
3. 返回("ByAlpha" 值)表示具体透明度值
4. 不存在的图层返回nil
5. 世界图层(WORLD)返回"ByLayer"
------------------------------------------------------------
13
函数名称: xdrx-layer-getvpdflt

描述:
检查图层是否在新视口中默认冻结

调用格式:
(xdrx-layer-getvpdflt <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- t: 在新视口中默认冻结
- nil: 不冻结或检查失败

示例用法:
(xdrx-layer-getvpdflt "0") ; 检查"0"图层是否在新视口冻结
(xdrx-layer-getvpdflt ent) ; 检查指定图层是否在新视口冻结

注意事项:
1. 仅检查新视口默认冻结状态
2. 不影响当前视口冻结状态
3. 不存在的图层返回nil
4. 世界图层(WORLD)始终返回nil
5. 结果反映图层对象属性设置
------------------------------------------------------------
14
函数名称: xdrx-layer-frozen-p

描述:
检查图层是否冻结

调用格式:
(xdrx-layer-frozen-p <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- t: 图层已冻结
- nil: 未冻结或检查失败

示例用法:
(xdrx-layer-frozen-p "0") ; 检查"0"图层是否冻结
(xdrx-layer-frozen-p ent) ; 检查指定图层是否冻结

注意事项:
1. 检查当前图层冻结状态
2. 不影响图层实际冻结状态
3. 不存在的图层返回nil
4. 世界图层(WORLD)始终返回nil
5. 结果反映图层当前冻结状态
------------------------------------------------------------
15
函数名称: xdrx-layer-locked-p

描述:
检查图层是否锁定

调用格式:
(xdrx-layer-locked-p <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- t: 图层已锁定
- nil: 未锁定或检查失败

示例用法:
(xdrx-layer-locked-p "0") ; 检查"0"图层是否锁定
(xdrx-layer-locked-p ent) ; 检查指定图层是否锁定

注意事项:
1. 检查当前图层锁定状态
2. 不影响图层实际锁定状态
3. 不存在的图层返回nil
4. 世界图层(WORLD)始终返回nil
5. 结果反映图层当前锁定状态
------------------------------------------------------------
16
函数名称: xdrx-layer-plottable-p

描述:
检查图层是否可打印

调用格式:
(xdrx-layer-plottable-p <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- t: 图层可打印
- nil: 不可打印或检查失败

示例用法:
(xdrx-layer-plottable-p "0") ; 检查"0"图层是否可打印
(xdrx-layer-plottable-p ent) ; 检查指定图层是否可打印

注意事项:
1. 检查当前图层打印状态
2. 不影响图层实际打印设置
3. 不存在的图层返回nil
4. 世界图层(WORLD)始终返回t
5. 结果反映图层当前打印状态
------------------------------------------------------------
17
函数名称: xdrx-layer-off-p

描述:
检查图层是否关闭

调用格式:
(xdrx-layer-off-p <图层>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)

返回值:
- t: 图层已关闭
- nil: 未关闭或检查失败

示例用法:
(xdrx-layer-off-p "0") ; 检查"0"图层是否关闭
(xdrx-layer-off-p ent) ; 检查指定图层是否关闭

注意事项:
1. 检查当前图层关闭状态
2. 不影响图层实际关闭状态
3. 不存在的图层返回nil
4. 结果反映图层当前关闭状态
------------------------------------------------------------
18
函数名称: xdrx-layer-make

描述:
创建或修改图层并设置属性

调用格式:
(xdrx-layer-make <图层名> [线型] [颜色] [设为当前])

参数说明:
<图层名> - 必选,图层名称(字符串)
[线型] - 可选,线型名称(字符串)
[颜色] - 可选,颜色索引(整数)或RGB列表(如(255 0 0))
[设为当前] - 可选,t表示设为当前图层

返回值:
- 图层实体名: 操作成功
- nil: 操作失败

示例用法:
(xdrx-layer-make "新建图层") ; 创建新图层
(xdrx-layer-make "图层1" "DASHED" 1) ; 设置线型和颜色
(xdrx-layer-make "当前层" nil nil t) ; 设为当前图层

注意事项:
1. 图层不存在时会自动创建
2. 颜色可以是索引或RGB值
3. 设为当前图层需传入t参数
4. 参数顺序必须保持一致
5. 保留原有未指定的属性
------------------------------------------------------------
19
函数名称: xdrx-layer-ref

描述:
检查图层引用状态,返回被引用和未被引用的图层列表

调用格式:
(xdrx-layer-ref)

参数说明:
无参数

返回值:
- 列表: 包含两个子列表:
* ("InUse" (("图层名1" <实体名1>) ("图层名2" <实体名2>) ...))
* ("UnUse" (("图层名A" <实体名A>) ("图层名B" <实体名B>) ...))
- nil: 检查失败

示例用法:
(xdrx-layer-ref)
; 可能返回: (("InUse" (("0" <Entity name: 7ffff706880>) ("标注" <Entity name: 7ffff706900>)))
;         ("UnUse" (("图层1" <Entity name: 7ffff706910>) ("临时" <Entity name: 7ffff706920>))))

注意事项:
1. 返回当前图形中所有图层的引用状态
2. 结果包含图层名和实体名
3. 世界图层(WORLD)始终出现在"InUse"列表
4. 空图形可能返回空列表
5. 不修改任何图层状态
------------------------------------------------------------
20
函数名称: xdrx-layer-setcolor

描述:
设置图层颜色

调用格式:
(xdrx-layer-setcolor <图层> <颜色>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)
<颜色> - 必选,颜色索引(整数)或RGB列表(如(255 0 0))

返回值:
- t: 设置成功
- nil: 设置失败

示例用法:
(xdrx-layer-setcolor "0" 1) ; 设置"0"图层为红色(索引1)
(xdrx-layer-setcolor ent '(255 0 0)) ; 设置指定图层为红色(RGB)

注意事项:
1. 支持索引颜色和RGB颜色
2. 颜色索引范围1-255
3. RGB值范围0-255
4. 不存在的图层返回nil
5. 修改立即生效
------------------------------------------------------------
21
函数名称: xdrx-layer-setfrozen

描述:
设置图层冻结状态

调用格式:
(xdrx-layer-setfrozen <图层> <状态>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)
<状态> - 必选,t表示冻结,nil表示解冻

返回值:
- t: 设置成功
- nil: 设置失败

示例用法:
(xdrx-layer-setfrozen "0" t) ; 冻结"0"图层
(xdrx-layer-setfrozen ent nil) ; 解冻指定图层

注意事项:
1. 冻结的图层不可见且不参与重生成
2. 不影响图层在其他视口中的状态
3. 不存在的图层返回nil
4. 世界图层(WORLD)不能被冻结
5. 修改立即生效
------------------------------------------------------------
22
函数名称: xdrx-layer-sethidden

描述:
设置图层隐藏状态

调用格式:
(xdrx-layer-sethidden <图层> <状态>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)
<状态> - 必选,t表示隐藏,nil表示显示

返回值:
- t: 设置成功
- nil: 设置失败

示例用法:
(xdrx-layer-sethidden "0" t) ; 隐藏"0"图层
(xdrx-layer-sethidden ent nil) ; 显示指定图层

注意事项:
1. 隐藏的图层不可见但参与重生成
2. 不影响图层在其他视口中的状态
3. 不存在的图层返回nil
4. 世界图层(WORLD)不能被隐藏
5. 修改立即生效
------------------------------------------------------------
23
函数名称: xdrx-layer-setoff

描述:
设置图层关闭状态

调用格式:
(xdrx-layer-setoff <图层> <状态>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)
<状态> - 必选,t表示关闭,nil表示打开

返回值:
- t: 设置成功
- nil: 设置失败

示例用法:
(xdrx-layer-setoff "0" t) ; 关闭"0"图层
(xdrx-layer-setoff ent nil) ; 打开指定图层

注意事项:
1. 关闭的图层不可见且不参与重生成
2. 不影响图层在其他视口中的状态
3. 不存在的图层返回nil
4. 世界图层(WORLD)不能被关闭
5. 修改立即生效
------------------------------------------------------------
24
函数名称: xdrx-layer-setmaterial

描述:
设置图层材质

调用格式:
(xdrx-layer-setmaterial <图层> <材质实体名>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)
<材质实体名> - 必选,材质实体名

返回值:
- t: 设置成功
- nil: 设置失败

示例用法:
(xdrx-layer-setmaterial "0" material_ent) ; 设置"0"图层材质
(xdrx-layer-setmaterial ent material_ent) ; 设置指定图层材质

注意事项:
1. 材质必须已存在于图形中
2. 不存在的图层返回nil
3. 无效的材质实体名返回nil
4. 修改立即生效
5. 影响该图层上所有对象的渲染
------------------------------------------------------------
25
函数名称: xdrx-layer-setplottable

描述:
设置图层可打印状态

调用格式:
(xdrx-layer-setplottable <图层> <状态>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)
<状态> - 必选,t表示可打印,nil表示不可打印

返回值:
- t: 设置成功
- nil: 设置失败

示例用法:
(xdrx-layer-setplottable "0" t) ; 设置"0"图层可打印
(xdrx-layer-setplottable ent nil) ; 设置指定图层不可打印

注意事项:
1. 不可打印的图层不会出现在打印输出中
2. 不影响图层显示状态
3. 不存在的图层返回nil
4. 世界图层(WORLD)始终可打印
5. 修改立即生效
------------------------------------------------------------
26
函数名称: xdrx-layer-setlinetype

描述:
设置图层线型

调用格式:
(xdrx-layer-setlinetype <图层> <线型>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)
<线型> - 必选,线型实体名或名称(字符串)

返回值:
- t: 设置成功
- nil: 设置失败

示例用法:
(xdrx-layer-setlinetype "0" "Continuous") ; 设置"0"图层线型为实线
(xdrx-layer-setlinetype ent "DASHED") ; 设置指定图层线型为虚线

注意事项:
1. 线型必须已存在于图形中
2. 不存在的图层返回nil
3. 无效的线型名称返回nil
4. 修改立即生效
5. 影响该图层上所有对象的显示
------------------------------------------------------------
27
函数名称: xdrx-layer-setlineweight

描述:
设置图层线宽

调用格式:
(xdrx-layer-setlineweight <图层> <线宽>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)
<线宽> - 必选,线宽值(整数),范围0-211

返回值:
- t: 设置成功
- nil: 设置失败

示例用法:
(xdrx-layer-setlineweight "0" 25) ; 设置"0"图层线宽为0.25mm
(xdrx-layer-setlineweight ent 50) ; 设置指定图层线宽为0.50mm

注意事项:
1. 线宽值范围0-211,对应0.00mm-2.11mm
2. 0表示默认线宽
3. 不存在的图层返回nil
4. 无效的线宽值返回nil
5. 修改立即生效
------------------------------------------------------------
28
函数名称: xdrx-layer-setplotstyle

描述:
设置图层打印样式

调用格式:
(xdrx-layer-setplotstyle <图层> <打印样式>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)
<打印样式> - 必选,打印样式名称(字符串)

返回值:
- t: 设置成功
- nil: 设置失败

示例用法:
(xdrx-layer-setplotstyle "0" "Normal") ; 设置"0"图层打印样式为Normal
(xdrx-layer-setplotstyle ent "Color") ; 设置指定图层打印样式为Color

注意事项:
1. 打印样式必须已存在于图形中
2. 不存在的图层返回nil
3. 无效的打印样式名称返回nil
4. 修改立即生效
5. 影响该图层上所有对象的打印输出
------------------------------------------------------------
29
函数名称: xdrx-layer-setproperty

描述:
设置图层多个属性

调用格式:
(xdrx-layer-setproperty <图层> <属性名1> <属性值1> [<属性名2> <属性值2> ...])

参数说明:
<图层> - 必选,图层实体名或名称(字符串)
<属性名> - 必选,属性名称(字符串),支持以下属性:
"Color" - 颜色(索引值或RGB列表)
"Frozen" - 冻结状态(t/nil)
"Off" - 关闭状态(t/nil)
"Hidden" - 隐藏状态(t/nil)
"Locked" - 锁定状态(t/nil)
"LineType" - 线型(实体名或名称)
"LineWeight" - 线宽(整数)
"PlotStyle" - 打印样式(名称)
"Transparency" - 透明度("ByLayer"/"ByBlock"/"ByAlpha" )
"Description" - 描述(字符串)

返回值:
- t: 设置成功
- nil: 设置失败

示例用法:
(xdrx-layer-setproperty "0" "Color" 1 "Frozen" nil) ; 设置"0"图层颜色为红色,解冻
(xdrx-layer-setproperty ent "LineType" "DASHED" "LineWeight" 50) ; 设置虚线线型和0.5mm线宽

注意事项:
1. 支持同时设置多个属性
2. 不存在的图层返回nil
3. 无效的属性名或值会被忽略
4. 修改立即生效
5. 属性名区分大小写
------------------------------------------------------------
30
函数名称: xdrx-layer-settransp

描述:
设置图层透明度

调用格式:
(xdrx-layer-settransp <图层> <模式> [<透明度>])

参数说明:
<图层> - 必选,图层实体名或名称(字符串)
<模式> - 必选,透明度模式("ByLayer"/"ByBlock"/"ByAlpha")
<透明度> - 可选,仅当模式为"ByAlpha"时需要,透明度百分比(0-100整数)

返回值:
- t: 设置成功
- nil: 设置失败

示例用法:
(xdrx-layer-settransp "0" "ByAlpha" 50) ; 设置"0"图层50%透明度
(xdrx-layer-settransp ent "ByLayer") ; 设置指定图层透明度随层

注意事项:
1. 透明度百分比0表示完全透明,100表示完全不透明
2. 设置后会触发图形重生成
3. 不存在的图层返回nil
4. 无效的模式或透明度值返回nil
5. 修改立即生效
------------------------------------------------------------
31
函数名称: xdrx-layer-setvpdflt

描述:
设置图层在视口中的默认冻结状态

调用格式:
(xdrx-layer-setvpdflt <图层> <状态>)

参数说明:
<图层> - 必选,图层实体名或名称(字符串)
<状态> - 必选,t表示冻结,nil表示解冻

返回值:
- t: 设置成功
- nil: 设置失败

示例用法:
(xdrx-layer-setvpdflt "0" t) ; 设置"0"图层在新视口中默认冻结
(xdrx-layer-setvpdflt ent nil) ; 设置指定图层在新视口中默认解冻

注意事项:
1. 仅影响新建视口中的默认状态
2. 不影响现有视口中的图层状态
3. 不存在的图层返回nil
4. 修改立即生效
5. 与普通冻结状态(Frozen)相互独立
------------------------------------------------------------
32
函数名称: xdrx-layerstate-addlayers

描述:
向图层状态中添加图层

调用格式:
(xdrx-layerstate-addlayers <图层状态名> <图层1> [<图层2> ...])

参数说明:
<图层状态名> - 必选,图层状态名称(字符串)
<图层> - 必选,一个或多个图层实体名或名称(字符串)

返回值:
- t: 添加成功
- nil: 添加失败

示例用法:
(xdrx-layerstate-addlayers "MyState" "0" "1" ent) ; 向"MyState"状态添加图层0、1和指定图层
(xdrx-layerstate-addlayers "Working" "DIM") ; 向"Working"状态添加DIM图层

注意事项:
1. 仅支持AutoCAD 2008及以上版本
2. 不存在的图层会被忽略
3. 不存在的图层状态会自动创建
4. 可一次添加多个图层
5. 修改立即生效
------------------------------------------------------------
33
函数名称: xdrx-layerstate-database

描述:
获取图层状态关联的数据库

调用格式:
(xdrx-layerstate-database <图层状态名>)

参数说明:
<图层状态名> - 必选,图层状态名称(字符串)

返回值:
- 数据库实体名: 成功
- nil: 失败

示例用法:
(xdrx-layerstate-database "MyState") ; 获取"MyState"图层状态关联的数据库
(setq db (xdrx-layerstate-database "Working")) ; 保存"Working"状态的数据库到变量

注意事项:
1. 仅支持AutoCAD 2008及以上版本
2. 不存在的图层状态返回nil
3. 返回的数据库实体可用于后续操作
4. 当前图形数据库返回特殊标记
------------------------------------------------------------
34
函数名称: xdrx-layerstate-delete

描述:
删除指定的图层状态

调用格式:
(xdrx-layerstate-delete <图层状态名>)

参数说明:
<图层状态名> - 必选,要删除的图层状态名称(字符串)

返回值:
- 状态码: 操作结果状态码(0表示成功)

示例用法:
(xdrx-layerstate-delete "OldState") ; 删除名为"OldState"的图层状态
(xdrx-layerstate-delete "Temp") ; 删除临时图层状态

注意事项:
1. 成功删除返回状态码0
2. 不存在的图层状态返回非零状态码
3. 删除操作不可撤销
4. 不影响实际图层数据
------------------------------------------------------------
35
函数名称: xdrx-layerstate-dictid

描述:
获取图层状态字典的ID

调用格式:
(xdrx-layerstate-dictid )

参数说明:
- 可选,如果为t则表示不存在时创建新字典

返回值:
- 字典ID: 成功
- nil: 失败

示例用法:
(xdrx-layerstate-dictid) ; 获取现有图层状态字典ID
(xdrx-layerstate-dictid t) ; 获取或创建图层状态字典ID

注意事项:
1. 不指定参数时仅查询现有字典
2. 指定t参数时,不存在则创建新字典
3. 返回的字典ID可用于后续操作
4. 操作失败返回nil
------------------------------------------------------------
36
函数名称: xdrx-layerstate-export

描述:
导出图层状态到文件

调用格式:
(xdrx-layerstate-export <图层状态名> <文件名>)

参数说明:
<图层状态名> - 必选,要导出的图层状态名称(字符串)
<文件名> - 必选,导出目标文件名(字符串)

返回值:
- 状态码: 操作结果状态码(0表示成功)

示例用法:
(xdrx-layerstate-export "MyState" "C:/states/mystate.las") ; 导出"MyState"图层状态
(xdrx-layerstate-export "Working" "working_state.las") ; 导出"Working"状态到当前目录

注意事项:
1. 成功导出返回状态码0
2. 不存在的图层状态返回非零状态码
3. 文件扩展名通常使用.las
4. 需要有目标目录的写入权限
------------------------------------------------------------
37
函数名称: xdrx-layerstate-getdesc

描述:
获取图层状态的描述信息

调用格式:
(xdrx-layerstate-getdesc <图层状态名>)

参数说明:
<图层状态名> - 必选,图层状态名称(字符串)

返回值:
- 字符串: 描述信息
- nil: 获取失败

示例用法:
(xdrx-layerstate-getdesc "MyState") ; 获取"MyState"状态的描述
(setq desc (xdrx-layerstate-getdesc "Working")) ; 保存"Working"状态的描述到变量

注意事项:
1. 仅支持AutoCAD 2005及以上版本
2. 不存在的图层状态返回nil
3. 未设置描述的图层状态返回空字符串
4. 描述信息可能包含多行文本
------------------------------------------------------------
38
函数名称: xdrx-layerstate-getlaststate

描述:
获取最近恢复的图层状态信息

调用格式:
(xdrx-layerstate-getlaststate)

参数说明:
无参数

返回值:
- 列表: (状态名 状态ID) - 成功
- nil: 获取失败

示例用法:
(xdrx-layerstate-getlaststate) ; 获取最近恢复的图层状态
(setq last (xdrx-layerstate-getlaststate)) ; 保存最近状态信息到变量

注意事项:
1. 仅支持AutoCAD 2008及以上版本
2. 无恢复记录时返回nil
3. 返回的状态ID可用于后续操作
4. 结果反映最后一次成功恢复的状态
------------------------------------------------------------
39
函数名称: xdrx-layerstate-getlayers

描述:
获取图层状态包含的图层列表

调用格式:
(xdrx-layerstate-getlayers <图层状态名> )

参数说明:
<图层状态名> - 必选,图层状态名称(字符串)
- 可选,如果为t则获取未包含的图层

返回值:
- 图层名列表: 成功
- nil: 获取失败

示例用法:
(xdrx-layerstate-getlayers "MyState") ; 获取"MyState"状态包含的图层
(xdrx-layerstate-getlayers "Working" t) ; 获取"Working"状态未包含的图层

注意事项:
1. 仅支持AutoCAD 2008及以上版本
2. 不存在的图层状态返回nil
3. 无图层时返回空列表
4. 结果可用于图层过滤操作
------------------------------------------------------------
40
函数名称: xdrx-layerstate-getmask

描述:
获取图层状态的掩码值

调用格式:
(xdrx-layerstate-getmask <图层状态名>)

参数说明:
<图层状态名> - 必选,图层状态名称(字符串)

返回值:
- 整数: 掩码值
- nil: 获取失败

示例用法:
(xdrx-layerstate-getmask "MyState") ; 获取"MyState"状态的掩码值
(setq mask (xdrx-layerstate-getmask "Working")) ; 保存"Working"状态的掩码到变量

注意事项:
1. 掩码值表示图层状态的属性设置
2. 不存在的图层状态返回nil
3. 掩码值可用于判断图层状态的属性
4. 具体掩码含义参考AutoCAD文档
------------------------------------------------------------
41
函数名称: xdrx-layerstate-getnames

描述:
获取所有图层状态名称

调用格式:
(xdrx-layerstate-getnames )

参数说明:
- 可选,如果为t则不包含隐藏状态

返回值:
- 图层状态名列表: 成功
- nil: 获取失败

示例用法:
(xdrx-layerstate-getnames) ; 获取所有图层状态(包含隐藏)
(xdrx-layerstate-getnames t) ; 获取所有非隐藏图层状态

注意事项:
1. 仅支持AutoCAD 2008及以上版本
2. 默认包含隐藏状态
3. 无图层状态时返回空列表
4. 结果可用于状态管理操作
------------------------------------------------------------
42
函数名称: xdrx-layerstate-name-p

描述:
检查图层状态是否存在

调用格式:
(xdrx-layerstate-name-p <图层状态名>)

参数说明:
<图层状态名> - 必选,要检查的图层状态名称(字符串)

返回值:
- t: 存在
- nil: 不存在

示例用法:
(xdrx-layerstate-name-p "MyState") ; 检查"MyState"状态是否存在
(if (xdrx-layerstate-name-p "Working") ...) ; 条件判断状态是否存在

注意事项:
1. 仅检查状态是否存在
2. 不区分大小写
3. 检查包括隐藏状态
4. 结果可用于条件判断
------------------------------------------------------------
43
函数名称: xdrx-layerstate-viewport-p

描述:
检查图层状态是否包含视口数据

调用格式:
(xdrx-layerstate-viewport-p <图层状态名>)

参数说明:
<图层状态名> - 必选,图层状态名称(字符串)

返回值:
- t: 包含视口数据
- nil: 不包含或失败

示例用法:
(xdrx-layerstate-viewport-p "MyState") ; 检查"MyState"是否包含视口数据
(if (xdrx-layerstate-viewport-p "Working") ...) ; 条件判断视口数据

注意事项:
1. 仅支持AutoCAD 2005及以上版本
2. 不存在的图层状态返回nil
3. 结果反映状态是否保存了视口特定设置
4. 可用于判断状态恢复范围
------------------------------------------------------------
44
函数名称: xdrx-layerstate<-file

描述:
从文件导入图层状态

调用格式:
(xdrx-layerstate<-file <文件名> [目标状态名])

参数说明:
<文件名> - 必选,包含图层状态的文件路径(字符串)
[目标状态名] - 可选,导入后的状态名称(字符串)

返回值:
- 状态码: 导入结果(整数)
- nil: 导入失败

示例用法:
(xdrx-layerstate<-file "C:/states.las") ; 从文件导入状态
(xdrx-layerstate<-file "backup.las" "Recovered") ; 导入并重命名状态

注意事项:
1. 文件需包含有效的图层状态数据
2. AutoCAD 2008+支持重命名导入
3. 返回状态码可判断导入结果
4. 文件路径支持相对路径
------------------------------------------------------------
45
函数名称: xdrx-layerstate<-dwg

描述:
从DWG文件导入图层状态

调用格式:
(xdrx-layerstate<-dwg <状态名> <数据库对象>)

参数说明:
<状态名> - 必选,要导入的图层状态名称(字符串)
<数据库对象> - 必选,源数据库的图元名或数据库对象

返回值:
- 状态码: 导入结果(整数)
- nil: 导入失败

示例用法:
(xdrx-layerstate<-dwg "MyState" db) ; 从数据库对象导入状态
(xdrx-layerstate<-dwg "Backup" ent) ; 通过图元名导入状态

注意事项:
1. 仅支持AutoCAD 2008及以上版本
2. 源数据库必须包含指定状态
3. 返回状态码可判断导入结果
4. 数据库对象可以是图元名或数据库对象
------------------------------------------------------------
46
函数名称: xdrx-layerstate-dependent-p

描述:
检查图层状态是否为依赖状态

调用格式:
(xdrx-layerstate-dependent-p <图层状态名>)

参数说明:
<图层状态名> - 必选,要检查的图层状态名称(字符串)

返回值:
- t: 是依赖状态
- nil: 不是依赖状态或失败

示例用法:
(xdrx-layerstate-dependent-p "MyState") ; 检查"MyState"是否为依赖状态
(if (xdrx-layerstate-dependent-p "Working") ...) ; 条件判断依赖状态

注意事项:
1. 仅支持AutoCAD 2008及以上版本
2. 依赖状态与外部参照相关
3. 不存在的图层状态返回nil
4. 结果可用于状态管理决策
------------------------------------------------------------
47
函数名称: xdrx-layerstate-remove-layers

描述:
从图层状态中移除指定图层

调用格式:
(xdrx-layerstate-remove-layers <图层状态名> <图层名1> [图层名2...])

参数说明:
<图层状态名> - 必选,要修改的图层状态名称(字符串)
<图层名> - 必选,要移除的图层名称(可变参数字符串)

返回值:
- t: 成功
- nil: 失败

示例用法:
(xdrx-layerstate-remove-layers "MyState" "Layer1") ; 从"MyState"移除"Layer1"
(xdrx-layerstate-remove-layers "Working" "A-Wall" "A-Door") ; 移除多个图层

注意事项:
1. 仅支持AutoCAD 2008及以上版本
2. 不存在的图层状态返回nil
3. 不存在的图层会被忽略
4. 修改会立即生效
------------------------------------------------------------
48
函数名称: xdrx-layerstate-rename

描述:
重命名图层状态

调用格式:
(xdrx-layerstate-rename <原状态名> <新状态名>)

参数说明:
<原状态名> - 必选,要重命名的图层状态名称(字符串)
<新状态名> - 必选,新的图层状态名称(字符串)

返回值:
- 状态码: 重命名结果(整数)
- nil: 重命名失败

示例用法:
(xdrx-layerstate-rename "OldState" "NewState") ; 重命名状态
(setq code (xdrx-layerstate-rename "Temp" "Final")) ; 保存重命名结果

注意事项:
1. 原状态必须存在
2. 新状态名不能与现有状态冲突
3. 状态码可判断操作结果
4. 修改会立即生效
------------------------------------------------------------
49
函数名称: xdrx-layerstate-restore

描述:
恢复指定的图层状态

调用格式:
(xdrx-layerstate-restore <状态名> [视口] [标志] [掩码] )

参数说明:
<状态名> - 必选,要恢复的图层状态名称(字符串)
[视口] - 可选,视口图元名(仅限2005+)
[标志] - 可选,恢复标志(0-2)
[掩码] - 可选,状态掩码值
- 可选,恢复后删除状态

返回值:
- 状态码: 恢复结果(整数)
- nil: 恢复失败

示例用法:
(xdrx-layerstate-restore "MyState") ; 基本恢复
(xdrx-layerstate-restore "Working" ent 1 mask t) ; 带参数恢复

注意事项:
1. AutoCAD 2005+支持扩展参数
2. 标志值: 0=全部,1=仅图层,2=仅属性
3. 不存在的状态返回nil
4. 删除标志仅2005+有效
------------------------------------------------------------
50
函数名称: xdrx-layerstate-save

描述:
保存当前图层状态

调用格式:
(xdrx-layerstate-save <状态名> [掩码] [视口])

参数说明:
<状态名> - 必选,要保存的状态名称(字符串)
[掩码] - 可选,状态掩码值(整数)
[视口] - 可选,视口图元名(仅2005+)

返回值:
- t: 保存成功
- nil: 保存失败

示例用法:
(xdrx-layerstate-save "MyState") ; 基本保存
(xdrx-layerstate-save "Working" 3 ent) ; 带掩码和视口保存

注意事项:
1. 默认保存所有图层属性
2. AutoCAD 2005+支持视口参数
3. 同名状态会被覆盖
4. 掩码值控制保存的属性范围
------------------------------------------------------------
51
函数名称: xdrx-layerstate-setdesc

描述:
设置图层状态的描述文本

调用格式:
(xdrx-layerstate-setdesc <状态名> <描述文本>)

参数说明:
<状态名> - 必选,要设置描述的图层状态名称(字符串)
<描述文本> - 必选,要设置的描述内容(字符串)

返回值:
- t: 设置成功
- nil: 设置失败

示例用法:
(xdrx-layerstate-setdesc "MyState" "主要工作状态") ; 设置状态描述
(xdrx-layerstate-setdesc "Backup" "2023年备份状态") ; 设置备份状态描述

注意事项:
1. 仅支持AutoCAD 2005及以上版本
2. 状态必须已存在
3. 描述文本长度有限制
4. 成功返回t,失败返回nil
------------------------------------------------------------
52
函数名称: xdrx-layerstate-setmask

描述:
设置图层状态的掩码值

调用格式:
(xdrx-layerstate-setmask <状态名> <掩码值>)

参数说明:
<状态名> - 必选,要设置掩码的图层状态名称(字符串)
<掩码值> - 必选,掩码值(整数)

返回值:
- 状态码: 设置结果(整数)
- nil: 设置失败

示例用法:
(xdrx-layerstate-setmask "MyState" 3) ; 设置状态掩码
(setq code (xdrx-layerstate-setmask "Working" 1)) ; 保存设置结果

注意事项:
1. 掩码值控制状态属性范围
2. 状态必须已存在
3. 状态码可判断操作结果
4. 修改会立即生效
------------------------------------------------------------


页: [1]
查看完整版本: XDrxAPI 52 个 Layer/LayerState 函数帮助手册