找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 109|回复: 0

[API应用] XDrxAPI 25 个 Group 函数帮助手册

[复制链接]

已领礼包: 145个

财富等级: 日进斗金

发表于 2025-5-27 14:36:25 | 显示全部楼层 |阅读模式

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

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

×
1
函数名称: xdrx-group->block

描述:
将组(Group)转换为块(Block)

调用格式:
(xdrx-group->block <组名/图元> [t])

参数说明:
<组名/图元> - 必选,组名称字符串或组内图元名
[t] - 可选,是否处理同名组

返回值:
- 图元名: 新创建的块参照
- nil: 转换失败

示例用法:
(xdrx-group->block "MyGroup") ; 基本转换
(xdrx-group->block ent t) ; 转换并处理同名组

注意事项:
1. 自动计算块基点
2. 组内图元会被删除
3. t参数会处理所有同名组
4. 生成的块名以"XD_GROUP_"开头
------------------------------------------------------------
2
函数名称: xdrx-group->pickset

描述:
将组(Group)转换为选择集(PickSet)

调用格式:
(xdrx-group->pickset <组名/图元>)

参数说明:
<组名/图元> - 必选,组名称字符串或组内图元名

返回值:
- 选择集: 包含组内所有图元
- nil: 转换失败

示例用法:
(xdrx-group->pickset "MyGroup") ; 通过组名获取选择集
(xdrx-group->pickset ent) ; 通过组内图元获取选择集

注意事项:
1. 返回的选择集包含组内所有图元
2. 组名不存在时返回nil
3. 图元不属于任何组时返回nil
4. 选择集可用于后续操作
------------------------------------------------------------
3
函数名称: xdrx-group-box

描述:
获取组(Group)的边界框并支持坐标系转换

调用格式:
(xdrx-group-box <组名/组实体> [方向参数])

参数说明:
* <组名/组实体>: 目标组,可以是:
  - 组名称(字符串)
  - 组实体名(ENAME)
* [方向参数]: 可选参数,控制边界框方向:
  - T: 使用世界坐标系X轴方向
  - 三维点: 自定义方向向量

返回值:
- 表: 包含8个三维点的边界框坐标列表
- nil: 获取失败

示例用法1:
(xdrx-group-box "我的组")
; 获取组的UCS边界框

示例用法2:
(xdrx-group-box (car (entsel)) T)
; 获取选中组的世界坐标系边界框

实现特点:
1. 支持名称和实体两种输入方式
2. 自动处理坐标系转换
3. 返回精确的8点边界框

注意事项:
1. 组必须包含有效实体
2. 方向参数影响边界框计算基准
3. 返回坐标已转换到当前UCS
------------------------------------------------------------
4
函数名称: xdrx-group-delete
函数别名: xdrx-group-del

描述:
删除指定的组(Group)或全部组

调用格式:
(xdrx-group-delete <组名/组实体> [T])

参数说明:
* <组名/组实体>: 目标组,可以是:
  - 组名称(字符串)
  - 组实体名(ENAME)
* [T]: 可选参数,删除所有组

返回值:
- T: 删除成功
- nil: 删除失败

示例用法1:
(xdrx-group-delete "临时组")
; 删除指定名称的组

示例用法2:
(xdrx-group-delete (car (entsel)))
; 删除选中组实体

示例用法3:
(xdrx-group-delete T)
; 删除所有组

实现特点:
1. 支持名称、实体和批量删除三种方式
2. 内部使用deleteGroup方法
3. 自动处理组字典操作

注意事项:
1. 删除组不会删除组内实体
2. 批量删除需谨慎使用
3. 组不存在时返回nil
------------------------------------------------------------
5
函数名称: xdrx-group-get-same

描述:
查找与指定组具有相同内容的组

调用格式:
(xdrx-group-get-same <组名/组实体> [T])

参数说明:
* <组名/组实体>: 目标组,可以是:
  - 组名称(字符串)
  - 组实体名(ENAME)
* [T]: 可选参数,高亮显示匹配组

返回值:
- 表: 包含匹配组信息的列表,格式为((组名1 组实体1)(组名2 组实体2)...)
- nil: 未找到匹配组

示例用法1:
(xdrx-group-get-same "标准组")
; 查找与"标准组"内容相同的组

示例用法2:
(xdrx-group-get-same (car (entsel)) T)
; 查找并高亮显示匹配组

实现特点:
1. 支持名称和实体两种输入方式
2. 使用FindSameGroup方法精确匹配
3. 可选高亮显示功能

注意事项:
1. 匹配基于组内容而非名称
2. 包含原始组在返回结果中
3. 高亮状态不会自动清除
------------------------------------------------------------
6
函数名称: xdrx-group-getdesc

描述:
获取指定组的描述信息

调用格式:
(xdrx-group-getdesc <组名>)

参数说明:
* <组名>: 目标组名称(字符串)

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

示例用法1:
(xdrx-group-getdesc "机械组件")
; 返回"机械装配图标准组件"

示例用法2:
(xdrx-group-getdesc "电气符号")
; 返回"电气系统标准符号库"

实现特点:
1. 通过组字典快速查找
2. 直接返回description属性
3. 只读访问保证安全

注意事项:
1. 仅支持通过组名查询
2. 未设置描述时返回空字符串
3. 组不存在时返回nil
------------------------------------------------------------
7
函数名称: xdrx-group-entity-p

描述:
检查实体是否属于指定组

调用格式:
(xdrx-group-entity-p <组名> <实体名>)

参数说明:
* <组名>: 目标组名称(字符串)
* <实体名>: 要检查的实体(ENAME)

返回值:
- T: 实体属于该组
- nil: 不属于或检查失败

示例用法1:
(xdrx-group-entity-p "标注组" (car (entsel)))
; 检查选中实体是否在"标注组"中

示例用法2:
(xdrx-group-entity-p "图块组" ent)
; 检查变量ent是否属于"图块组"

实现特点:
1. 使用has方法精确判断
2. 严格参数类型检查
3. 自动处理对象打开/关闭

注意事项:
1. 仅支持通过组名查询
2. 实体必须有效存在
3. 组不存在时返回nil
------------------------------------------------------------
8
函数名称: xdrx-group-anoymous-p

描述:
检查指定组是否为匿名组

调用格式:
(xdrx-group-anoymous-p <组名>)

参数说明:
* <组名>: 要检查的组名称(字符串)

返回值:
- T: 是匿名组
- nil: 不是匿名组或检查失败

示例用法1:
(xdrx-group-anoymous-p "*A123")
; 检查组是否为匿名组

示例用法2:
(xdrx-group-anoymous-p "标准组")
; 检查命名组是否为匿名组

实现特点:
1. 使用isAnonymous方法判断
2. 通过组字典快速查找
3. 自动资源管理

注意事项:
1. 仅支持通过组名查询
2. 匿名组通常以*开头
3. 组不存在时返回nil
------------------------------------------------------------
9
函数名称: xdrx-group-accessible-p

描述:
检查指定组是否可访问

调用格式:
(xdrx-group-accessible-p <组名>)

参数说明:
* <组名>: 要检查的组名称(字符串)

返回值:
- T: 组可访问
- nil: 组不可访问或检查失败

示例用法1:
(xdrx-group-accessible-p "临时组")
; 检查"临时组"是否可访问

示例用法2:
(xdrx-group-accessible-p "*A123")
; 检查匿名组是否可访问

实现特点:
1. 使用isNotAccessible方法反向判断
2. 通过组字典快速查找
3. 自动资源管理

注意事项:
1. 仅支持通过组名查询
2. 不可访问的组可能被锁定或删除
3. 组不存在时返回nil
------------------------------------------------------------
10
函数名称: xdrx-group-selectable-p

描述:
检查指定组是否可选择

调用格式:
(xdrx-group-selectable-p <组名>)

参数说明:
* <组名>: 要检查的组名称(字符串)

返回值:
- T: 组可选择
- nil: 组不可选择或检查失败

示例用法1:
(xdrx-group-selectable-p "临时组")
; 检查"临时组"是否可选择

示例用法2:
(xdrx-group-selectable-p "锁定组")
; 检查被锁定组的选择状态

实现特点:
1. 使用isSelectable方法直接判断
2. 通过组字典快速查找
3. 自动资源管理

注意事项:
1. 仅支持通过组名查询
2. 不可选择的组可能被锁定或冻结
3. 组不存在时返回nil
------------------------------------------------------------
11
函数名称: xdrx-group-list

描述:
列出当前文档中所有组名称

调用格式:
(xdrx-group-list)

参数说明:
无参数

返回值:
- 表: 包含所有组名称的字符串列表
- nil: 获取失败或没有组

示例用法1:
(xdrx-group-list)
; 返回("组1" "组2" "*A123")

示例用法2:
(setq groups (xdrx-group-list))
; 获取所有组名并存入变量

实现特点:
1. 遍历组字典获取完整列表
2. 自动过滤非组对象
3. 包含匿名组名称

注意事项:
1. 返回的组名保持创建时的大小写
2. 匿名组以*开头
3. 空文档返回nil
------------------------------------------------------------
12
函数名称: xdrx-group-make

描述:
创建包含指定实体的新组

调用格式:
(xdrx-group-make <组名> <实体1> <实体2>... [选择集1]...)

参数说明:
* <组名>: 新组名称(字符串)
* <实体N>: 要包含的实体(ENAME)
* [选择集N]: 要包含的选择集(PICKSET)

返回值:
- 字符串: 成功创建的组名
- nil: 创建失败

示例用法1:
(xdrx-group-make "新组" (car (entsel)) (car (entsel)))
; 创建包含两个选中实体的组

示例用法2:
(xdrx-group-make "标注组" (ssget "X" '((0 . "DIMENSION"))))
; 创建包含所有标注的组

实现特点:
1. 支持实体名和选择集混合输入
2. 自动过滤无效实体
3. 返回实际创建的组名

注意事项:
1. 组名不能重复
2. 至少需要一个有效实体
3. 返回的组名保持创建时的大小写
------------------------------------------------------------
13
函数名称: xdrx-group-numentities

描述:
获取指定组中的实体数量

调用格式:
(xdrx-group-numentities <组名>)

参数说明:
* <组名>: 目标组名称(字符串)

返回值:
- 整数: 组中的实体数量
- nil: 获取失败

示例用法1:
(xdrx-group-numentities "机械组件")
; 返回该组包含的实体数量

示例用法2:
(setq cnt (xdrx-group-numentities "电气符号"))
; 获取数量并存入变量

实现特点:
1. 使用numEntities方法精确计数
2. 通过组字典快速查找
3. 自动资源管理

注意事项:
1. 仅支持通过组名查询
2. 返回数量包含嵌套实体
3. 组不存在时返回nil
------------------------------------------------------------
14
函数名称: xdrx-group-remove_entity

描述:
从指定组中移除实体

调用格式:
(xdrx-group-remove_entity <组名> <实体/选择集>)

参数说明:
* <组名>: 目标组名称(字符串)
* <实体/选择集>: 要移除的实体(ENAME)或选择集(PICKSET)

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

示例用法1:
(xdrx-group-remove_entity "机械组件" (car (entsel)))
; 从组中移除选中实体

示例用法2:
(xdrx-group-remove_entity "临时组" (ssget "X" '((0 . "CIRCLE"))))
; 移除所有圆实体

实现特点:
1. 支持单个实体和选择集输入
2. 自动验证实体有效性
3. 原子性操作保证数据一致

注意事项:
1. 仅从组中移除,不删除实体本身
2. 组不存在时返回nil
3. 实体不在组中时静默成功
------------------------------------------------------------
15
函数名称: xdrx-group-rename

描述:
重命名指定组

调用格式:
(xdrx-group-rename <原组名> <新组名>)

参数说明:
* <原组名>: 要重命名的组名称(字符串)
* <新组名>: 新的组名称(字符串)

返回值:
- T: 重命名成功
- nil: 重命名失败

示例用法1:
(xdrx-group-rename "旧组名" "新组名")
; 将组重命名为新名称

示例用法2:
(xdrx-group-rename "临时组" "正式组")
; 修改组名称标识状态

实现特点:
1. 支持AutoCAD不同版本兼容处理
2. 自动处理组字典更新
3. 保持原有组实体不变

注意事项:
1. 新组名不能与现有组名冲突
2. 原组必须存在
3. 匿名组也可重命名
------------------------------------------------------------
16
函数名称: xdrx-group-replace_entity

描述:
替换组中的指定实体

调用格式:
(xdrx-group-replace_entity <组名> <旧实体> <新实体>)

参数说明:
* <组名>: 目标组名称(字符串)
* <旧实体>: 要替换的实体(ENAME)
* <新实体>: 替换后的新实体(ENAME)

返回值:
- T: 替换成功
- nil: 替换失败

示例用法1:
(xdrx-group-replace_entity "机械组件" ent1 ent2)
; 将组中的ent1替换为ent2

示例用法2:
(xdrx-group-replace_entity "标注组" (car (entsel)) (car (entsel)))
; 交互式选择替换实体

实现特点:
1. 精确实体替换操作
2. 自动验证实体有效性
3. 保持组结构完整性

注意事项:
1. 新旧实体必须有效存在
2. 旧实体必须在组中
3. 组不存在时返回nil
------------------------------------------------------------
17
函数名称: xdrx-group-setanonymous

描述:
将指定组设置为匿名组

调用格式:
(xdrx-group-setanonymous <组名>)

参数说明:
* <组名>: 要设置为匿名的组名称(字符串)

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

示例用法1:
(xdrx-group-setanonymous "临时组")
; 将组转换为匿名组

示例用法2:
(xdrx-group-setanonymous (car (xdrx-group-list)))
; 将第一个组设为匿名

实现特点:
1. 使用setAnonymous方法直接转换
2. 自动处理组字典更新
3. 保持原有组实体不变

注意事项:
1. 匿名组名称以*开头
2. 组必须存在才能转换
3. 不可逆操作
------------------------------------------------------------
18
函数名称: xdrx-group-setcolor

描述:
设置组的颜色属性

调用格式:
(xdrx-group-setcolor <组名> <颜色索引/RGB值>)

参数说明:
* <组名>: 目标组名称(字符串)
* <颜色索引/RGB值>:
  - 颜色索引(0-256的整数)或
  - RGB值(三维点表,如'(255 0 0))

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

示例用法1:
(xdrx-group-setcolor "机械组件" 1)
; 设置组颜色为红色(索引1)

示例用法2:
(xdrx-group-setcolor "电气组" '(0 255 0))
; 设置组颜色为绿色(RGB)

实现特点:
1. 支持索引色和真彩色
2. 自动验证颜色值有效性
3. 保持组实体独立性

注意事项:
1. 颜色索引范围0-256
2. RGB分量范围0-255
3. 组不存在时返回nil
------------------------------------------------------------
19
函数名称: xdrx-group-setdesc

描述:
设置组的描述信息

调用格式:
(xdrx-group-setdesc <组名> <描述文本>)

参数说明:
* <组名>: 目标组名称(字符串)
* <描述文本>: 要设置的描述内容(字符串)

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

示例用法1:
(xdrx-group-setdesc "机械组件" "2025年项目专用组")
; 设置组描述信息

示例用法2:
(xdrx-group-setdesc "临时标注" "需在施工前删除")
; 添加组状态说明

实现特点:
1. 支持任意文本描述
2. 自动处理组字典更新
3. 不影响组实体内容

注意事项:
1. 描述文本长度建议控制在255字符内
2. 组不存在时返回nil
3. 会覆盖原有描述
------------------------------------------------------------
20
函数名称: xdrx-group-sethighlight

描述:
设置组的高亮显示状态

调用格式:
(xdrx-group-sethighlight <组名> [T])

参数说明:
* <组名>: 目标组名称(字符串)
* [T]: 可选参数,存在时设置高亮,否则取消高亮

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

示例用法1:
(xdrx-group-sethighlight "重要组件" T)
; 设置组为高亮状态

示例用法2:
(xdrx-group-sethighlight "临时组")
; 取消组的高亮状态

实现特点:
1. 支持开关式高亮控制
2. 自动处理组字典更新
3. 不影响组实体属性

注意事项:
1. 高亮状态仅影响显示
2. 组不存在时返回nil
3. 默认取消高亮
------------------------------------------------------------
21
函数名称: xdrx-group-setlayer

描述:
设置组的图层属性

调用格式:
(xdrx-group-setlayer <组名> <图层名>)

参数说明:
* <组名>: 目标组名称(字符串)
* <图层名>: 要设置的图层名称(字符串)

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

示例用法1:
(xdrx-group-setlayer "机械组件" "机械层")
; 将组设置到机械层

示例用法2:
(xdrx-group-setlayer "标注组" "DIM_LAYER")
; 设置标注组的图层

实现特点:
1. 自动验证图层有效性
2. 保持组内实体关联性
3. 原子性操作保证数据一致

注意事项:
1. 图层必须已存在
2. 组不存在时返回nil
3. 会影响组内所有实体
------------------------------------------------------------
22
函数名称: xdrx-group-setlinescale

描述:
设置组的线型比例

调用格式:
(xdrx-group-setlinescale <组名> <比例值>)

参数说明:
* <组名>: 目标组名称(字符串)
* <比例值>: 线型比例值(整数或实数)

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

示例用法1:
(xdrx-group-setlinescale "机械组件" 2)
; 设置组线型比例为2

示例用法2:
(xdrx-group-setlinescale "虚线组" 0.5)
; 设置组线型比例为0.5

实现特点:
1. 支持整数和实数比例值
2. 自动处理组字典更新
3. 统一设置组内所有实体

注意事项:
1. 比例值应大于0
2. 组不存在时返回nil
3. 会影响组内所有实体的显示
------------------------------------------------------------
23
函数名称: xdrx-group-setlinetype

描述:
设置组的线型属性

调用格式:
(xdrx-group-setlinetype <组名> <线型名>)

参数说明:
* <组名>: 目标组名称(字符串)
* <线型名>: 要设置的线型名称(字符串)

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

示例用法1:
(xdrx-group-setlinetype "轮廓线" "DASHED")
; 设置组线型为虚线

示例用法2:
(xdrx-group-setlinetype "中心线" "CENTER")
; 设置组线型为中心线

实现特点:
1. 自动验证线型有效性
2. 保持组内实体一致性
3. 原子性操作保证数据完整

注意事项:
1. 线型必须已加载
2. 组不存在时返回nil
3. 会影响组内所有实体的显示
------------------------------------------------------------
24
函数名称: xdrx-group-setselectable

描述:
设置组的选择状态

调用格式:
(xdrx-group-setselectable <组名> [T])

参数说明:
* <组名>: 目标组名称(字符串)
* [T]: 可选参数,存在时允许选择,否则禁止选择

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

示例用法1:
(xdrx-group-setselectable "参考组" T)
; 允许选择该组

示例用法2:
(xdrx-group-setselectable "背景元素")
; 禁止选择该组

实现特点:
1. 支持开关式选择控制
2. 自动处理组字典更新
3. 不影响组实体属性

注意事项:
1. 默认禁止选择
2. 组不存在时返回nil
3. 仅控制选择状态不影响显示
------------------------------------------------------------
25
函数名称: xdrx-group-setvisiblity

描述:
设置组的可见性状态

调用格式:
(xdrx-group-setvisiblity <组名> [T])

参数说明:
* <组名>: 目标组名称(字符串)
* [T]: 可选参数,存在时显示组,否则隐藏组

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

示例用法1:
(xdrx-group-setvisiblity "临时组" T)
; 显示该组

示例用法2:
(xdrx-group-setvisiblity "参考组")
; 隐藏该组

实现特点:
1. 支持开关式可见性控制
2. 自动处理组字典更新
3. 原子性操作保证状态一致

注意事项:
1. 默认隐藏组
2. 组不存在时返回nil
3. 隐藏后组内实体不可见但仍在数据库中
------------------------------------------------------------


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

本版积分规则

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

GMT+8, 2025-7-18 22:07 , Processed in 0.161001 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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