XDSoft 发表于 2025-5-15 14:22:27

XDrxAPI 35 个几何函数处理帮助手册

1
函数名称: xdrx-geom->boundary
函数别名: xdrx-geom->outline

描述:
该函数根据输入的实体或点集生成边界轮廓,支持多种参数控制边界生成方式。

调用格式1(实体边界):
(xdrx-geom->boundary <实体选择集> [是否曲线拟合] [是否绘制] [是否删除源实体])

调用格式2(点集边界):
(xdrx-geom->boundary <点集列表> [是否曲线拟合])

参数说明:
* <实体选择集>: 要生成边界的实体选择集
* <点集列表>: 嵌套的点集列表,格式为'((点集1)(点集2)...)
* [是否曲线拟合]: T-曲线拟合/NIL-不拟合(默认T)
* [是否绘制]: T-直接绘制/NIL-返回图元名(默认T)
* [是否删除源实体]: T-删除/NIL-保留(默认T)

返回值:
当不直接绘制时,返回生成的边界图元名列表

示例用法1(实体边界):
(xdrx-geom->boundary (ssget) T T T)

示例用法2(点集边界):
(xdrx-geom->boundary '(((0 0)(1 0)(1 1)) NIL)

注意事项:
1. 点集模式下自动禁用绘制和删除源实体
2. 块参照不会被删除
3. 点集需为闭合环
4. 默认参数为(T T T)
------------------------------------------------------------
2
函数名称: xdrx-geom->cdt
函数名称: xdrx-geom-triangulations_cdt

描述:
该函数对输入的多边形或点集进行约束德劳内三角剖分(CDT),可生成三角面片或返回三角点集。

调用格式1(实体三角剖分):
(xdrx-geom->cdt <实体选择集> [是否约束] [是否绘制])

调用格式2(点集三角剖分):
(xdrx-geom->cdt <点集> [是否约束] [是否绘制])

参数说明:
* <实体选择集>: 要三角剖分的实体选择集
* <点集>: 3D点坐标列表
* [是否约束]: T-约束边界/NIL-不约束(默认T)
* [是否绘制]: T-绘制三角面/NIL-返回三角点集(默认NIL)

返回值:
当不直接绘制时,返回三角剖分结果列表,格式为'((三角1)(三角2)...)

示例用法1(实体三角剖分):
(xdrx-geom->cdt (ssget) T T)

示例用法2(点集三角剖分):
(xdrx-geom->cdt '((0 0 0)(1 0 0)(1 1 0)) NIL NIL)

注意事项:
1. 点集模式会自动创建临时多边形
2. 默认参数为(T NIL)
3. 返回的每个三角由3个3D点组成
4. 支持带洞多边形
------------------------------------------------------------
3
函数名称: xdrx-geom->diff

描述:
该函数对两个多边形实体执行布尔差集运算,支持圆弧多边形,可生成差集结果或返回差集实体。

调用格式:
(xdrx-geom->diff <实体1> <实体2> [是否绘制] [是否曲线拟合] [是否删除源实体])

参数说明:
* <实体1>: 第一个多边形实体(被减数)
* <实体2>: 第二个多边形实体(减数)
* [是否绘制]: T-直接绘制/NIL-返回实体名(默认T)
* [是否曲线拟合]: T-曲线拟合/NIL-不拟合(默认T)
* [是否删除源实体]: T-删除/NIL-保留(默认T)

返回值:
当不直接绘制时,返回差集运算结果实体名列表

示例用法1(直接绘制结果):
(xdrx-geom->diff ent1 ent2 T T T)

示例用法2(返回实体名):
(xdrx-geom->diff ent1 ent2 NIL NIL NIL)

注意事项:
1. 必须且只能输入2个实体
2. 支持带圆弧的多边形
3. 默认参数为(T T T)
4. 不绘制时会自动禁用删除源实体
5. 保留第一个实体的属性
------------------------------------------------------------
4
函数名称: xdrx-geom->divarc
函数别名: xdrx-geom-arcdiv

描述:
该函数计算圆弧或圆的等分数、等分角度和等分半径,支持实体输入或参数输入。

调用格式1(实体输入):
(xdrx-geom->divarc <圆弧/圆实体> [弦高容差])

调用格式2(参数输入):
(xdrx-geom->divarc <半径> <角度> [弦高容差])

参数说明:
* <圆弧/圆实体>: 圆弧或圆实体
* <半径>: 圆弧半径值
* <角度>: 圆弧角度值(弧度)
* [弦高容差]: 弦高误差容差(默认0)

返回值:
返回列表(等分数 等分角度 等分半径)

示例用法1(实体输入):
(xdrx-geom->divarc ent1 0.1)
返回: (12 0.523599 5.0)

示例用法2(参数输入):
(xdrx-geom->divarc 5.0 3.14159)
返回: (12 0.261799 5.0)

注意事项:
1. 角度单位为弧度
2. 弦高容差为0时使用默认分段
3. 支持全圆(2π)计算
4. 返回值为优化后的分段方案
------------------------------------------------------------
5
函数名称: xdrx-geom->dt
函数别名: xdrx-geom-triangulations_dt

描述:
该函数对输入的多边形或点集进行德劳内三角剖分(DT),可生成三角面片或返回三角点集。

调用格式1(实体三角剖分):
(xdrx-geom->dt <实体选择集> [是否约束] [是否绘制])

调用格式2(点集三角剖分):
(xdrx-geom->dt <点集> [是否约束] [是否绘制])

参数说明:
* <实体选择集>: 要三角剖分的实体选择集
* <点集>: 3D点坐标列表
* [是否约束]: T-约束边界/NIL-不约束(默认NIL)
* [是否绘制]: T-绘制三角面/NIL-返回三角点集(默认NIL)

返回值:
当不直接绘制时,返回三角剖分结果列表,格式为'((三角1)(三角2)...)

示例用法1(实体三角剖分):
(xdrx-geom->dt (ssget) NIL T)

示例用法2(点集三角剖分):
(xdrx-geom->dt '((0 0 0)(1 0 0)(1 1 0)) NIL NIL)

注意事项:
1. 点集模式会自动创建临时多边形
2. 默认参数为(NIL NIL)
3. 返回的每个三角由3个3D点组成
4. 支持带洞多边形
5. 与CDT不同,DT不强制约束边界
------------------------------------------------------------
6
函数名称: xdrx-geom->intersect

描述:
该函数对两个多边形实体执行布尔交集运算,支持圆弧多边形,可生成交集结果或返回交集实体。

调用格式:
(xdrx-geom->intersect <实体1> <实体2> [是否绘制] [是否曲线拟合] [是否删除源实体])

参数说明:
* <实体1>: 第一个多边形实体
* <实体2>: 第二个多边形实体
* [是否绘制]: T-直接绘制/NIL-返回实体名(默认T)
* [是否曲线拟合]: T-曲线拟合/NIL-不拟合(默认T)
* [是否删除源实体]: T-删除/NIL-保留(默认T)

返回值:
当不直接绘制时,返回交集运算结果实体名列表

示例用法1(直接绘制结果):
(xdrx-geom->intersect ent1 ent2 T T T)

示例用法2(返回实体名):
(xdrx-geom->intersect ent1 ent2 NIL NIL NIL)

注意事项:
1. 必须且只能输入2个实体
2. 支持带圆弧的多边形
3. 默认参数为(T T T)
4. 不绘制时会自动禁用删除源实体
5. 仅保留相交区域
------------------------------------------------------------
7
函数名称: xdrx-geom->regions

描述:
该函数从输入的实体生成闭合区域,支持曲线拟合和多种输出选项。

调用格式:
(xdrx-geom->regions <实体选择集> [是否曲线拟合] [是否绘制] [是否删除源实体])

参数说明:
* <实体选择集>: 要生成区域的实体选择集
* [是否曲线拟合]: T-曲线拟合/NIL-不拟合(默认NIL)
* [是否绘制]: T-直接绘制/NIL-返回实体名(默认T)
* [是否删除源实体]: T-删除/NIL-保留(默认T)

返回值:
当不直接绘制时,返回生成的区域实体名列表

示例用法1(直接绘制结果):
(xdrx-geom->regions (ssget) T T T)

示例用法2(返回实体名):
(xdrx-geom->regions (ssget) NIL NIL NIL)

注意事项:
1. 生成的区域会继承第一个实体的属性
2. 块参照不会被删除
3. 默认参数为(NIL T T)
4. 支持多段线、圆弧等多种实体类型
------------------------------------------------------------
8
函数名称: xdrx-geom->union

描述:
该函数对多个多边形实体执行布尔并集运算,支持圆弧多边形,可生成并集结果或返回并集实体。

调用格式:
(xdrx-geom->union <实体选择集> [是否绘制] [是否曲线拟合] [是否删除源实体])

参数说明:
* <实体选择集>: 要合并的多边形实体选择集
* [是否绘制]: T-直接绘制/NIL-返回实体名(默认T)
* [是否曲线拟合]: T-曲线拟合/NIL-不拟合(默认NIL)
* [是否删除源实体]: T-删除/NIL-保留(默认T)

返回值:
当不直接绘制时,返回并集运算结果实体名列表

示例用法1(直接绘制结果):
(xdrx-geom->union (ssget) T NIL T)

示例用法2(返回实体名):
(xdrx-geom->union (ssget) NIL T NIL)

注意事项:
1. 支持多个实体输入
2. 支持带圆弧的多边形
3. 默认参数为(T NIL T)
4. 不绘制时会自动禁用删除源实体
5. 合并所有重叠区域
------------------------------------------------------------
9
函数名称: xdrx-geom->voronoi

描述:
该函数根据输入的点集或多段线生成Voronoi图,支持自定义边界和多种输出选项。

调用格式1(点集输入):
(xdrx-geom->voronoi <点集> [边界多段线] [是否绘制])

调用格式2(实体输入):
(xdrx-geom->voronoi <实体选择集> [边界多段线] [是否绘制])

参数说明:
* <点集>: 3D点坐标列表
* <实体选择集>: 包含点或多段线的选择集
* [边界多段线]: 可选边界多段线实体
* [是否绘制]: T-直接绘制/NIL-返回实体名(默认T)

返回值:
当不直接绘制时,返回Voronoi图实体名列表,每个元素格式为'(实体名 中心点)

示例用法1(点集输入):
(xdrx-geom->voronoi '((0 0 0)(1 0 0)(1 1 0)) nil T)

示例用法2(实体输入):
(xdrx-geom->voronoi (ssget) ent1 NIL)

注意事项:
1. 若无边界输入,自动计算凸包作为边界
2. 支持点和多段线实体输入
3. 返回的每个Voronoi单元关联其中心点
4. 默认参数为(T)
------------------------------------------------------------
10
函数名称: xdrx-geom->xor

描述:
该函数对两个多边形实体执行布尔异或运算,支持圆弧多边形,可生成异或结果或返回异或实体。

调用格式:
(xdrx-geom->xor <实体1> <实体2> [是否绘制] [是否曲线拟合] [是否删除源实体])

参数说明:
* <实体1>: 第一个多边形实体
* <实体2>: 第二个多边形实体
* [是否绘制]: T-直接绘制/NIL-返回实体名(默认T)
* [是否曲线拟合]: T-曲线拟合/NIL-不拟合(默认NIL)
* [是否删除源实体]: T-删除/NIL-保留(默认T)

返回值:
当不直接绘制时,返回异或运算结果实体名列表

示例用法1(直接绘制结果):
(xdrx-geom->xor ent1 ent2 T NIL T)

示例用法2(返回实体名):
(xdrx-geom->xor ent1 ent2 NIL T NIL)

注意事项:
1. 必须且只能输入2个实体
2. 支持带圆弧的多边形
3. 默认参数为(T NIL T)
4. 不绘制时会自动禁用删除源实体
5. 保留非重叠区域
------------------------------------------------------------
11
函数名称: xdrx-geom-3p2arc

描述:
该函数将三个点转换为圆弧参数,支持逆时针/顺时针方向判断,返回圆心、半径和角度参数。

调用格式:
(xdrx-geom-3p2arc <点1> <点2> <点3>)

参数说明:
* <点1>: 第一个点(3D坐标)
* <点2>: 第二个点(3D坐标)
* <点3>: 第三个点(3D坐标)

返回值:
成功时返回列表(T/NIL 圆心 半径 起始角 终止角)
三点共线时返回nil

示例用法:
(xdrx-geom-3p2arc '(0 0 0) '(1 1 0) '(2 0 0))
返回: (T (1.0 0.0 0.0) 1.0 0.0 3.14159)

注意事项:
1. 角度单位为弧度
2. T表示逆时针,NIL表示顺时针
3. 三点共线时返回nil
4. 自动计算圆心和半径
------------------------------------------------------------
12
函数名称: xdrx-geom-angle_to_ellipseangle

描述:
该函数计算椭圆上点对应的参数角度,支持通过点坐标或角度值输入。

调用格式1(通过点坐标):
(xdrx-geom-angle_to_ellipseangle <椭圆实体> <点坐标>...)

调用格式2(通过角度值):
(xdrx-geom-angle_to_ellipseangle <椭圆实体> <角度>...)

参数说明:
* <椭圆实体>: 椭圆实体或椭圆几何对象
* <点坐标>: 一个或多个点坐标
* <角度>: 一个或多个角度值(弧度)

返回值:
返回参数角度列表(弧度)

示例用法1(点坐标输入):
(xdrx-geom-angle_to_ellipseangle ent1 '(1 0 0) '(0 1 0))

示例用法2(角度输入):
(xdrx-geom-angle_to_ellipseangle ent1 0.0 1.5708)

注意事项:
1. 支持多值输入
2. 角度单位为弧度
3. 自动计算最近点对应的参数角度
4. 支持椭圆实体和椭圆几何对象
------------------------------------------------------------
13
函数名称: xdrx-geom-arc2poly

描述:
该函数将圆弧参数转换为多段线顶点参数,支持逆时针/顺时针方向转换。

调用格式:
(xdrx-geom-arc2poly <圆心> <半径> <起始角> <终止角> [逆时针标志])

参数说明:
* <圆心>: 圆弧圆心坐标(3D点)
* <半径>: 圆弧半径
* <起始角>: 起始角度(弧度)
* <终止角>: 终止角度(弧度)
* [逆时针标志]: T-逆时针/NIL-顺时针(默认NIL)

返回值:
返回列表(起点 切线参数 终点) 或 (终点 切线参数 起点)

示例用法1(逆时针圆弧):
(xdrx-geom-arc2poly '(0 0 0) 5.0 0.0 1.5708 T)
返回: ((5.0 0.0 0.0) 0.414214 (0.0 5.0 0.0))

示例用法2(顺时针圆弧):
(xdrx-geom-arc2poly '(0 0 0) 5.0 0.0 1.5708)
返回: ((0.0 5.0 0.0) -0.414214 (5.0 0.0 0.0))

注意事项:
1. 角度单位为弧度
2. 切线参数用于多段线凸度计算
3. 自动处理角度跨越2π的情况
4. 返回结果可直接用于创建多段线
------------------------------------------------------------
15
函数名称: xdrx-geom-bpoly

描述:
该函数根据边界创建多边形区域,支持多种输入方式(点、实体、选择集)和输出选项。

调用格式:
(xdrx-geom-bpoly <基点> [边界实体/点...] )

参数说明:
* <基点>: 多边形内部点(3D坐标)
* [边界实体/点]: 可选边界实体或点坐标
* : T-返回点坐标/NIL-返回实体(默认NIL)

返回值:
返回创建的多边形实体或点坐标列表

示例用法1(自动选择边界):
(xdrx-geom-bpoly '(5 5 0))

示例用法2(指定边界实体):
(xdrx-geom-bpoly '(5 5 0) ent1 ent2)

示例用法3(返回点坐标):
(xdrx-geom-bpoly '(5 5 0) T)

注意事项:
1. 支持多种边界实体类型(多段线、直线、圆弧等)
2. 自动处理屏幕选择边界
3. 返回最小包含基点的区域
4. 支持几何曲线对象输入
------------------------------------------------------------
16
函数名称: xdrx-geom-bulge

描述:
该函数计算圆弧或多段线段的凸度值,支持多种输入方式(圆弧实体或三点坐标)。

调用格式1(实体输入):
(xdrx-geom-bulge <圆弧实体>)

调用格式2(三点输入):
(xdrx-geom-bulge <起点> <中点> <终点>)

参数说明:
* <圆弧实体>: 圆弧实体或几何对象
* <起点>: 起点坐标(3D点)
* <中点>: 中点坐标(3D点)
* <终点>: 终点坐标(3D点)

返回值:
返回凸度值(双精度浮点数)

示例用法1(实体输入):
(xdrx-geom-bulge ent1)
返回: 0.414214

示例用法2(三点输入):
(xdrx-geom-bulge '(0 0 0) '(1 1 0) '(2 0 0))
返回: 0.414214

注意事项:
1. 支持2D和3D圆弧几何对象
2. 三点输入必须按顺序提供
3. 凸度值可用于多段线创建
4. 自动处理圆弧方向
------------------------------------------------------------
17
函数名称: xdrx-geom-clipboundary

描述:
该函数根据边界裁剪或复制实体,支持多种输入方式(选择集、实体或点列表)和裁剪选项。

调用格式1(选择集输入):
(xdrx-geom-clipboundary <选择集> <边界实体/点列表> [是否复制] [是否裁剪])

调用格式2(点列表输入):
(xdrx-geom-clipboundary <点列表> [是否复制] [是否裁剪])

参数说明:
* <选择集>: 要裁剪的实体选择集
* <边界实体/点列表>: 边界实体或点坐标列表
* [是否复制]: T-复制/NIL-移动(默认NIL)
* [是否裁剪]: T-裁剪/NIL-保留外部(默认T)

返回值:
返回裁剪后的实体选择集

示例用法1(选择集输入):
(xdrx-geom-clipboundary (ssget) ent1 T)

示例用法2(点列表输入):
(xdrx-geom-clipboundary '((0 0 0)(10 0 0)(10 10 0)(0 10 0)))

注意事项:
1. 支持闭合多段线自动创建
2. 自动处理边界闭合
3. 保留原始实体当复制选项为T
4. 支持CP(圈围)选择模式
------------------------------------------------------------
18
函数名称: xdrx-geom-drawgrid

描述:
该函数生成并绘制网格线,支持自定义原点、尺寸、间距和延伸长度。

调用格式:
(xdrx-geom-drawgrid <原点> <宽度> <高度> <X间距> <Y间距> [延伸长度] [角度] )

参数说明:
* <原点>: 网格原点坐标(3D点)
* <宽度>: 网格总宽度
* <高度>: 网格总高度
* <X间距>: X方向网格间距
* <Y间距>: Y方向网格间距
* [延伸长度]: 网格线延伸长度(默认0.0)
* [角度]: 网格旋转角度(弧度,默认0.0)
* : T-直接绘制/NIL-返回点坐标(默认NIL)

返回值:
返回水平线和垂直线坐标列表或直接绘制网格

示例用法1(返回坐标):
(xdrx-geom-drawgrid '(0 0 0) 100 50 10 5)

示例用法2(直接绘制):
(xdrx-geom-drawgrid '(0 0 0) 100 50 10 5 0.0 0.0 T)

注意事项:
1. 所有长度参数必须为正数
2. 角度单位为弧度
3. 返回格式为((水平线起点 终点列表)(垂直线起点 终点列表))
4. 自动处理网格线生成和分组
------------------------------------------------------------
19
函数名称: xdrx-geom-getcirdivnum

描述:
该函数计算圆的等分数,基于半径和角度范围自动确定最佳分段数。

调用格式:
(xdrx-geom-getcirdivnum <半径> <角度> [弦高])

参数说明:
* <半径>: 圆的半径
* <角度>: 角度范围(弧度)
* [弦高]: 最大允许弦高(默认使用系统变量)

返回值:
返回整数等分数

示例用法1(基本用法):
(xdrx-geom-getcirdivnum 5.0 3.14159)
返回: 12

示例用法2(指定弦高):
(xdrx-geom-getcirdivnum 5.0 3.14159 0.5)
返回: 8

注意事项:
1. 角度单位为弧度
2. 自动计算最佳分段数
3. 支持指定弦高控制精度
4. 结果可用于创建平滑圆弧
------------------------------------------------------------
20
函数名称: xdrx-geom-getinters

描述:
该函数计算曲线之间的交点,支持实体曲线和几何曲线对象。

调用格式:
(xdrx-geom-getinters <曲线1> <曲线2> [模式] [容差] )

参数说明:
* <曲线1>: 第一条曲线实体或几何对象
* <曲线2>: 第二条曲线实体或几何对象
* [模式]: 计算模式(默认1)
* [容差]: 交点计算容差(默认系统变量)
* : T-延伸曲线/NIL-不延伸(默认NIL)

返回值:
返回交点坐标列表(3D点)

示例用法1(实体输入):
(xdrx-geom-getinters ent1 ent2)
返回: ((5.0 2.5 0.0) (10.0 5.0 0.0))

示例用法2(几何对象):
(xdrx-geom-getinters ge1 ge2 1 0.001 T)

注意事项:
1. 支持数据库实体和几何曲线对象
2. 自动处理曲线延伸选项
3. 结果受容差参数影响
4. 返回所有有效交点
------------------------------------------------------------
21
函数名称: xdrx-geom-iscodirectional

描述:
该函数判断两个向量或曲线方向是否一致,支持多种输入方式(点、实体、几何对象)。

调用格式1(点输入):
(xdrx-geom-iscodirectional <起点1> <终点1> <起点2> <终点2> [模式] [容差])

调用格式2(实体输入):
(xdrx-geom-iscodirectional <曲线1> <曲线2> [模式] [容差])

参数说明:
* <起点1/终点1>: 第一个向量的起点和终点
* <起点2/终点2>: 第二个向量的起点和终点
* <曲线1/曲线2>: 曲线实体或几何对象
* [模式]: 1-锐角/T-同向/NIL-完全一致(默认1)
* [容差]: 角度容差(弧度或角度)

返回值:
方向一致时返回T,否则返回NIL

示例用法1(点输入):
(xdrx-geom-iscodirectional '(0 0 0) '(1 0 0) '(0 0 0) '(1 0 0))
返回: T

示例用法2(实体输入):
(xdrx-geom-iscodirectional ent1 ent2 T 5.0)

注意事项:
1. 支持2D和3D向量
2. 自动处理向量归一化
3. 容差>6.28时自动转换为弧度
4. 支持曲线实体和几何对象
------------------------------------------------------------
22
函数名称: xdrx-geom-iscolinear

描述:
该函数判断两条直线是否共线,支持点坐标和直线实体两种输入方式。

调用格式1(点坐标输入):
(xdrx-geom-iscolinear <起点1> <终点1> <起点2> <终点2> [容差])

调用格式2(实体输入):
(xdrx-geom-iscolinear <直线1> <直线2> [容差])

参数说明:
* <起点1/终点1>: 第一条直线的起点和终点坐标
* <起点2/终点2>: 第二条直线的起点和终点坐标
* <直线1/直线2>: 直线实体或几何对象
* [容差]: 共线判断容差(默认系统变量)

返回值:
共线时返回T,否则返回NIL

示例用法1(点坐标输入):
(xdrx-geom-iscolinear '(0 0 0) '(1 0 0) '(2 0 0) '(3 0 0))
返回: T

示例用法2(实体输入):
(xdrx-geom-iscolinear line1 line2 0.001)

注意事项:
1. 支持3D和2D坐标输入
2. 自动处理直线实体和几何对象
3. 结果受容差参数影响
4. 仅适用于直线对象
------------------------------------------------------------
23
函数名称: xdrx-geom-isinsidecurve

描述:
该函数判断点是否位于曲线内部,适用于闭合曲线(如圆、闭合多段线等)。

调用格式:
(xdrx-geom-isinsidecurve <曲线实体> <测试点>)

参数说明:
* <曲线实体>: 要测试的曲线对象(必须为闭合曲线)
* <测试点>: 要测试的点坐标(2D或3D)

返回值:
点在曲线内部时返回T,否则返回NIL

示例用法:
(xdrx-geom-isinsidecurve circle1 '(5 5 0))
返回: T

注意事项:
1. 仅适用于闭合曲线
2. 自动处理2D/3D点坐标
3. 曲线必须可打开且可读取
4. 非曲线实体会返回错误
------------------------------------------------------------
24
函数名称: xdrx-geom-isparallel
函数别名: xdrx-geom-isparallel

描述:
该函数判断两个向量或曲线是否平行,支持多种输入方式(点坐标、实体、几何对象)。

调用格式1(点坐标输入):
(xdrx-geom-isparallel <起点1> <终点1> <起点2> <终点2> [容差])

调用格式2(实体输入):
(xdrx-geom-isparallel <曲线1> <曲线2> [容差])

参数说明:
* <起点1/终点1>: 第一个向量的起点和终点坐标
* <起点2/终点2>: 第二个向量的起点和终点坐标
* <曲线1/曲线2>: 曲线实体或几何对象
* [容差]: 平行判断容差(默认系统变量)

返回值:
平行时返回T,否则返回NIL

示例用法1(点坐标输入):
(xdrx-geom-isparallel '(0 0 0) '(1 0 0) '(0 1 0) '(1 1 0))
返回: T

示例用法2(实体输入):
(xdrx-geom-isparallel line1 line2 0.001)

注意事项:
1. 支持2D和3D向量
2. 自动处理向量归一化
3. 支持曲线实体和几何对象
4. 结果受容差参数影响
------------------------------------------------------------
25
函数名称: xdrx-geom-isperp
函数别名: xdrx-geom-isperp-p
描述:
该函数判断两个向量或曲线是否垂直,支持多种输入方式(点坐标、实体、几何对象)。

调用格式1(点坐标输入):
(xdrx-geom-isperp <起点1> <终点1> <起点2> <终点2> [容差])

调用格式2(实体输入):
(xdrx-geom-isperp <曲线1> <曲线2> [容差])

参数说明:
* <起点1/终点1>: 第一个向量的起点和终点坐标
* <起点2/终点2>: 第二个向量的起点和终点坐标
* <曲线1/曲线2>: 曲线实体或几何对象
* [容差]: 垂直判断容差(默认系统变量)

返回值:
垂直时返回T,否则返回NIL

示例用法1(点坐标输入):
(xdrx-geom-isperp '(0 0 0) '(1 0 0) '(0 1 0) '(0 2 0))
返回: T

示例用法2(实体输入):
(xdrx-geom-isperp line1 line2 0.001)

注意事项:
1. 支持2D和3D向量
2. 自动处理向量归一化
3. 支持曲线实体和几何对象
4. 结果受容差参数影响
------------------------------------------------------------
26
函数名称: xdrx-geom-makeparabola

描述:
该函数根据抛物线方程参数创建抛物线样条曲线,支持标准抛物线方程y=ax²+bx+c。

调用格式:
(xdrx-geom-makeparabola <a> <b> <c> <高度>)

参数说明:
* <a>: 抛物线方程二次项系数
* <b>: 抛物线方程一次项系数
* <c>: 抛物线方程常数项
* <高度>: 抛物线的高度控制参数

返回值:
成功时返回创建的抛物线实体,失败时返回NIL

示例用法:
(xdrx-geom-makeparabola 1 0 0 10)
返回: 创建的抛物线实体

注意事项:
1. 仅支持标准抛物线方程y=ax²+bx+c
2. 自动处理抛物线开口方向
3. 高度参数控制抛物线形状
4. 无效方程会返回错误
------------------------------------------------------------
27
函数名称: xdrx-geom-pixel_unit

描述:
该函数返回当前几何像素单位值,用于图形显示和测量。

调用格式:
(xdrx-geom-pixel_unit)

参数说明:
无参数

返回值:
返回当前几何像素单位值(实数)

示例用法:
(xdrx-geom-pixel_unit)
返回: 0.1

注意事项:
1. 该值通常用于屏幕显示和图形测量
2. 返回值受当前显示设置影响
------------------------------------------------------------
28
函数名称: xdrx-geom-poly2arc

描述:
该函数将多段线转换为圆弧,支持通过三点参数计算圆弧几何属性。

调用格式:
(xdrx-geom-poly2arc <点1> <凸度> <点2>)

参数说明:
* <点1>: 圆弧起点坐标
* <凸度>: 圆弧凸度值(正数表示逆时针,负数表示顺时针)
* <点2>: 圆弧终点坐标

返回值:
返回包含圆弧属性的列表:(标志位 圆心点 半径 起始角 终止角)

示例用法:
(xdrx-geom-poly2arc '(0 0 0) 0.5 '(10 0 0))
返回: (T (5.0 2.5 0.0) 5.0 0.0 3.14159)

注意事项:
1. 凸度值决定圆弧方向
2. 自动计算圆心位置和半径
3. 返回角度单位为弧度
------------------------------------------------------------
29
函数名称: xdrx-geom-relation
函数别名: xdrx-geom-topology_relation,xdrx-geom-topolrelation

描述:
该函数分析两个几何对象或点与几何对象之间的空间关系,返回关系类型代码。

调用格式1(实体间关系):
(xdrx-geom-relation <实体1> <实体2> )

调用格式2(点与实体关系):
(xdrx-geom-relation <实体> <点>)

参数说明:
* <实体1/实体>: 第一个几何实体或曲线对象
* <实体2>: 第二个几何实体或曲线对象
* <点>: 要测试的点坐标
* : 可选参数,指定是否仅检测相切关系

返回值:
返回表示空间关系的整型代码:
0-不相交 1-重合 2-相交 3-相切 4-包含 5-被包含 6-相切间隙 7-接触容差

示例用法1(实体间关系):
(xdrx-geom-relation ent1 ent2 T)
返回: 3 (表示相切关系)

示例用法2(点与实体关系):
(xdrx-geom-relation ent1 '(5 5 0))
返回: 4 (表示点在实体内部)

注意事项:
1. 支持曲线实体和几何对象
2. 自动处理2D/3D对象
3. 可检测多种空间关系类型
------------------------------------------------------------
30
函数名称: xdrx-geom-searchoutline

描述:
该函数搜索并提取选定实体的外轮廓,支持多种输出模式和选项。

调用格式:
(xdrx-geom-searchoutline <实体或选择集> [模式])

参数说明:
* <实体或选择集>: 单个实体、实体列表或选择集
* [第一个T/NIL]: 是否返回点坐标而非实体(T=返回点,NIL=返回实体)
* [第二个T/NIL]: 是否删除原实体(T=删除,NIL=保留)
* [模式]: 轮廓处理模式(0=区域,1=多段线,2=曲线)

返回值:
根据参数返回外轮廓实体或点坐标列表

示例用法1:
(xdrx-geom-searchoutline (ssget) T NIL 1)
返回: 外轮廓点坐标列表

示例用法2:
(xdrx-geom-searchoutline ent1 NIL T 0)
返回: 创建的外轮廓区域实体并删除原实体

注意事项:
1. 支持单个实体或选择集输入
2. 自动处理复杂嵌套轮廓
3. 输出模式影响返回结果类型
4. 全局变量影响容差和精度设置
------------------------------------------------------------
31
函数名称: xdrx-geom-searchregions

描述:
该函数搜索并创建选定实体的边界区域,支持多种输出模式和选项控制。

调用格式:
(xdrx-geom-searchregions <实体或选择集> [模式] [延伸长度])

参数说明:
* <实体或选择集>: 单个实体、实体列表或选择集
* [第一个T/NIL]: 是否仅保留最大区域(T=仅最大区域,NIL=所有区域)
* [第二个T/NIL]: 是否删除原实体(T=删除,NIL=保留)
* [模式]: 区域处理模式(0=区域,1=多段线,2=几何实体)
* [延伸长度]: 边界线延伸距离(实数)

返回值:
根据参数返回创建的边界区域实体

示例用法1:
(xdrx-geom-searchregions (ssget) T NIL 0 10.0)
返回: 创建的最大边界区域实体

示例用法2:
(xdrx-geom-searchregions ent1 NIL T 1)
返回: 创建的多段线边界并删除原实体

注意事项:
1. 支持几何实体和CAD实体输入
2. 可控制是否自动删除原实体
3. 延伸长度参数影响边界生成
4. 全局变量影响处理精度和输出
------------------------------------------------------------
32
函数名称: xdrx-geom-traceboundary

描述:
该函数通过种子点追踪边界创建闭合多段线,支持多种边界检测模式和选项控制。

调用格式:
(xdrx-geom-traceboundary <种子点> [容差] [实体或选择集])

参数说明:
* <种子点>: 边界追踪的起始点坐标
* : 是否检测岛屿边界(T=检测岛屿,NIL=不检测)
* [容差]: 边界追踪的容差值(实数)
* [实体或选择集]: 限制边界追踪的实体或选择集

返回值:
返回创建的边界多段线实体

示例用法1:
(xdrx-geom-traceboundary '(5 5 0) T 0.001)
返回: 创建的包含岛屿的边界多段线

示例用法2:
(xdrx-geom-traceboundary '(10 10 0) NIL 0.01 (ssget))
返回: 在选定实体范围内创建的不含岛屿的边界

注意事项:
1. 自动处理屏幕外实体
2. 支持几何实体和CAD实体输入
3. 容差参数影响边界精度
4. 临时隐藏非相关实体以提高性能
------------------------------------------------------------
33
函数名称: xdrx-geom-trimregions

描述:
该函数使用边界曲线修剪源曲线,支持点集或实体作为输入,可保留或替换原实体。

调用格式:
(xdrx-geom-trimregions <源曲线> <边界曲线> <参考点> )

参数说明:
* <源曲线>: 要修剪的曲线(实体、点集或几何对象)
* <边界曲线>: 修剪边界(实体、点集或几何对象)
* <参考点>: 确定保留区域的参考点坐标
* : 是否创建新实体(T=创建新实体,NIL=修改原实体)

返回值:
返回修剪后的曲线实体

示例用法1:
(xdrx-geom-trimregions ent1 ent2 '(5 5 0) T)
返回: 新建的修剪后曲线实体

示例用法2:
(xdrx-geom-trimregions pts1 pts2 '(10 10 0) NIL)
返回: 修改后的源曲线实体

注意事项:
1. 支持点集自动转换为多段线
2. 自动处理闭合曲线
3. 参考点决定保留区域
4. 支持几何对象和CAD实体输入
------------------------------------------------------------
34
函数名称: xdrx-geom-view_points

描述:
该函数获取当前视图窗口的屏幕坐标点,并转换为WCS和UCS坐标。

调用格式:
(xdrx-geom-view_points)

参数说明:
无参数

返回值:
返回包含两个点的列表:(左下角点 右上角点)

示例用法:
(xdrx-geom-view_points)
返回: ((x1 y1 z1) (x2 y2 z2))

注意事项:
1. 自动处理WCS到UCS的坐标转换
2. 返回的点表示当前视图范围
3. 适用于获取屏幕显示范围
------------------------------------------------------------
35
函数名称: xdrx-geom-xtrim

描述:
该函数使用边界曲线或点集修剪实体,支持内外修剪和复制选项。

调用格式:
(xdrx-geom-xtrim <实体或选择集> <边界曲线或点集> [参考点/T/NIL] )

参数说明:
* <实体或选择集>: 要修剪的实体或选择集
* <边界曲线或点集>: 修剪边界(实体或点坐标列表)
* [参考点/T/NIL]: 参考点确定保留区域(T=外修剪,NIL=内修剪)
* : 是否复制原实体(T=复制,NIL=直接修改)

返回值:
返回修剪后的实体列表

示例用法1:
(xdrx-geom-xtrim (ssget) ent1 '(5 5 0) T)
返回: 复制并外修剪后的实体列表

示例用法2:
(xdrx-geom-xtrim ent1 pts NIL)
返回: 内修剪修改后的实体

注意事项:
1. 自动处理开放曲线为闭合多段线
2. 支持点集作为边界输入
3. 参考点决定保留区域
4. 可控制是否保留原实体
------------------------------------------------------------


页: [1]
查看完整版本: XDrxAPI 35 个几何函数处理帮助手册