XDrxAPI 166 个曲线类函数帮助手册
1函数名称: xdrx-curve->cloud
描述:
该函数将多段线转换为云线(修订云线)效果,支持多种参数控制云线形状。
调用格式:
(xdrx-curve->cloud <曲线或点集> [弦长/分段数] [凸度] [起始宽度] [终止宽度] )
参数说明:
* <曲线或点集>: 要转换的曲线实体或点坐标列表
* [弦长/分段数]: 实数=弦长距离,整数=分段数量
* [凸度]: 控制云线圆弧凸度(默认0.5206)
* [起始宽度]: 云线起始段宽度
* [终止宽度]: 云线结束段宽度
* : 是否保留多段线(T=保留)
返回值:
返回创建的云线实体或几何对象
示例用法1:
(xdrx-curve->cloud ent1 10.0 0.5)
返回: 将实体转换为弦长10、凸度0.5的云线
示例用法2:
(xdrx-curve->cloud pts 20 0.6 1.0 0.5 T)
返回: 将点集转换为20段、凸度0.6的渐变宽度云线并保留原多段线
注意事项:
1. 支持几何曲线和CAD实体输入
2. 自动处理点集为多段线
3. 凸度参数影响云线圆弧形状
4. 宽度参数控制云线粗细变化
------------------------------------------------------------
2
函数名称: xdrx-curve->curvature
描述:
该函数计算曲线在指定点或参数位置的曲率值。
调用格式:
(xdrx-curve->curvature <曲线实体> [点坐标/参数值])
参数说明:
* <曲线实体>: 要计算曲率的曲线对象
* [点坐标/参数值]: 可选的点坐标或曲线参数值
返回值:
返回指定位置的曲率值(实数)
示例用法1:
(xdrx-curve->curvature ent1 '(5 5 0))
返回: 曲线在点(5,5,0)处的曲率值
示例用法2:
(xdrx-curve->curvature ent1 0.5)
返回: 曲线在参数0.5处的曲率值
注意事项:
1. 支持通过点坐标自动计算对应参数
2. 参数值范围应在曲线定义域内
3. 返回的曲率值可能为负(表示曲率方向)
------------------------------------------------------------
3
函数名称: xdrx-curve->fit2arc
描述:
该函数将曲线分段拟合为多对相切圆弧,保证整体一阶导数连续的光滑拟合效果。
调用格式:
(xdrx-curve->fit2arc <曲线或选择集> [分段数/容差] [起点] [终点] )
参数说明:
* <曲线或选择集>: 要拟合的曲线实体或选择集
* [分段数/容差]:
- 整数=指定分段数量
- 实数=自动分段拟合容差
* [起点]: 可选起点坐标(精确控制拟合区间起点)
* [终点]: 可选终点坐标(精确控制拟合区间终点)
* : T=返回几何实体,NIL=返回CAD实体
返回值:
返回由多对相切圆弧组成的拟合结果
示例用法1:
(xdrx-curve->fit2arc ent1 10)
返回: 将曲线分成10段,每段用相切双圆弧拟合
示例用法2:
(xdrx-curve->fit2arc (ssget) 0.01 '(0 0 0) '(10 10 0) T)
返回: 按0.01容差自动分段拟合的几何圆弧
实现原理:
1. 根据分段数或容差自动划分曲线区间
2. 每个区间用两段相切圆弧拟合
3. 区间连接处保证一阶导数连续
4. 特殊处理椭圆等曲线类型
------------------------------------------------------------
4
函数名称: xdrx-curve->local
描述:
该函数获取曲线在指定区间内的局部段,支持闭合曲线的双向区间选择。
调用格式:
(xdrx-curve->local <曲线> <起点> <终点> [中间点])
参数说明:
* <曲线>: 曲线实体或几何曲线对象
* <起点>: 区间起点坐标
* <终点>: 区间终点坐标
* [中间点]: 可选中间点坐标(用于闭合曲线方向选择)
返回值:
返回指定区间内的曲线段实体
示例用法1:
(xdrx-curve->local ent1 '(0 0 0) '(10 10 0))
返回: 从(0,0,0)到(10,10,0)之间的曲线段
示例用法2:
(xdrx-curve->local ent1 '(0 0 0) '(10 10 0) '(5 5 0))
返回: 闭合曲线中经过(5,5,0)的最短路径段
实现原理:
1. 自动计算曲线上最近点作为区间端点
2. 对于闭合曲线,根据中间点选择最短路径
3. 支持CAD实体和几何曲线对象
------------------------------------------------------------
5
函数名称: xdrx-curve->mpolygon
描述:
该函数将曲线转换为MPolygon(多段线面域),支持多种输入类型和高级处理选项。
调用格式:
(xdrx-curve->mpolygon [曲线/选择集/点表] [模式] )
参数说明:
* [曲线/选择集/点表]:
- 曲线实体/选择集
- 点表格式: ((点1 点2...) (凸度1 凸度2...))
* [模式]: 整数标志位组合(1=删除原曲线, 2=去除同心区域, 4=区域搜索)
* : T=保留原曲线, NIL=删除原曲线
返回值:
返回创建的MPolygon实体
示例用法1:
(xdrx-curve->mpolygon (ssget) 3)
返回: 将选择集转换为MPolygon并删除原曲线
示例用法2:
(xdrx-curve->mpolygon '(((0 0)(10 0)(10 10)(0 10)) (0 0 0 0)) 0 T)
返回: 从点表创建MPolygon并保留输入数据
高级特性:
1. 自动处理椭圆、样条曲线等复杂曲线
2. 支持曲线拟合容差控制
3. 自动闭合开放曲线
4. 支持大比例缩放处理
5. 提供进度显示
------------------------------------------------------------
6
函数名称: xdrx-curve->polyline
描述:
将曲线转换为多段线(Polyline),支持多种输入组合和连接操作。
调用格式:
1. 单参数: (xdrx-curve->polyline <选择集>)
2. 双参数:
- (xdrx-curve->polyline <曲线1> <曲线2>)
- (xdrx-curve->polyline <曲线> <选择集>)
- (xdrx-curve->polyline <选择集> T)
3. 多参数: (xdrx-curve->polyline <实体1> ... <选择集> ... <实体2>... )
参数说明:
* <选择集>: 曲线选择集(ssget)
* <曲线>: 单个曲线实体(常驻曲线实体,API创建的非常驻曲线实体)
* T: 连接标志,存在时,尽可能多地连接多的线到POLYLINE
返回值:
1. 当参数里面存在非常驻内存曲线实体时,返回转换后的非常驻内存多段线实体表
2. 其他情况成功时返回T
示例用法:
1. 基本转换:
(xdrx-curve->polyline (ssget)) → 返回转换后的多段线实体表或T
2. 双参数连接:
(xdrx-curve->polyline ent1 ent2) → 返回连接后的多段线实体或T
3. 多参数连接:
(xdrx-curve->polyline ent1 ent2 ent3 T) → 返回连接结果实体表或T
实现特性:
1. 自动处理各种输入组合
2. 支持强制连接和智能连接模式
3. 保留原始几何属性
4. 高效处理大批量曲线
------------------------------------------------------------
7
函数名称: xdrx-curve->randomcloud
功能描述:
将多段线转换为随机点云,相比xdrx-curve->cloud提供更灵活的控制
主要差异:
参数控制:
randomcloud: 接受两个弦长参数(chordLen1, chordLen2)控制密度范围
cloud: 使用固定弦长
点分布方式:
randomcloud: 在chordLen1和chordLen2之间随机分布点
cloud: 按固定间距均匀分布点
附加控制:
randomcloud: 支持凸度、起止宽度(sWidth/eWidth)控制
cloud: 无这些参数
几何处理:
randomcloud: 可处理几何曲线(kCurve3d/kCurve2d)并返回几何实体
cloud: 仅处理数据库实体
返回值:
randomcloud: 可能返回几何实体或T
cloud: 始终返回T
使用场景:
randomcloud: 需要自然随机点分布时
cloud: 需要均匀点分布时
------------------------------------------------------------
8
函数名称: xdrx-curve->region
描述:
该函数将曲线转换为面域(region)对象,支持多种曲线类型和布尔运算(并集、交集、差集)。
调用格式:
(xdrx-curve->region <曲线/选择集/点集> [操作模式])
参数说明:
* <曲线/选择集/点集>: 可以是以下形式:
- 单个曲线实体名
- 包含曲线实体的选择集
- 点坐标列表(自动创建闭合多段线)
* [操作模式]: 整数,控制布尔运算类型:
- 0: 普通面域创建(默认)
- 1: 创建多段面域(MPolygon)并分解为多个面域
- 2: 创建单个面域
- 3: 差集运算(从第一个面域减去后续面域)
返回值:
成功时返回新创建的面域实体名,失败时返回nil
示例用法1:
(xdrx-curve->region (car (entsel)))
返回: 将所选曲线转换为面域
示例用法2:
(xdrx-curve->region (ssget) 3)
返回: 对选择集中的曲线执行差集运算创建面域
注意事项:
1. 支持3D曲线、2D曲线和多段线输入
2. 自动处理点集为闭合多段线
3. 差集运算时第一个面域为主面域
4. 默认会删除原始曲线实体
------------------------------------------------------------
8
函数名称: xdrx-curve->spline
描述:
将多段线或直线转换为样条曲线(spline),支持保留或删除原始实体。
调用格式:
(xdrx-curve->spline <曲线/选择集> )
参数说明:
* <曲线/选择集>: 要转换的多段线或直线实体/选择集
* : 可选参数,指定是否保留原始实体(T=保留)
返回值:
返回创建的样条曲线实体名
示例用法1:
(xdrx-curve->spline (car (entsel)))
返回: 将所选多段线转换为样条曲线并删除原实体
示例用法2:
(xdrx-curve->spline (ssget) T)
返回: 将选择集中的多段线转换为样条曲线并保留原实体
注意事项:
1. 支持普通多段线和2D多段线
2. 自动处理直线转换为样条曲线
3. 保留原始实体时使用对象ID交换技术
4. 默认会删除原始曲线实体
------------------------------------------------------------
9
函数名称: xdrx-curve<-geometry
描述:
将几何曲线(AcGeCurve3d)转换为CAD实体曲线,并替换目标曲线实体。
调用格式:
(xdrx-curve<-geometry <目标曲线> <几何曲线>)
参数说明:
* <目标曲线>: 要被替换的CAD曲线实体
* <几何曲线>: AcGeCurve3d类型的几何曲线对象
返回值:
成功时返回T,失败时返回nil
示例用法:
(setq dest (car (entsel "选择目标曲线")))
(setq ge-curve (xdge_curve:create-from-points pts))
(xdrx-curve<-geometry dest ge-curve)
返回: 将几何曲线应用到目标曲线实体
注意事项:
1. 目标曲线必须可写打开
2. 几何曲线必须是有效的AcGeCurve3d对象
3. 会保留目标曲线的所有属性
4. 使用handOverTo技术实现实体替换
------------------------------------------------------------
10
函数名称: xdrx-curve-3dpolyline->2d
描述:
将3D多段线转换为2D多段线,可选择转换为轻量多段线(LWPOLYLINE)或传统多段线。
调用格式:
(xdrx-curve-3dpolyline->2d <3D多段线/选择集> )
参数说明:
* <3D多段线/选择集>: 要转换的3D多段线实体或选择集
* : 可选参数,指定是否转换为轻量多段线(T=轻量多段线,默认)
返回值:
成功时返回T,失败时返回nil
示例用法1:
(xdrx-curve-3dpolyline->2d (car (entsel)))
返回: 将所选3D多段线转换为轻量多段线
示例用法2:
(xdrx-curve-3dpolyline->2d (ssget) nil)
返回: 将选择集中的3D多段线转换为传统多段线
注意事项:
1. 支持单个实体和选择集输入
2. 默认转换为轻量多段线(LWPOLYLINE)
3. 转换会保留原始多段线的顶点信息
4. Z坐标信息将被丢弃
------------------------------------------------------------
11
函数名称: xdrx-curve-area
描述:
计算曲线围成的区域面积,支持指定参数范围计算部分曲线面积。
调用格式:
(xdrx-curve-area <曲线实体> [起始参数] [结束参数])
参数说明:
* <曲线实体>: 要计算面积的曲线实体
* [起始参数]: 可选,曲线参数范围的起始值(默认曲线起点)
* [结束参数]: 可选,曲线参数范围的结束值(默认曲线终点)
返回值:
返回曲线指定参数范围内的面积值(实数)
示例用法1:
(xdrx-curve-area (car (entsel)))
返回: 计算整条曲线的面积
示例用法2:
(xdrx-curve-area ent 0.0 0.5)
返回: 计算曲线前50%部分的面积
注意事项:
1. 支持各种类型曲线(直线、圆弧、样条曲线等)
2. 参数范围自动归一化处理
3. 闭合曲线返回整个闭合区域面积
4. 非闭合曲线返回曲线与起点-终点连线围成的面积
------------------------------------------------------------
12
函数名称: xdrx-curve-box
描述:
获取曲线的最小包围盒(边界框)坐标,返回对角点坐标列表。
调用格式:
(xdrx-curve-box <曲线实体>)
参数说明:
* <曲线实体>: 要获取边界框的曲线实体
返回值:
返回包含两个三维点坐标的列表:(最小点坐标 最大点坐标)
示例用法:
(setq box (xdrx-curve-box (car (entsel))))
返回: ((10.0 20.0 0.0) (50.0 60.0 0.0))
注意事项:
1. 适用于各种类型曲线(直线、圆弧、样条曲线等)
2. 返回世界坐标系下的坐标值
3. 对于3D曲线返回3D边界框
4. 若曲线无效则返回nil
------------------------------------------------------------
13
函数名称: xdrx-curve-break
描述:
在指定点处打断曲线,支持按点或参数打断,可返回几何曲线或CAD实体。
调用格式:
(xdrx-curve-break <曲线> <打断点1> <打断点2> )
参数说明:
* <曲线>: 要打断的曲线实体或几何曲线
* <打断点1>: 第一个打断点(点坐标或参数值)
* <打断点2>: 第二个打断点(点坐标或参数值)
* : 可选参数,指定返回几何曲线(T=返回几何曲线)
返回值:
返回打断后的曲线实体列表或几何曲线列表
示例用法1:
(xdrx-curve-break ent pt1 pt2)
返回: 在pt1和pt2处打断曲线,返回CAD实体列表
示例用法2:
(xdrx-curve-break ge-curve param1 param2 T)
返回: 在参数param1和param2处打断几何曲线
注意事项:
1. 支持CAD实体和几何曲线两种输入
2. 闭合曲线会生成两段曲线
3. 自动处理参数顺序
4. 保留原始曲线属性
------------------------------------------------------------
14
函数名称: xdrx-curve-isclockwise
函数别名: xdrx-curve-direction
描述:
判断曲线或点集的顺时针方向性,返回布尔值表示是否为顺时针方向。
调用格式:
(xdrx-curve-isclockwise <曲线/点集>)
参数说明:
* <曲线/点集>: 可以是曲线实体、几何曲线或点坐标列表
返回值:
T表示顺时针方向,nil表示逆时针方向或直线
示例用法1:
(xdrx-curve-isclockwise (car (entsel)))
返回: 判断所选曲线的方向性
示例用法2:
(xdrx-curve-isclockwise '((0 0) (1 0) (1 1) (0 1)))
返回: 判断点集组成的多边形方向
注意事项:
1. 支持CAD实体、几何曲线和点列表三种输入
2. 对于直线返回nil
3. 自动处理点集顺序
4. 使用10个采样点进行计算
------------------------------------------------------------
15
函数名称: xdrx-curve-closestpoint
描述:
计算曲线到点或其他曲线的最短距离和最近点,返回距离和最近点坐标。
调用格式:
(xdrx-curve-closestpoint <曲线1> <曲线2/点> )
参数说明:
* <曲线1>: 第一条曲线实体
* <曲线2/点>: 第二条曲线实体或点坐标
* : 可选参数,指定是否考虑曲线延伸(T=考虑延伸)
返回值:
返回列表:(距离 曲线1上的最近点 曲线2/输入点上的点)
示例用法1:
(xdrx-curve-closestpoint curve1 curve2)
返回: 两条曲线间的最短距离和最近点
示例用法2:
(xdrx-curve-closestpoint curve pt T)
返回: 曲线到点的最短距离(考虑延伸)和最近点
注意事项:
1. 支持曲线-曲线和曲线-点两种计算模式
2. 自动处理UCS坐标转换
3. 使用几何库精确计算
4. 返回世界坐标系下的点坐标
------------------------------------------------------------
16
函数名称: xdrx-curve-extend
描述:
延伸曲线到边界(点、曲线或多段线),支持控制延伸方向。
调用格式:
(xdrx-curve-extend <曲线集> <边界> [延伸方向] [边界延伸方向])
参数说明:
* <曲线集>: 要延伸的曲线实体或选择集
* <边界>: 边界点、曲线或多段线
* [延伸方向]: T=向终点延伸,nil=向起点延伸(默认自动判断)
* [边界延伸方向]: T=延伸边界曲线,nil=不延伸(默认)
返回值:
成功时返回T,失败返回nil
示例用法1:
(xdrx-curve-extend curve1 curve2)
返回: 将curve1延伸到curve2
示例用法2:
(xdrx-curve-extend (ssget) pt T)
返回: 将选择集内曲线延伸到点(强制终点延伸)
注意事项:
1. 支持单曲线和选择集输入
2. 边界可以是点、单曲线或多段线
3. 自动处理闭合曲线
4. 保留原始曲线属性
------------------------------------------------------------
17
函数名称: xdrx-curve-fillet
描述:
在两条曲线之间创建圆角过渡,支持指定半径和过渡点。
调用格式:
(xdrx-curve-fillet <曲线1> <曲线2> [半径] )
参数说明:
* <曲线1>: 第一条曲线实体
* <曲线2>: 第二条曲线实体
* [半径]: 圆角半径值(可选)
* : 可选参数,指定是否转换为多段线(T=转换)
返回值:
成功时返回创建的圆角实体或合并后的多段线,失败返回nil
示例用法1:
(xdrx-curve-fillet curve1 curve2 5.0)
返回: 在两条曲线间创建半径为5的圆角
示例用法2:
(xdrx-curve-fillet curve1 curve2 pt1 pt2 10.0 T)
返回: 在指定点处创建半径10的圆角并转换为多段线
注意事项:
1. 支持几何曲线和CAD实体两种输入
2. 自动处理曲线方向
3. 保留原始曲线属性
4. 支持指定过渡点精确控制圆角位置
------------------------------------------------------------
18
函数名称: xdrx-curve-fit_segments
描述:
将椭圆弧拟合成多段直线段,返回拟合后的线段集合。
调用格式:
(xdrx-curve-fit_segments <椭圆实体> [公差])
参数说明:
* <椭圆实体>: 要拟合的椭圆或椭圆弧实体
* [公差]: 拟合精度公差(默认0.1)
返回值:
返回拟合后的直线段实体列表
示例用法:
(xdrx-curve-fit_segments (car (entsel)) 0.05)
返回: 将所选椭圆弧按0.05公差拟合成直线段
注意事项:
1. 仅支持椭圆/椭圆弧实体
2. 公差值越小拟合精度越高
3. 返回的线段为几何实体
4. 自动计算最优分段数
------------------------------------------------------------
19
函数名称: xdrx-curve-getclosestpoint
描述:
计算曲线或点集到指定点的最近点坐标,支持扩展曲线选项。
调用格式:
(xdrx-curve-getclosestpoint <曲线/点集> <目标点> )
参数说明:
* <曲线/点集>: 曲线实体或点坐标列表
* <目标点>: 要计算最近点的目标位置
* : 可选参数,是否考虑曲线延伸(T=考虑延伸)
返回值:
返回最近点的坐标
示例用法1:
(xdrx-curve-getclosestpoint curve1 pt)
返回: 曲线1上距离pt最近的点
示例用法2:
(xdrx-curve-getclosestpoint (list pt1 pt2 pt3) pt T)
返回: 多段线上距离pt最近的点(考虑延伸)
与xdrx-curve-closestpoint的区别:
1. 本函数返回单个最近点坐标
2. 支持点集输入自动构造临时曲线
3. 不返回距离值
4. 计算效率更高
------------------------------------------------------------
20
函数名称: xdrx-curve-projclosestpoint
描述:
计算曲线或点集在指定投影方向上的最近点坐标,支持扩展曲线选项。
调用格式:
(xdrx-curve-projclosestpoint <曲线/点集> <目标点> <投影方向> )
参数说明:
* <曲线/点集>: 曲线实体或点坐标列表
* <目标点>: 要计算最近点的目标位置
* <投影方向>: 投影方向向量
* : 可选参数,是否考虑曲线延伸(T=考虑延伸)
返回值:
返回投影方向上的最近点坐标
示例用法1:
(xdrx-curve-projclosestpoint curve1 pt '(0 1 0))
返回: 曲线1在Y轴方向上距离pt最近的点
示例用法2:
(xdrx-curve-projclosestpoint (list pt1 pt2 pt3) pt '(1 0 0) T)
返回: 多段线在X轴方向上距离pt最近的点(考虑延伸)
与xdrx-curve-getclosestpoint的区别:
1. 本函数考虑投影方向计算最近点
2. 返回的是沿指定方向投影的最近点
3. 适用于需要方向约束的场景
------------------------------------------------------------
21
函数名称: xdrx-curve-getdistatparam
描述:
根据曲线参数获取曲线长度或两点间的曲线段长度,支持2D/3D几何曲线。
调用格式:
(xdrx-curve-getdistatparam <曲线> <参数1> [参数2])
参数说明:
* <曲线>: 曲线实体或几何曲线对象
* <参数1>: 起始参数值
* [参数2]: 结束参数值(可选,不提供则返回起点到参数1的长度)
返回值:
返回曲线长度值(当提供参数2时返回两点间的曲线段长度)
示例用法1:
(xdrx-curve-getdistatparam curve1 0.5)
返回: 曲线起点到参数0.5处的长度
示例用法2:
(xdrx-curve-getdistatparam curve1 0.2 0.8)
返回: 参数0.2到0.8之间的曲线段长度
注意事项:
1. 支持CAD实体曲线和几何曲线两种输入
2. 参数值应在曲线有效范围内
3. 自动处理2D/3D曲线类型
4. 返回值为非负实数
------------------------------------------------------------
22
函数名称: xdrx-curve-getdistatpoint
描述:
根据曲线上点的位置获取曲线长度或两点间的曲线段长度,自动处理捕捉设置。
调用格式:
(xdrx-curve-getdistatpoint <曲线> <点1> [点2])
参数说明:
* <曲线>: 曲线实体
* <点1>: 曲线上第一个点
* [点2]: 曲线上第二个点(可选,不提供则返回起点到点1的长度)
返回值:
返回曲线长度值(当提供点2时返回两点间的曲线段长度)
示例用法1:
(xdrx-curve-getdistatpoint curve1 pt1)
返回: 曲线起点到点pt1处的长度
示例用法2:
(xdrx-curve-getdistatpoint curve1 pt1 pt2)
返回: 点pt1到pt2之间的曲线段长度
注意事项:
1. 自动关闭捕捉设置确保计算精度
2. 点参数应为曲线上或曲线附近的点
3. 支持多段线等复杂曲线类型
4. 返回值为非负实数
------------------------------------------------------------
23
函数名称: xdrx-curve-getendparam
描述:
获取曲线终点的参数值,适用于各种曲线类型。
调用格式:
(xdrx-curve-getendparam <曲线>)
参数说明:
* <曲线>: 曲线实体
返回值:
返回曲线终点的参数值
示例用法:
(xdrx-curve-getendparam (car (entsel)))
返回: 所选曲线终点的参数值
注意事项:
1. 参数值范围取决于曲线类型
2. 对于闭合曲线,返回最大参数值
3. 支持直线、圆弧、多段线等常见曲线
------------------------------------------------------------
24
函数名称: xdrx-curve-getendpoint
描述:
获取曲线终点的坐标值,支持几何曲线和CAD实体曲线两种输入方式。
调用格式:
(xdrx-curve-getendpoint <曲线>)
参数说明:
* <曲线>: 曲线实体或几何曲线对象(kCurve2d/kCurve3d)
返回值:
返回曲线终点的三维坐标列表
示例用法1:
(xdrx-curve-getendpoint (car (entsel)))
返回: 所选CAD曲线终点的坐标
示例用法2:
(xdrx-curve-getendpoint geCurve)
返回: 几何曲线geCurve终点的坐标
注意事项:
1. 自动处理2D/3D几何曲线
2. 对于几何曲线输入,会创建临时CAD曲线进行计算
3. 返回值为WCS坐标系下的点坐标
------------------------------------------------------------
25
函数名称: xdrx-curve-getfirstderiv
描述:
获取曲线在指定参数点或位置点的一阶导数向量,支持参数化和非参数化输入。
调用格式:
(xdrx-curve-getfirstderiv <曲线> <参数/点> )
参数说明:
* <曲线>: 曲线实体或几何曲线对象(kCurve2d/kCurve3d)
* <参数/点>: 参数值(实数)或曲线上的点
* : 可选参数,指定是否归一化导数向量(T=归一化)
返回值:
返回一阶导数向量(三维坐标列表)
示例用法1:
(xdrx-curve-getfirstderiv curve1 0.5)
返回: 参数0.5处的一阶导数向量
示例用法2:
(xdrx-curve-getfirstderiv curve1 pt T)
返回: 点pt处归一化的一阶导数向量
注意事项:
1. 自动处理2D/3D几何曲线
2. 支持参数直接输入或通过点位置自动计算参数
3. 对于多段线会自动进行类型转换
4. 默认返回非归一化向量,加T参数返回单位向量
------------------------------------------------------------
26
函数名称: xdrx-get-inters
描述:
计算曲线、实体或点集之间的交点,支持多种输入类型和扩展选项。
调用格式:
(xdrx-get-inters <实体集1> <实体集2> [扩展模式])
参数说明:
* <实体集1>: 曲线实体、几何曲线、选择集或点列表
* <实体集2>: 曲线实体、几何曲线、选择集或点列表(可选)
* [扩展模式]: 0-不扩展(默认),1-扩展第一实体,2-扩展第二实体,3-双向扩展
返回值:
返回交点坐标列表
示例用法1:
(xdrx-get-inters (ssget) (ssget))
返回: 两个选择集中所有实体的交点
示例用法2:
(xdrx-get-inters (list pt1 pt2 pt3) (list pt4 pt5 pt6) 3)
返回: 两条多段线的所有交点(双向扩展)
注意事项:
1. 支持几何曲线(kCurve2d/kCurve3d)自动转换为CAD实体
2. 点列表自动构造临时多段线
3. 支持填充、面域和块参照等复杂实体
4. 自动清理临时创建的实体
------------------------------------------------------------
27
函数名称: xdrx-curve-getoffsetcurves
函数别名: xdrx-curve-offset
描述:
生成曲线的偏移曲线,支持多种输入类型和输出选项。
调用格式:
(xdrx-curve-getoffsetcurves <曲线> <偏移距离> [选项])
参数说明:
* <曲线>: 曲线实体、几何曲线、选择集或点列表
* <偏移距离>: 偏移距离值(可正可负)或距离列表
* [选项]: T-返回点列表, nil-返回几何曲线, 默认返回CAD实体
返回值:
根据选项返回偏移曲线实体、点列表或几何曲线
示例用法1:
(xdrx-curve-getoffsetcurves curve1 10.0)
返回: 偏移10个单位的CAD曲线实体
示例用法2:
(xdrx-curve-getoffsetcurves (list pt1 pt2 pt3) "5,10,15" T)
返回: 三个偏移距离对应的点列表
注意事项:
1. 支持几何曲线(kCurve2d/kCurve3d)自动转换
2. 点列表自动构造临时多段线
3. 自动判断曲线方向确定偏移方向
4. 支持进度条显示处理进度
------------------------------------------------------------
28
函数名称: xdrx-curve-getoverlaps
描述:
计算两条曲线之间的重叠部分,返回重叠段的参数范围或坐标点。
调用格式:
(xdrx-curve-getoverlaps <曲线1> <曲线2> )
参数说明:
* <曲线1>: 第一条曲线实体
* <曲线2>: 第二条曲线实体
* : 可选参数,指定返回坐标点而非参数值
返回值:
返回包含以下内容的列表:
1. 曲线1的重叠段参数/点范围列表
2. 曲线1的总参数/点范围和长度信息
3. 曲线2的重叠段参数/点范围列表
4. 曲线2的总参数/点范围和长度信息
示例用法1:
(xdrx-curve-getoverlaps curve1 curve2)
返回: 参数范围形式的重叠信息
示例用法2:
(xdrx-curve-getoverlaps curve1 curve2 T)
返回: 坐标点形式的重叠信息
注意事项:
1. 支持多种曲线类型(直线、圆弧、多段线等)
2. 返回信息包含每段重叠的起止参数/点
3. 同时返回曲线总长度和重叠部分总长度
------------------------------------------------------------
29
函数名称: xdrx-curve-getparamatdist
描述:
根据距离获取曲线上的参数值,支持多种输入方式和方向控制。
调用格式:
(xdrx-curve-getparamatdist <曲线> <距离> [起始参数/点] [方向])
参数说明:
* <曲线>: 曲线实体或几何曲线对象(kCurve2d/kCurve3d)
* <距离>: 要计算参数的距离值
* [起始参数/点]: 起始参数值或曲线上的点(可选)
* [方向]: T-反向计算(可选)
返回值:
返回曲线上的参数值
示例用法1:
(xdrx-curve-getparamatdist curve1 10.0)
返回: 从起点开始10单位距离处的参数值
示例用法2:
(xdrx-curve-getparamatdist curve1 5.0 pt T)
返回: 从点pt开始反向5单位距离处的参数值
注意事项:
1. 支持几何曲线和CAD实体曲线
2. 可指定起始位置(参数或点)
3. 可控制计算方向(正向或反向)
4. 自动处理临时创建的几何曲线
------------------------------------------------------------
30
函数名称: xdrx-curve-getparamatpoint
描述:
获取曲线上某点对应的参数值,支持多种曲线类型和查找模式。
调用格式:
(xdrx-curve-getparamatpoint <曲线> <点> [模式])
参数说明:
* <曲线>: 曲线实体或几何曲线对象(kCurve2d/kCurve3d)
* <点>: 要查询的点坐标
* [模式]: T-最近点模式(默认), nil-精确点模式, 多T-多段线多解模式
返回值:
返回点对应的参数值或多段线的多个参数值
示例用法1:
(xdrx-curve-getparamatpoint curve1 pt1)
返回: pt1在curve1上最近点的参数值
示例用法2:
(xdrx-curve-getparamatpoint pline1 pt1 T T)
返回: pt1在多段线pline1上的所有可能参数值
注意事项:
1. 支持几何曲线和CAD实体曲线
2. 自动处理最近点和精确点两种模式
3. 多段线支持返回多个可能的参数值
4. 自动清理临时创建的几何曲线
------------------------------------------------------------
31
函数名称: xdrx-curve-getplane
描述:
获取曲线所在的平面信息,包括平面坐标系和平面性标志。
调用格式:
(xdrx-curve-getplane <曲线> )
参数说明:
* <曲线>: 曲线实体
* : 可选参数,指定返回修正后的坐标系
返回值:
返回包含以下内容的列表:
1. 平面性标志(0-非平面,1-平面,2-共面)
2. 平面原点坐标
3. X轴向量
4. Y轴向量
示例用法1:
(xdrx-curve-getplane curve1)
返回: 曲线平面坐标系信息
示例用法2:
(xdrx-curve-getplane curve1 T)
返回: 修正后的曲线平面坐标系信息
注意事项:
1. 自动判断曲线的平面性
2. 可返回原始或修正后的坐标系
3. 向量已做归一化处理
4. 支持多种曲线类型
------------------------------------------------------------
32
函数名称: xdrx-curve-getpoint
描述:
获取曲线的关键点坐标,包括起点、中点和终点。
调用格式:
(xdrx-curve-getpoint <曲线>)
参数说明:
* <曲线>: 曲线实体或几何曲线对象(kCurve2d/kCurve3d)
返回值:
返回包含以下内容的列表:
1. 起点坐标
2. 中点坐标
3. 终点坐标
示例用法:
(xdrx-curve-getpoint curve1)
返回: (起点 中点 终点)坐标列表
注意事项:
1. 支持几何曲线和CAD实体曲线
2. 自动计算曲线的中点位置
3. 自动清理临时创建的几何曲线
4. 返回世界坐标系下的点坐标
------------------------------------------------------------
33
函数名称: xdrx-curve-getpointatdist
描述:
根据距离获取曲线上的点坐标,支持相对距离计算和多种输入方式。
调用格式:
(xdrx-curve-getpointatdist <曲线> <距离> [参考点])
参数说明:
* <曲线>: 曲线实体或几何曲线对象(kCurve2d/kCurve3d)
* <距离>: 绝对距离值或相对距离值
* [参考点]: 可选参考点,用于计算相对距离
返回值:
返回曲线上的点坐标
示例用法1:
(xdrx-curve-getpointatdist curve1 10.0)
返回: 距离起点10单位处的点坐标
示例用法2:
(xdrx-curve-getpointatdist curve1 5.0 pt1)
返回: 从pt1开始再延伸5单位处的点坐标
注意事项:
1. 支持几何曲线和CAD实体曲线
2. 可基于参考点计算相对距离
3. 自动处理曲线长度限制
4. 自动清理临时创建的几何曲线
------------------------------------------------------------
34
函数名称: xdrx-curve-getpointatparam
描述:
根据参数值获取曲线上的点坐标,支持多种曲线类型和参数范围检查。
调用格式:
(xdrx-curve-getpointatparam <曲线> <参数>)
参数说明:
* <曲线>: 曲线实体或几何曲线对象(kCurve2d/kCurve3d)
* <参数>: 曲线参数值(实数或整数)
返回值:
返回曲线上的点坐标
示例用法:
(xdrx-curve-getpointatparam curve1 0.5)
返回: 参数0.5对应的点坐标
注意事项:
1. 支持几何曲线和CAD实体曲线
2. 自动检查参数范围有效性
3. 参数超出范围时自动截断到端点
4. 自动清理临时创建的几何曲线
------------------------------------------------------------
35
函数名称: xdrx-curve-getpointsatdist
描述:
按指定间隔距离获取曲线上的一系列点坐标,支持闭合曲线和多种输入方式。
调用格式:
(xdrx-curve-getpointsatdist <曲线> <间隔距离> [起始点])
参数说明:
* <曲线>: 曲线实体或几何曲线对象(kCurve2d/kCurve3d)
* <间隔距离>: 点之间的间隔距离(可正可负)
* [起始点]: 可选起始点,用于指定开始位置
返回值:
返回曲线上按间隔距离生成的点坐标列表
示例用法1:
(xdrx-curve-getpointsatdist curve1 5.0)
返回: 从起点开始每5单位间隔的点列表
示例用法2:
(xdrx-curve-getpointsatdist curve1 3.0 pt1)
返回: 从pt1开始每3单位间隔的点列表
注意事项:
1. 支持几何曲线和CAD实体曲线
2. 自动处理闭合曲线的循环计算
3. 间隔距离为负值时反向计算
4. 自动清理临时创建的几何曲线
------------------------------------------------------------
36
函数名称: xdrx-curve-getpointsatdists
描述:
根据指定的距离序列获取曲线上对应的点坐标,支持多种输入方式和参数控制。
调用格式:
(xdrx-curve-getpointsatdists <曲线> <距离列表> [起始点] [结束点])
参数说明:
* <曲线>: 曲线实体或几何曲线对象(kCurve2d/kCurve3d)
* <距离列表>: 距离值列表或等分数
* [起始点]: 可选起始点
* [结束点]: 可选结束点
返回值:
返回曲线上对应距离的点坐标列表
示例用法1:
(xdrx-curve-getpointsatdists curve1 '(5.0 10.0 15.0))
返回: 距离起点5,10,15单位处的点列表
示例用法2:
(xdrx-curve-getpointsatdists curve1 10 pt1 pt2)
返回: 从pt1到pt2之间10等分的点列表
注意事项:
1. 支持几何曲线和CAD实体曲线
2. 可指定起始点和结束点
3. 支持等分模式和精确距离模式
4. 自动处理曲线方向
5. 自动清理临时创建的几何曲线
------------------------------------------------------------
37
函数名称: xdrx-curve-projcurve
描述:
将曲线投影到指定平面,支持正交投影和方向投影两种模式。
调用格式:
(xdrx-curve-projcurve <曲线> <平面定义> [投影方向])
参数说明:
* <曲线>: 曲线实体或选择集
* <平面定义>: 平面定义方式,支持以下格式:
- (原点 法向量)
- (原点 X轴 Y轴)
- (原点 X轴 Y轴 Z轴)
* [投影方向]: 可选投影方向向量(非正交投影时使用)
返回值:
返回投影后的曲线实体
示例用法1:
(xdrx-curve-projcurve curve1 '(原点 法向量))
返回: 曲线在平面上的正交投影
示例用法2:
(xdrx-curve-projcurve curve1 '(原点 X轴 Y轴) 方向向量)
返回: 按指定方向投影到平面的曲线
注意事项:
1. 支持选择集和单个曲线实体
2. 支持多种平面定义方式
3. 默认使用正交投影模式
4. 指定方向向量时使用方向投影模式
5. 自动处理数据库锁定和事务
------------------------------------------------------------
38
函数名称: xdrx-curve-getsamplepoints
描述:
获取曲线的采样点,支持按精度或等分数采样,可返回点坐标和参数值。
调用格式:
(xdrx-curve-getsamplepoints <曲线> [精度/等分数] [起始参数] [结束参数] [返回参数标志])
参数说明:
* <曲线>: 曲线实体或几何曲线对象
* [精度/等分数]: 采样精度(实数)或等分数(整数)
* [起始参数]: 采样起始参数值
* [结束参数]: 采样结束参数值
* [返回参数标志]: T-返回参数值,nil-返回点坐标
返回值:
返回采样点坐标列表或参数值列表
示例用法1:
(xdrx-curve-getsamplepoints curve1 0.1)
返回: 按0.1精度采样的点坐标列表
示例用法2:
(xdrx-curve-getsamplepoints curve1 10 T)
返回: 10等分点的参数值列表
注意事项:
1. 支持几何曲线和CAD实体曲线
2. 自动处理闭合曲线
3. 可指定采样区间
4. 支持返回点坐标或参数值
5. 自动清理临时创建的几何曲线
------------------------------------------------------------
39
函数名称: xdrx-curve-getsecondderiv
描述:
获取曲线在指定点的二阶导数向量,支持参数点或坐标点输入。
调用格式:
(xdrx-curve-getsecondderiv <曲线> <参数/点> [归一化标志])
参数说明:
* <曲线>: 曲线实体或几何曲线对象
* <参数/点>: 参数值(实数)或点坐标
* [归一化标志]: T-返回归一化向量,nil-返回原始向量
返回值:
返回二阶导数向量
示例用法1:
(xdrx-curve-getsecondderiv curve1 0.5)
返回: 参数0.5处的二阶导数向量
示例用法2:
(xdrx-curve-getsecondderiv curve1 '(1 2 3) T)
返回: 点(1,2,3)处的归一化二阶导数向量
注意事项:
1. 支持几何曲线和CAD实体曲线
2. 自动处理2D多段线转换
3. 可指定是否归一化结果向量
4. 自动清理临时创建的几何曲线
------------------------------------------------------------
40
函数名称: xdrx-curve-getsplitcurves
描述:
根据指定的分割点或参数将曲线分割为多段子曲线,支持返回CAD实体或几何曲线。
调用格式:
(xdrx-curve-getsplitcurves <曲线> <分割点/参数列表> [返回几何曲线标志])
参数说明:
* <曲线>: 要分割的曲线实体
* <分割点/参数列表>: 分割点坐标或参数值列表
* [返回几何曲线标志]: T-返回几何曲线,nil-返回CAD实体(默认)
返回值:
返回分割后的子曲线列表
示例用法1:
(xdrx-curve-getsplitcurves curve1 '(0.3 0.6))
返回: 在参数0.3和0.6处分割后的3段曲线实体
示例用法2:
(xdrx-curve-getsplitcurves curve1 '(p1 p2 p3) T)
返回: 在点p1,p2,p3处分割后的几何曲线列表
注意事项:
1. 自动处理闭合曲线特殊情况
2. 支持参数值和点坐标两种分割方式
3. 可控制返回CAD实体或几何曲线
4. 自动处理多段线类型曲线
5. 确保分割点在曲线有效范围内
------------------------------------------------------------
41
函数名称: xdrx-curve-getstartparam
描述:
获取曲线的起始参数值,对应万能对象属性获取函数(xdrx-getpropertyvalue curve "startparam")
调用格式:
(xdrx-curve-getstartparam <曲线>)
参数说明:
* <曲线>: 曲线实体
返回值:
返回曲线的起始参数值
示例用法:
(xdrx-curve-getstartparam curve1)
返回: 0.0 (曲线的起始参数值)
注意事项:
1. 等价于调用(xdrx-getpropertyvalue curve "startparam")
2. 适用于所有曲线类型
3. 参数值范围取决于具体曲线类型
------------------------------------------------------------
42
函数名称: xdrx-curve-getstartpoint
描述:
获取曲线的起点坐标
调用格式:
(xdrx-curve-getstartpoint <曲线>)
参数说明:
* <曲线>: 曲线实体或几何曲线对象
返回值:
返回曲线的起点坐标
示例用法:
(xdrx-curve-getstartpoint curve1)
返回: (0.0 0.0 0.0) (曲线的起点坐标)
注意事项:
1. 等价调用方式: (xdrx-getpropertyvalue curve "startpoint")
2. 支持几何曲线和CAD实体曲线
3. 自动清理临时创建的几何曲线
------------------------------------------------------------
43
函数名称: xdrx-curve-isoverlapping
描述:
判断两条曲线是否存在重叠部分
调用格式:
(xdrx-curve-isoverlapping <曲线1> <曲线2>)
参数说明:
* <曲线1>: 第一条曲线实体
* <曲线2>: 第二条曲线实体
返回值:
T - 存在重叠
nil - 不存在重叠
示例用法:
(xdrx-curve-isoverlapping curve1 curve2)
返回: T (表示两条曲线存在重叠部分)
注意事项:
1. 适用于所有曲线类型
2. 自动处理曲线参数范围
3. 精确计算曲线重叠关系
------------------------------------------------------------
44
函数名称: xdrx-curve-getprop
描述:
获取曲线的几何属性信息,包括周长、面积、质心、惯性矩等
调用格式:
(xdrx-curve-getprop <曲线/点列表>)
参数说明:
* <曲线/点列表>: 曲线实体或点坐标列表(用于创建临时多段线)
返回值:
返回包含以下属性的关联列表:
- Perimeter: 周长
- Area: 面积
- Centroid: 质心坐标
- MomInertia: 惯性矩(X,Y)
- ProdInertia: 惯性积
- PrinMoments: 主惯性矩
- PrinAxes: 主轴方向向量
- RadGyration: 回转半径
- Box: 包围盒对角点
示例用法:
(xdrx-curve-getprop curve1)
返回: ((Perimeter . 100.0) (Area . 500.0) (Centroid . (10.0 20.0)) ...)
注意事项:
1. 支持直接传入曲线实体或点列表
2. 点列表会自动创建临时多段线计算属性
3. 所有坐标值已转换为当前UCS坐标系
------------------------------------------------------------
45
函数名称: xdrx-curve-intersect
描述:
计算两条曲线的交点或交线,根据系统变量返回不同结果类型
调用格式:
(xdrx-curve-intersect <曲线1> <曲线2> [返回点标志])
参数说明:
* <曲线1>: 第一条曲线实体/点列表
* <曲线2>: 第二条曲线实体/点列表
* [返回点标志]: T-强制返回交点坐标,nil-根据系统变量返回
返回值:
1. 当返回点标志为T时: 返回交点坐标列表
2. 当系统变量"EntMakeToGe"=1时: 返回几何实体列表
3. 当生成新实体时: 返回选择集
4. 其他情况: 返回交点坐标
示例用法1:
(xdrx-curve-intersect curve1 curve2 T)
返回: ((1.0 2.0 0.0) (3.0 4.0 0.0)) (交点坐标)
示例用法2:
(setvar "EntMakeToGe" 1)
(xdrx-curve-intersect curve1 curve2)
返回: (几何实体列表)
注意事项:
1. 支持CAD实体曲线和点列表输入
2. 点列表会自动创建临时多段线
3. 返回值类型受系统变量控制
------------------------------------------------------------
46
函数名称: xdrx-curve-intersectbreak
描述:
在曲线交点处打断曲线,支持多种打断模式和容差设置
调用格式:
(xdrx-curve-intersectbreak <曲线选择集> [容差] [打断模式] [延伸标志])
参数说明:
* <曲线选择集>: 曲线实体或选择集
* [容差]: 打断操作的距离容差(实数或整数)
* [打断模式]: T-自相交打断/nil-仅相交打断
* [延伸标志]: T-允许延伸打断/nil-不延伸
返回值:
返回打断后生成的新实体选择集
示例用法1:
(xdrx-curve-intersectbreak (ssget) 0.01 T nil)
在0.01容差下自相交打断选择集中的曲线
示例用法2:
(xdrx-curve-intersectbreak curve1 nil nil T)
打断单条曲线并允许延伸
注意事项:
1. 支持多曲线同时打断
2. 自动处理容差和延伸参数
3. 保留原始曲线属性
------------------------------------------------------------
47
函数名称: xdrx-curve-isanticlockwise
描述:
判断曲线是否为逆时针方向
调用格式:
(xdrx-curve-isanticlockwise <曲线/点列表>)
参数说明:
* <曲线/点列表>: 曲线实体或点坐标列表
返回值:
T - 曲线为逆时针方向
nil - 曲线为顺时针方向或直线
示例用法:
(xdrx-curve-isanticlockwise curve1)
返回: T (表示曲线为逆时针方向)
备注:
1. 本函数是xdrx-curve-isclockwise的反函数
2. 支持CAD实体曲线、几何曲线和点列表
3. 自动处理直线情况(返回nil)
4. 采样10个点进行计算判断
------------------------------------------------------------
48
函数名称: xdrx-curve-isclosed
描述:
判断曲线是否闭合
调用格式:
(xdrx-curve-isclosed <曲线>)
参数说明:
* <曲线>: 曲线实体或几何曲线
返回值:
T - 曲线闭合
nil - 曲线未闭合
示例用法:
(xdrx-curve-isclosed curve1)
返回: T (表示曲线闭合)
备注:
1. 支持CAD实体曲线和几何曲线(kCurve3d/kCurve2d)
2. 对于几何曲线会自动创建临时实体进行判断
3. 自动清理临时创建的几何曲线实体
------------------------------------------------------------
49
函数名称: xdrx-curve-iscolplanar
描述:
判断两条曲线是否共面
调用格式:
(xdrx-curve-iscolplanar <曲线1> <曲线2>)
参数说明:
* <曲线1>: 第一条曲线实体
* <曲线2>: 第二条曲线实体
返回值:
nil - 曲线不共面
(原点坐标 法向量) - 曲线共面,返回平面坐标系信息
示例用法:
(xdrx-curve-iscolplanar curve1 curve2)
返回: ((10.0 20.0 0.0) (0.0 0.0 1.0)) (表示曲线共面)
备注:
1. 本函数相当于调用 (xdrx-getpropertyvalue curve "iscolplanar")
2. 返回值为平面坐标系的原点坐标和法向量
3. 支持所有类型的CAD曲线实体
4. 使用几何库进行精确共面判断
------------------------------------------------------------
50
函数名称: xdrx-curve-isinside
描述:
判断曲线/点是否在另一条曲线内部
调用格式:
(xdrx-curve-isinside <曲线1/点列表> <曲线2> [返回点标志])
参数说明:
* <曲线1/点列表>: 曲线实体或点坐标列表
* <曲线2>: 第二条曲线实体
* [返回点标志]: T-返回内部点列表,nil-仅返回判断结果(默认)
返回值:
1. 当返回点标志为T时: 返回在内部的点坐标列表
2. 否则: T-有内部点/nil-无内部点
示例用法1:
(xdrx-curve-isinside curve1 curve2)
返回: T (表示curve2有部分在curve1内部)
示例用法2:
(xdrx-curve-isinside '(p1 p2 p3) curve2 T)
返回: (p1 p3) (返回在curve2内部的点)
备注:
1. 本函数相当于调用 (xdrx-getpropertyvalue curve "isInside")
2. 支持CAD实体曲线、几何曲线和点列表
3. 自动处理点列表和曲线实体的不同情况
4. 使用几何库进行精确判断
------------------------------------------------------------
51
函数名称: xdrx-curve-isperiodic
描述:
判断曲线是否为周期性曲线
调用格式:
(xdrx-curve-isperiodic <曲线>)
参数说明:
* <曲线>: 曲线实体或几何曲线
返回值:
T - 曲线是周期性的
nil - 曲线不是周期性的
示例用法:
(xdrx-curve-isperiodic curve1)
返回: T (表示曲线是周期性的)
备注:
1. 本函数相当于调用 (xdrx-getpropertyvalue curve "isPeriodic")
2. 支持CAD实体曲线和几何曲线(kCurve3d/kCurve2d)
3. 对于几何曲线会自动创建临时实体进行判断
4. 自动清理临时创建的几何曲线实体
------------------------------------------------------------
52
函数名称: xdrx-curve-isplanar
描述:
判断曲线是否为平面曲线
调用格式:
(xdrx-curve-isplanar <曲线>)
参数说明:
* <曲线>: 曲线实体或几何曲线
返回值:
T - 曲线是平面曲线
nil - 曲线不是平面曲线
示例用法:
(xdrx-curve-isplanar curve1)
返回: T (表示曲线是平面曲线)
备注:
1. 本函数相当于调用 (xdrx-getpropertyvalue curve "isPlanar")
2. 支持CAD实体曲线和几何曲线(kCurve3d/kCurve2d)
3. 对于几何曲线会自动创建临时实体进行判断
4. 自动清理临时创建的几何曲线实体
------------------------------------------------------------
53
函数名称: xdrx-curve-join
描述:
将多条曲线连接成一条曲线
调用格式:
(xdrx-curve-join [选项] <曲线列表/选择集> [目标曲线])
参数说明:
* [选项]: T-转换为多段线(默认), nil-保持原曲线类型
* <曲线列表/选择集>: 要连接的曲线实体列表或选择集
* [目标曲线]: 可选的目标曲线(将其他曲线连接到该曲线)
返回值:
连接后的曲线实体名或T(成功)/nil(失败)
示例用法1:
(xdrx-curve-join (ssget))
返回: <图元名> (返回连接后的曲线)
示例用法2:
(xdrx-curve-join nil curve1 curve2)
返回: T (连接成功)
备注:
1. 支持多种连接方式: 曲线列表、选择集、目标曲线连接
2. 自动处理曲线类型转换
3. 返回连接结果或新曲线实体
------------------------------------------------------------
54
函数名称: xdrx-curve-length
描述:
计算曲线的长度
调用格式:
(xdrx-curve-length <曲线> [起始参数] [结束参数])
参数说明:
* <曲线>: 曲线实体
* [起始参数]: 可选,计算起始参数(默认曲线起点)
* [结束参数]: 可选,计算结束参数(默认曲线终点)
返回值:
曲线长度值(实数)
示例用法1:
(xdrx-curve-length curve1)
返回: 25.6 (曲线全长)
示例用法2:
(xdrx-curve-length curve1 0.2 0.8)
返回: 15.3 (指定参数区间的长度)
备注:
1. 支持所有类型的CAD曲线实体
2. 使用几何库进行精确长度计算
3. 可以指定参数区间计算部分曲线长度
------------------------------------------------------------
55
函数名称: xdrx-curve-nearpt
描述:
获取曲线上距离给定点最近的点
调用格式:
(xdrx-curve-nearpt <曲线> <测试点> [参考点1] [参考点2])
参数说明:
* <曲线>: 曲线实体
* <测试点>: 要计算最近点的测试点
* [参考点1]: 可选参考点1
* [参考点2]: 可选参考点2
返回值:
曲线上距离测试点最近的点坐标
示例用法1:
(xdrx-curve-nearpt curve1 '(10 20 0))
返回: (12.5 18.3 0.0) (曲线上最近点坐标)
示例用法2:
(xdrx-curve-nearpt curve1 '(10 20 0) '(5 5 0) '(15 15 0))
返回: (12.5 18.3 0.0) (考虑参考点后的最近点)
备注:
1. 支持所有类型的CAD曲线实体
2. 可以指定参考点进行更精确的最近点计算
3. 自动处理曲线起点和终点的情况
------------------------------------------------------------
56
函数名称: xdrx-curve-randomPoints
描述:
在封闭曲线内部随机生成指定数量的点
调用格式:
(xdrx-curve-randomPoints <封闭曲线> <点数> [绘制标志])
参数说明:
* <封闭曲线>: 必须是封闭的曲线实体(如圆、闭合多段线等)
* <点数>: 要生成的随机点数量(正整数)
* [绘制标志]:
- T: 绘制点实体并返回选择集
- nil: 仅返回点坐标列表(默认)
返回值:
当绘制标志为T时: 新生成点的选择集
当绘制标志为nil时: 点坐标列表
示例用法1:
(xdrx-curve-randomPoints circle1 20)
返回: ((x1 y1 z1) (x2 y2 z2)...) (20个内部随机点坐标)
示例用法2:
(xdrx-curve-randomPoints pline1 50 T)
返回: <选择集> (包含新生成的50个内部点实体)
备注:
1. 仅支持封闭曲线
2. 生成的随机点保证位于曲线内部
3. 点数参数必须为正整数
------------------------------------------------------------
57
函数名称: xdrx-curve-relation
描述:
判断曲线与曲线/点的空间关系
调用格式:
(xdrx-curve-relation <曲线1> <曲线2/点> [切线标志])
参数说明:
* <曲线1>: 第一条曲线实体或几何曲线
* <曲线2/点>: 第二条曲线实体/几何曲线或测试点
* [切线标志]: T-包含切线关系判断(可选)
返回值:
整数,代表的空间关系枚举值:
-1: 未知关系
0: 相交
1: 外部
2: 内部
3: 边界
4: 相切
5: 内部相切
6: 外部相切
7: 相切间隙
8: 内部相切间隙
9: 外部相切间隙
10: 接触容差
11: 内部但距离外曲线小于容差(distsnap)
12: 外部但距离内曲线小于容差(distsnap)
13: 重合
示例用法1:
(xdrx-curve-relation curve1 curve2)
返回: 0 (两曲线相交)
示例用法2:
(xdrx-curve-relation curve1 '(10 20 0) T)
返回: 2 (点在曲线内部)
备注:
1. 支持CAD实体曲线和几何曲线
2. 可判断曲线-曲线或曲线-点关系
3. 切线标志为T时,会合并多种相切情况
4. 容差值由系统变量distsnap控制
------------------------------------------------------------
58
函数名称: xdrx-curve-remove-duplicates
函数别名: xdrx-ss-remove_duplicate_curve,xdrx-curve-removedup
描述:
移除重复曲线和超短曲线,保留最长曲线
调用格式:
(xdrx-curve-remove-duplicates <选择集/实体> [短曲线长度] )
参数说明:
* <选择集/实体>: 要处理的曲线选择集或单个曲线实体
* [短曲线长度]: 可选,指定短曲线判定长度(默认0)
* : 可选,T表示返回统计信息,nil返回nil
返回值:
(删除的重复直线数 删除的重复圆弧数 删除的超短直线数 删除的超短圆弧数)
示例用法1:
(xdrx-curve-remove-duplicates ss1)
返回: (3 2 1 0)
表示: 删除3条重复直线,2条重复圆弧,1条超短直线
示例用法2:
(xdrx-curve-remove-duplicates ent1 0.1 T)
返回: (1 0 0 1)
表示: 删除1条重复直线,1条超短圆弧
备注:
1. 处理内容:
- 删除完全重复的曲线
- 删除X/Y方向偏差小于snap容差的共线直线
- 删除方向角度差小于angnap容差的近似直线
- 删除同圆心且半径差小于distsnap容差的圆弧/圆
- 删除长度小于指定值的超短直线和圆弧
2. 处理规则:
- 保留组内最长的曲线
- 原选择集变为处理后曲线的集合
- 超短曲线是否删除由distsnap系统变量控制
3. 容差控制:
- 点重合容差: distsnap系统变量
- 共线性容差: snap系统变量(X/Y方向)
- 方向容差: angnap系统变量
4. 支持处理: 直线、圆弧、圆等曲线类型
------------------------------------------------------------
59
函数名称: xdrx-curve-reverse
描述:
反转曲线的方向
调用格式:
(xdrx-curve-reverse <曲线实体/选择集>)
参数说明:
* <曲线实体/选择集>: 要反转的曲线实体或选择集
返回值:
无显式返回值,成功时返回T
示例用法1:
(xdrx-curve-reverse ent1)
反转单个曲线实体
示例用法2:
(xdrx-curve-reverse ss1)
反转选择集中的所有曲线
备注:
1. 支持反转的曲线类型包括: 直线、多段线、圆弧、样条曲线等
2. 反转操作会改变曲线的起点和终点方向
3. 对于闭合曲线(如圆),反转操作无效
4. 操作会直接修改原曲线实体
------------------------------------------------------------
60
函数名称: xdrx-curve-setclosed
描述:
设置曲线为闭合状态
调用格式:
(xdrx-curve-setclosed <曲线实体/选择集> )
参数说明:
* <曲线实体/选择集>: 要闭合的曲线实体或选择集
* : 可选,T表示将圆弧转换为圆,nil保持原样
返回值:
无显式返回值,成功时返回T
示例用法1:
(xdrx-curve-setclosed pline1)
将多段线pline1设置为闭合
示例用法2:
(xdrx-curve-setclosed ss1 T)
将选择集中的曲线闭合,并将其中的圆弧转换为圆
备注:
1. 支持的曲线类型:
- 多段线: 直接设置闭合属性
- 样条曲线: 设置为闭合样条
- 圆弧: 根据参数决定是否转换为圆
- 椭圆: 保持闭合状态
2. 使用系统变量distsnap控制点重合容差
3. 对于多段线:
- 自动处理端点重合情况
- 特殊处理两顶点圆弧段多段线
4. 操作会直接修改原曲线实体
------------------------------------------------------------
61
函数名称: xdrx-curve-setinterval
描述:
通过修改曲线的参数区间来修改曲线实体,支持多种曲线对象类型
调用格式:
(xdrx-curve-setinterval <曲线对象> <点1/参数1> <点2/参数2> [中点/中点参数] )
参数说明:
* <曲线对象>: 要处理的曲线对象,支持:
- 常驻曲线对象(数据库实体)
- 几何曲线实体(AcGeCurve3d)
- 非常驻曲线实体(内存对象)
* <点1/参数1>: 区间起点(点坐标或参数值)
* <点2/参数2>: 区间终点(点坐标或参数值)
* [中点/中点参数]: 可选,区间中点(点坐标或参数值)
* : 可选,T表示直接修改原实体,nil创建新实体
返回值:
处理后的曲线实体名称
示例用法1:
(xdrx-curve-setinterval curve1 p1 p2)
基于两点定义区间修改常驻曲线
示例用法2:
(xdrx-curve-setinterval geCurve param1 param2 nil T)
基于参数值直接修改几何曲线实体
备注:
1. 支持的曲线对象类型:
- 常驻曲线对象: 数据库中的常规曲线实体
- 几何曲线实体: AcGeCurve3d几何对象
- 非常驻曲线实体: 内存中的临时曲线对象
2. 处理方式:
- 对常驻对象默认创建副本修改
- 对几何曲线和内存对象直接修改
3. 核心功能是通过调整参数区间来修改曲线几何形状
4. 支持点坐标或参数值两种输入方式
5. 自动处理闭合曲线的参数环绕
------------------------------------------------------------
62
函数名称: xdrx-curve-setsptept
描述:
设置曲线的起点或终点位置
调用格式:
(xdrx-curve-setsptept <曲线实体> <参考点> <新位置点>)
参数说明:
* <曲线实体>: 要修改的曲线实体
* <参考点>: 用于确定修改起点还是终点的参考点
* <新位置点>: 要设置的新起点或终点位置
返回值:
成功时返回T
示例用法1:
(xdrx-curve-setsptept curve1 p1 p2)
根据p1的位置修改curve1的起点或终点为p2
备注:
1. 自动判断修改起点还是终点:
- 如果参考点接近起点,则修改起点
- 如果参考点接近终点,则修改终点
2. 支持多种曲线类型: 直线、圆弧、多段线等
3. 修改会保持曲线的其他几何属性不变
4. 对于闭合曲线,此操作无效
------------------------------------------------------------
63
函数名称: xdrx-curve-subtract
描述:
执行曲线布尔差集运算,支持数据库实体和几何实体(AcGeCurve3d)的差集计算
调用格式:
(xdrx-curve-subtract <曲线1/几何曲线1> <曲线2/几何曲线2> )
参数说明:
* <曲线1/几何曲线1>: 被减曲线,支持:
- 数据库曲线实体
- AcGeCurve3d几何曲线对象
* <曲线2/几何曲线2>: 减去的曲线,支持:
- 数据库曲线实体
- AcGeCurve3d几何曲线对象
* : 可选,T表示返回交点坐标而非结果曲线
返回值:
差集运算结果曲线实体列表或交点坐标
示例用法1:
(xdrx-curve-subtract dbCurve geCurve)
数据库曲线减去几何曲线
示例用法2:
(xdrx-curve-subtract geCurve1 geCurve2 T)
两个几何曲线的交点坐标
备注:
1. 完整支持类型:
- 数据库曲线实体
- AcGeCurve3d几何曲线
- 自动转换的点集(转为闭合多段线)
2. 实现原理:
- 将输入曲线转为Region
- 执行Region布尔差集运算
- 将结果Region转回曲线
3. 几何曲线对象会保留在内存中
4. 无交点时返回nil
------------------------------------------------------------
64
函数名称: xdrx-curve-trim
描述:
根据边界曲线修剪源曲线,支持数据库实体和几何曲线(AcGeCurve3d)
调用格式:
(xdrx-curve-trim <源曲线/点集> <边界曲线/点集> <参考点> )
参数说明:
* <源曲线/点集>: 被修剪的曲线,支持:
- 数据库曲线实体
- AcGeCurve3d几何曲线
- 点集(自动转为闭合多段线)
* <边界曲线/点集>: 修剪边界,支持:
- 数据库曲线实体
- AcGeCurve3d几何曲线
- 点集(自动转为闭合多段线)
* <参考点>: 确定保留哪一侧的点
* : 可选,T表示创建新实体,nil直接修改原实体
返回值:
修剪后的曲线实体名称
示例用法1:
(xdrx-curve-trim srcCrv bndCrv pt)
用边界曲线修剪源曲线
示例用法2:
(xdrx-curve-trim pts1 pts2 pt T)
用点集边界修剪点集曲线并创建新实体
备注:
1. 处理流程:
- 计算源曲线与边界的交点
- 根据参考点确定保留部分
- 自动处理闭合曲线
2. 支持多种输入类型组合:
- 数据库实体+几何曲线
- 点集+数据库实体
- 几何曲线+点集
3. 参考点决定保留曲线的哪一侧
4. 无交点时返回nil
------------------------------------------------------------
65
函数名称: xdrx-curve-union
描述:
执行曲线布尔并集运算,支持数据库实体和几何曲线(AcGeCurve3d)的合并
调用格式:
(xdrx-curve-union <曲线1/几何曲线1> <曲线2/几何曲线2> )
参数说明:
* <曲线1/几何曲线1>: 第一条曲线,支持:
- 数据库曲线实体
- AcGeCurve3d几何曲线对象
- 点集(自动转为闭合多段线)
* <曲线2/几何曲线2>: 第二条曲线,支持:
- 数据库曲线实体
- AcGeCurve3d几何曲线对象
- 点集(自动转为闭合多段线)
* : 可选,T表示返回采样点坐标而非结果曲线
返回值:
并集运算结果曲线实体或点坐标列表
示例用法1:
(xdrx-curve-union dbCurve1 dbCurve2)
合并两个数据库曲线实体
示例用法2:
(xdrx-curve-union geCurve pts T)
合并几何曲线和点集并返回采样点
备注:
1. 实现原理:
- 将输入曲线转为Region
- 执行Region布尔并集运算
- 将结果Region转回曲线
2. 支持多种输入类型组合:
- 数据库实体+几何曲线
- 点集+数据库实体
- 几何曲线+点集
3. 自动处理曲线闭合性
4. 无交集时返回原始曲线
------------------------------------------------------------
66
函数名称: xdrx-line-make
描述:
创建直线实体
调用格式:
(xdrx-line-make)
(xdrx-line-make [点对列表])
(xdrx-line-make [连续点对列表])
参数说明:
* [点对列表]: 单个点对,格式为(点1 点2)
* [连续点对列表]: 多个点对的列表,格式为( (点1 点2) (点3 点4) ... )
返回值:
创建的直线实体或实体列表
示例用法1:
(xdrx-line-make)
返回: 默认直线
示例用法2:
(xdrx-line-make '( (0 0) (10 10) ))
返回: 从(0,0)到(10,10)的直线
示例用法3:
(xdrx-line-make '( ( (0 0) (10 10) ) ( (20 5) (30 15) ) ))
返回: 两条直线:(0,0)-(10,10) 和 (20,5)-(30,15)
注意事项:
1. 支持2D和3D点输入
2. 自动应用当前高程设置
------------------------------------------------------------
67
函数名称: xdrx-line-midp
描述:
计算两点之间的中点
调用格式:
(xdrx-line-midp <点1> <点2>)
参数说明:
* <点1>: 第一个点,可以是2D或3D点
* <点2>: 第二个点,可以是2D或3D点
返回值:
两点之间的中点坐标
示例用法:
(xdrx-line-midp '(0 0) '(10 10))
返回: (5.0 5.0)
注意事项:
1. 必须提供两个点参数
2. 支持2D和3D点输入
3. 会自动将2D点转换为3D点计算
------------------------------------------------------------
68
函数名称: xdrx-line-nearpoint
描述:
找出直线端点中距离测试点较近的点
调用格式:
(xdrx-line-nearpoint <起点> <终点> <测试点>)
参数说明:
* <起点>: 直线的起点(3D点)
* <终点>: 直线的终点(3D点)
* <测试点>: 要测试的点(3D点)
返回值:
距离测试点较近的端点(起点或终点)
示例用法:
(xdrx-line-nearpoint '(0 0 0) '(10 10 0) '(2 3 0))
返回: (0 0 0)
注意事项:
1. 必须提供三个3D点参数
2. 按顺序提供起点、终点和测试点
3. 返回的是起点或终点的坐标
------------------------------------------------------------
69
函数名称: xdrx-line-onwhichside
描述:
判断测试点相对于直线的位置关系
调用格式:
(xdrx-line-onwhichside <起点> <终点> <测试点>)
参数说明:
* <起点>: 直线的起点(3D点)
* <终点>: 直线的终点(3D点)
* <测试点>: 要测试的点(3D点)
返回值:
整数代码:
0 = 测试点在直线上
-1 = 测试点在直线的一侧
1 = 测试点在直线的另一侧
示例用法:
(xdrx-line-onwhichside '(0 0 0) '(10 10 0) '(5 5 0))
返回: 0
注意事项:
1. 必须提供三个3D点参数
2. 按顺序提供起点、终点和测试点
3. 使用有符号距离计算位置关系
------------------------------------------------------------
70
函数名称: xdrx-arc-make
描述:
创建圆弧或圆实体
调用格式:
(xdrx-arc-make)
(xdrx-arc-make [圆心 半径])
(xdrx-arc-make [起点 凸度 终点])
(xdrx-arc-make [圆心 半径 起始角 终止角])
参数说明:
* [圆心]: 圆弧中心点(2D/3D)
* [半径]: 圆弧半径(实数/整数)
* [起点]: 圆弧起点(2D/3D)
* [凸度]: 圆弧凸度值
* [终点]: 圆弧终点(2D/3D)
* [起始角]: 起始角度(弧度)
* [终止角]: 终止角度(弧度)
返回值:
创建的圆弧实体名
示例用法1:
(xdrx-arc-make)
返回: 默认圆弧
示例用法2:
(xdrx-arc-make '(0 0) 10)
返回: 圆心(0,0)半径10的圆
示例用法3:
(xdrx-arc-make '(0 0) 10 0 (* pi 0.5))
返回: 圆心(0,0)半径10的1/4圆弧
注意事项:
1. 无参数时创建默认圆弧
2. 支持多种参数组合
3. 角度单位为弧度
------------------------------------------------------------
71
函数名称: xdrx-arc-setcenter
描述:
设置圆弧的中心点位置
调用格式:
(xdrx-arc-setcenter <圆弧实体> <新中心点>)
参数说明:
* <圆弧实体>: 要修改的圆弧实体名
* <新中心点>: 新的中心点坐标(2D/3D)
返回值:
修改成功返回T,失败返回nil
示例用法:
(xdrx-arc-setcenter ent '(5 5))
将圆弧ent的中心点移动到(5,5)
注意事项:
1. 第一个参数必须是圆弧实体
2. 支持2D/3D点作为新中心点
3. 2D点会自动使用当前高程
4. 等效于 (xdrx-setpropertyvalue arc "center" point)
------------------------------------------------------------
72
函数名称: xdrx-arc-setendangle
描述:
设置圆弧的终止角度
调用格式:
(xdrx-arc-setendangle <圆弧实体> <终止角度>)
参数说明:
* <圆弧实体>: 要修改的圆弧实体名
* <终止角度>: 新的终止角度(弧度值,实数或整数)
返回值:
修改成功返回T,失败返回nil
示例用法:
(xdrx-arc-setendangle ent (* pi 0.5))
将圆弧ent的终止角度设置为π/2(90度)
注意事项:
1. 第一个参数必须是圆弧实体
2. 角度单位为弧度
3. 支持实数和整数角度值
4. 等效于 (xdrx-setpropertyvalue arc "endangle" angle)
------------------------------------------------------------
73
函数名称: xdrx-arc-setradius
描述:
设置圆弧的半径
调用格式:
(xdrx-arc-setradius <圆弧实体> <半径值>)
参数说明:
* <圆弧实体>: 要修改的圆弧实体名
* <半径值>: 新的半径值(正实数或正整数)
返回值:
修改成功返回T,失败返回nil
示例用法:
(xdrx-arc-setradius ent 10.5)
将圆弧ent的半径设置为10.5
注意事项:
1. 第一个参数必须是圆弧实体
2. 半径值必须为正数
3. 支持实数和整数半径值
4. 等效于 (xdrx-setpropertyvalue arc "radius" value)
------------------------------------------------------------
74
函数名称: xdrx-arc-setstartangle
描述:
设置圆弧的起始角度
调用格式:
(xdrx-arc-setstartangle <圆弧实体> <起始角度>)
参数说明:
* <圆弧实体>: 要修改的圆弧实体名
* <起始角度>: 新的起始角度(弧度值,实数或整数)
返回值:
修改成功返回T,失败返回nil
示例用法:
(xdrx-arc-setstartangle ent 0)
将圆弧ent的起始角度设置为0
注意事项:
1. 第一个参数必须是圆弧实体
2. 角度单位为弧度
3. 支持实数和整数角度值
4. 等效于 (xdrx-setpropertyvalue arc "startangle" angle)
------------------------------------------------------------
75
函数名称: xdrx-circle-make
描述:
创建圆实体
调用格式:
(xdrx-circle-make)
(xdrx-circle-make [圆心 半径])
(xdrx-circle-make [圆心1 半径1 圆心2 半径2 ...] )
参数说明:
* [圆心]: 圆心坐标(2D/3D)
* [半径]: 圆半径(实数/整数)
* : 可选参数,返回实体列表
返回值:
创建的圆实体名或实体名列表
示例用法1:
(xdrx-circle-make)
返回: 默认圆
示例用法2:
(xdrx-circle-make '(0 0) 10)
返回: 圆心(0,0)半径10的圆
示例用法3:
(xdrx-circle-make '(0 0) 10 '(5 5) 15 T)
返回: 两个圆的实体名列表
注意事项:
1. 无参数时创建默认圆
2. 支持批量创建多个圆
3. 添加T参数返回实体列表
4. 半径必须为正数
------------------------------------------------------------
76
函数名称: xdrx-circle-setradius
描述:
设置圆的半径
调用格式:
(xdrx-circle-setradius <圆实体> <半径值>)
参数说明:
* <圆实体>: 要修改的圆实体名
* <半径值>: 新的半径值(正实数或正整数)
返回值:
修改成功返回T,失败返回nil
示例用法:
(xdrx-circle-setradius ent 5.5)
将圆ent的半径设置为5.5
注意事项:
1. 第一个参数必须是圆实体
2. 半径值必须为正数
3. 支持实数和整数半径值
4. 等效于 (xdrx-setpropertyvalue circle "radius" value)
------------------------------------------------------------
77
函数名称: xdrx-ellipse-make
描述:
创建椭圆或椭圆弧实体
调用格式:
(xdrx-ellipse-make)
(xdrx-ellipse-make <中心点> <轴端点1> <轴端点2> )
(xdrx-ellipse-make <点1> <点2> <点3> <点4> <点5> )
参数说明:
* <中心点>: 椭圆中心点(2D/3D)
* <轴端点1/2>: 椭圆轴端点(2D/3D)
* <点1-5>: 椭圆上的5个点(2D/3D)
* : 可选参数,创建椭圆弧
返回值:
创建的椭圆实体名
示例用法1:
(xdrx-ellipse-make)
返回: 默认椭圆
示例用法2:
(xdrx-ellipse-make '(0 0) '(5 0) '(0 3))
返回: 中心(0,0),长轴5,短轴3的椭圆
示例用法3:
(xdrx-ellipse-make '(0 0) '(5 0) '(0 3) T)
返回: 椭圆弧
注意事项:
1. 无参数时创建默认椭圆
2. 3点模式:中心+两个轴端点
3. 5点模式:椭圆上的5个点
4. 添加T参数创建椭圆弧
------------------------------------------------------------
78
函数名称: xdrx-ellipse-inflectionparams
描述:
获取椭圆或椭圆弧的拐点参数
调用格式:
(xdrx-ellipse-inflectionparams <椭圆实体> [起始参数] [结束参数])
参数说明:
* <椭圆实体>: 要分析的椭圆实体名
* [起始参数]: 可选起始参数(0-2π)
* [结束参数]: 可选结束参数(0-2π)
返回值:
拐点参数列表(实数列表)
示例用法1:
(xdrx-ellipse-inflectionparams ent)
返回: 椭圆ent的全部拐点参数
示例用法2:
(xdrx-ellipse-inflectionparams ent 0 (* pi 0.5))
返回: 椭圆ent在0-π/2范围内的拐点参数
注意事项:
1. 参数范围0-2π(弧度)
2. 不指定参数范围时分析整个椭圆
3. 返回参数按升序排列
------------------------------------------------------------
79
函数名称: xdrx_ellipse->16arc
描述:
将椭圆转换为16段圆弧近似
调用格式:
(xdrx_ellipse->16arc <椭圆实体> )
(xdrx_ellipse->16arc <选择集> )
参数说明:
* <椭圆实体>: 要转换的椭圆实体
* <选择集>: 包含椭圆的选择集
* : 可选参数,返回几何实体
* : 可选参数,控制是否删除原实体
返回值:
转换后的圆弧实体列表或几何实体
示例用法1:
(xdrx_ellipse->16arc ent)
返回: 16段圆弧近似的实体列表
示例用法2:
(xdrx_ellipse->16arc ss T)
返回: 几何实体(不创建实际图形)
注意事项:
1. 使用16段圆弧高精度近似椭圆
2. T参数返回几何实体而非图形实体
3. 默认删除原椭圆,使用NIL保留
------------------------------------------------------------
80
函数名称: xdrx_ellipse->8point
描述:
获取椭圆上的8个特征点
调用格式:
(xdrx_ellipse->8point <椭圆实体> )
(xdrx_ellipse->8point <选择集> )
参数说明:
* <椭圆实体>: 要获取特征点的椭圆实体
* <选择集>: 包含椭圆的选择集
* : 可选参数,保留原实体
返回值:
8个特征点的坐标列表
示例用法:
(xdrx_ellipse->8point ent)
返回: ((x1 y1 z1) (x2 y2 z2) ... (x8 y8 z8))
注意事项:
1. 8个点均匀分布在椭圆上
2. 包含长轴端点、短轴端点和45度点
3. 默认删除原实体,使用T参数保留
------------------------------------------------------------
81
函数名称: xdrx-spline->curve
描述:
将样条曲线转换为多段线或圆弧
调用格式:
(xdrx-spline->curve <样条曲线> )
(xdrx-spline->curve <选择集> )
参数说明:
* <样条曲线>: 要转换的样条曲线实体
* <选择集>: 包含样条曲线的选择集
* 第一个: 控制是否删除原实体(T删除/NIL保留)
* 第二个: 控制是否转换为多段线(T转换/NIL保持圆弧)
返回值:
转换后的曲线实体
示例用法1:
(xdrx-spline->curve ent)
返回: 转换后的圆弧(删除原样条曲线)
示例用法2:
(xdrx-spline->curve ss NIL T)
返回: 转换后的多段线(保留原样条曲线)
注意事项:
1. 默认删除原实体并转换为圆弧
2. 使用NIL保留原实体
3. 使用第二个T参数转换为多段线
4. 转换精度由系统变量控制
------------------------------------------------------------
82
函数名称: xdrx-spline-addfitpointat
函数别名: xdrx-spline-insertfitpointat
描述:
在样条曲线上添加拟合点
调用格式:
(xdrx-spline-addfitpointat <样条曲线> <点坐标> [索引位置])
参数说明:
* <样条曲线>: 要操作的样条曲线实体
* <点坐标>: 要添加的拟合点坐标(2D/3D)
* [索引位置]: 可选参数,指定插入位置的索引
返回值:
成功时返回插入点的索引位置
示例用法1:
(xdrx-spline-addfitpointat ent '(5 5))
返回: 在最近位置插入点的索引
示例用法2:
(xdrx-spline-addfitpointat ent '(5 5) 2)
返回: 在索引2位置插入点
注意事项:
1. 不指定索引时自动计算最近位置
2. 索引从0开始计数
3. 索引超出范围时自动调整到有效范围
------------------------------------------------------------
83
函数名称: xdrx-spline-degree
描述:
获取样条曲线的阶数
调用格式:
(xdrx-spline-degree [样条曲线实体])
参数说明:
* [样条曲线实体]: 可选参数,要查询的样条曲线实体
返回值:
样条曲线的阶数(整数)
示例用法1:
(xdrx-spline-degree ent)
返回: 3 (表示3阶样条曲线)
示例用法2:
(xdrx-spline-degree)
返回: 当前堆栈中样条曲线的阶数
注意事项:
1. 无参数时从当前堆栈获取样条曲线
2. 阶数通常为3(三次样条)
3. 返回值≥1
------------------------------------------------------------
84
函数名称: xdrx-spline-elevatedegree
描述:
提升样条曲线的阶数
调用格式:
(xdrx-spline-elevatedegree <提升阶数> [样条曲线实体])
参数说明:
* <提升阶数>: 要提升的阶数(正整数)
* [样条曲线实体]: 可选参数,要操作的样条曲线实体
返回值:
成功时返回T
示例用法1:
(xdrx-spline-elevatedegree 2 ent)
将样条曲线ent的阶数提升2级
示例用法2:
(xdrx-spline-elevatedegree 1)
将当前堆栈中样条曲线的阶数提升1级
注意事项:
1. 最大提升阶数为25
2. 无实体参数时使用当前堆栈中的样条曲线
3. 阶数越高曲线越平滑
------------------------------------------------------------
85
函数名称: xdrx-spline-fit
描述:
使用多段线拟合样条曲线
调用格式:
(xdrx-spline-fit <样条曲线> [拟合精度])
参数说明:
* <样条曲线>: 要拟合的样条曲线实体
* [拟合精度]: 可选参数,控制拟合精度(默认0.01)
返回值:
拟合参数点列表(实数列表)
示例用法1:
(xdrx-spline-fit ent)
返回: 使用默认精度拟合的参数点列表
示例用法2:
(xdrx-spline-fit ent 0.001)
返回: 使用高精度(0.001)拟合的参数点列表
注意事项:
1. 精度值越小拟合越精确
2. 默认精度为0.01
3. 返回参数可用于重建样条曲线
------------------------------------------------------------
86
函数名称: xdrx-spline-fittolerance
描述:
获取样条曲线的拟合公差
调用格式:
(xdrx-spline-fittolerance [样条曲线实体])
参数说明:
* [样条曲线实体]: 可选参数,要查询的样条曲线实体
返回值:
样条曲线的拟合公差(实数),若无拟合数据则返回nil
示例用法1:
(xdrx-spline-fittolerance ent)
返回: 0.01 (样条曲线的拟合公差)
示例用法2:
(xdrx-spline-fittolerance)
返回: 当前堆栈中样条曲线的拟合公差
注意事项:
1. 无参数时从当前堆栈获取样条曲线
2. 仅当样条曲线有拟合数据时返回值
3. 拟合公差控制曲线与拟合点的接近程度
------------------------------------------------------------
87
函数名称: xdrx-spline-getcontrolpointat
描述:
获取样条曲线指定索引处的控制点坐标
调用格式:
(xdrx-spline-getcontrolpointat <索引> [样条曲线实体])
参数说明:
* <索引>: 控制点索引(从0开始)
* [样条曲线实体]: 可选参数,要查询的样条曲线实体
返回值:
控制点坐标(点列表)
示例用法1:
(xdrx-spline-getcontrolpointat 2 ent)
返回: (5.0 3.0 0.0) (索引2处的控制点坐标)
示例用法2:
(xdrx-spline-getcontrolpointat 0)
返回: 当前堆栈中样条曲线索引0处的控制点坐标
注意事项:
1. 索引从0开始
2. 索引超出范围时返回nil
3. 无实体参数时使用当前堆栈中的样条曲线
------------------------------------------------------------
88
函数名称: xdrx-spline-getfitdata
描述:
获取样条曲线的完整拟合数据
调用格式:
(xdrx-spline-getfitdata [样条曲线实体])
参数说明:
* [样条曲线实体]: 可选参数,要查询的样条曲线实体
返回值:
复合列表格式:
(拟合点列表 拟合公差 切线标志 起点切线 终点切线)
示例用法1:
(xdrx-spline-getfitdata ent)
返回: (((1 2 0) (3 4 0)) 0.01 T (0 1 0) (1 0 0))
示例用法2:
(xdrx-spline-getfitdata)
返回: 当前堆栈中样条曲线的拟合数据
注意事项:
1. 无参数时从当前堆栈获取样条曲线
2. 仅当样条曲线有拟合数据时返回值
3. 切线标志为T表示存在切线数据
4. 返回值包含5个元素
------------------------------------------------------------
89
函数名称: xdrx-spline-getfitpointat
描述:
获取样条曲线指定位置的拟合点坐标
调用格式:
(xdrx-spline-getfitpointat <样条曲线> <索引|点坐标>)
参数说明:
* <样条曲线>: 要查询的样条曲线实体
* <索引|点坐标>:
- 整数索引(从0开始)
- 或点坐标(自动计算最近拟合点)
返回值:
拟合点坐标(点列表)
示例用法1:
(xdrx-spline-getfitpointat ent 2)
返回: (5.0 3.0 0.0) (索引2处的拟合点)
示例用法2:
(xdrx-spline-getfitpointat ent '(4.9 3.1))
返回: 最接近(4.9,3.1)的拟合点坐标
注意事项:
1. 索引从0开始计数
2. 提供点坐标时自动计算最近拟合点
3. 索引超出范围时返回nil
------------------------------------------------------------
90
函数名称: xdrx-spline-getfittangents
描述:
获取样条曲线的起点和终点切线向量
调用格式:
(xdrx-spline-getfittangents [样条曲线实体])
参数说明:
* [样条曲线实体]: 可选参数,要查询的样条曲线实体
返回值:
包含起点和终点切线的列表(起点切线 终点切线)
示例用法1:
(xdrx-spline-getfittangents ent)
返回: ((0 1 0) (1 0 0)) (起点和终点切线向量)
示例用法2:
(xdrx-spline-getfittangents)
返回: 当前堆栈中样条曲线的切线向量
注意事项:
1. 无参数时从当前堆栈获取样条曲线
2. 仅当样条曲线有拟合数据时返回值
3. 切线向量表示曲线在端点的方向
------------------------------------------------------------
91
函数名称: xdrx-spline-getnurbsdata
描述:
获取样条曲线的完整NURBS数据
调用格式:
(xdrx-spline-getnurbsdata [样条曲线实体])
参数说明:
* [样条曲线实体]: 可选参数,要查询的样条曲线实体
返回值:
结构化列表包含:
(
("Degree" 阶数)
("Rational" 有理标志)
("Closed" 闭合标志)
("Periodic" 周期标志)
("ControlPoints" 控制点列表)
("Knots" 节点向量)
("Weights" 权重列表)
("ControlPtTol" 控制点容差)
("KnotTol" 节点容差)
)
示例用法1:
(xdrx-spline-getnurbsdata ent)
返回: 包含完整NURBS参数的列表
示例用法2:
(xdrx-spline-getnurbsdata)
返回: 当前堆栈中样条曲线的NURBS数据
注意事项:
1. 无参数时从当前堆栈获取样条曲线
2. NURBS是非均匀有理B样条的简称
3. 返回值包含样条曲线的完整数学定义
------------------------------------------------------------
92
函数名称: xdrx-spline-hasfitdata
描述:
检查样条曲线是否包含拟合数据
调用格式:
(xdrx-spline-hasfitdata [样条曲线实体])
参数说明:
* [样条曲线实体]: 可选参数,要检查的样条曲线实体
返回值:
T - 存在拟合数据
nil - 无拟合数据
示例用法1:
(xdrx-spline-hasfitdata ent)
返回: T (表示存在拟合数据)
示例用法2:
(xdrx-spline-hasfitdata)
返回: 当前堆栈中样条曲线的拟合数据检查结果
注意事项:
1. 无参数时检查当前堆栈中的样条曲线
2. 仅返回T或nil两种结果
3. 可用于判断是否可调用其他拟合数据相关函数
------------------------------------------------------------
93
函数名称: xdrx-spline-insertknot
描述:
在样条曲线的指定参数位置插入节点
调用格式:
(xdrx-spline-insertknot <参数值> [样条曲线实体])
参数说明:
* <参数值>: 要插入节点的参数位置(实数)
* [样条曲线实体]: 可选参数,要操作的样条曲线实体
返回值:
T - 插入成功
nil - 插入失败
示例用法1:
(xdrx-spline-insertknot 0.5 ent)
返回: T (表示节点插入成功)
示例用法2:
(xdrx-spline-insertknot 0.3)
返回: 在当前堆栈样条曲线的0.3参数位置插入节点
注意事项:
1. 参数值应在样条曲线的有效参数范围内
2. 无实体参数时使用当前堆栈中的样条曲线
3. 插入节点会改变样条曲线的形状
------------------------------------------------------------
94
函数名称: xdrx-spline-iscircarc
描述:
判断样条曲线是否为圆弧或圆并返回转换结果
调用格式:
(xdrx-spline-iscircarc [样条曲线实体])
参数说明:
* [样条曲线实体]: 可选参数,要检查的样条曲线实体
返回值:
圆弧/圆实体 - 当样条曲线可转换为圆弧或圆时
nil - 无法转换时
示例用法1:
(xdrx-spline-iscircarc ent)
返回: 转换后的圆弧实体或nil
示例用法2:
(xdrx-spline-iscircarc)
返回: 当前堆栈中样条曲线的转换结果
注意事项:
1. 无参数时检查当前堆栈中的样条曲线
2. 使用1e-5的精度进行转换判断
3. 返回新创建的圆弧/圆实体
------------------------------------------------------------
95
函数名称: xdrx-spline-isellipse
描述:
判断样条曲线是否为椭圆或椭圆弧并返回转换结果
调用格式:
(xdrx-spline-isellipse [样条曲线实体] )
参数说明:
* [样条曲线实体]: 可选参数,要检查的样条曲线实体
* : 可选参数,T表示作为椭圆弧处理
返回值:
椭圆/椭圆弧实体 - 当样条曲线可转换时
nil - 无法转换时
示例用法1:
(xdrx-spline-isellipse ent)
返回: 转换后的椭圆实体或nil
示例用法2:
(xdrx-spline-isellipse ent T)
返回: 作为椭圆弧处理后的实体
注意事项:
1. 使用1e-5的精度进行转换判断
2. 无实体参数时使用当前堆栈中的样条曲线
3. 返回新创建的椭圆/椭圆弧实体
------------------------------------------------------------
96
函数名称: xdrx-spline-isnull
描述:
检查样条曲线是否为null(无效)状态
调用格式:
(xdrx-spline-isnull [样条曲线实体])
参数说明:
* [样条曲线实体]: 可选参数,要检查的样条曲线实体
返回值:
T - 样条曲线为null状态
nil - 样条曲线有效
示例用法1:
(xdrx-spline-isnull ent)
返回: T (表示样条曲线为null状态)
示例用法2:
(xdrx-spline-isnull)
返回: 当前堆栈中样条曲线的null状态检查结果
注意事项:
1. 无参数时检查当前堆栈中的样条曲线
2. null状态表示样条曲线数据无效
3. 仅返回T或nil两种结果
------------------------------------------------------------
97
函数名称: xdrx-spline-isrational
描述:
检查样条曲线是否为有理样条(Rational B-spline)
调用格式:
(xdrx-spline-isrational [样条曲线实体])
参数说明:
* [样条曲线实体]: 可选参数,要检查的样条曲线实体
返回值:
T - 是有理样条
nil - 不是有理样条
示例用法1:
(xdrx-spline-isrational ent)
返回: T (表示是有理样条)
示例用法2:
(xdrx-spline-isrational)
返回: 当前堆栈中样条曲线的有理属性检查结果
注意事项:
1. 无参数时检查当前堆栈中的样条曲线
2. 有理样条使用权重控制曲线形状
3. 仅返回T或nil两种结果
------------------------------------------------------------
98
函数名称: xdrx-spline-make
描述:
创建样条曲线
调用格式:
(xdrx-spline-make [点1 点2 ... 点n] )
参数说明:
* [点1 点2 ... 点n]: 可选参数,样条曲线经过的点集
* : 可选参数,使用拟合方式创建样条曲线
返回值:
新创建的样条曲线实体
示例用法1:
(xdrx-spline-make)
返回: 默认属性样条曲线内存实体
示例用法2:
(xdrx-spline-make p1 p2 p3)
返回: 通过指定点集的样条曲线
示例用法3:
(xdrx-spline-make p1 p2 p3 T)
返回: 使用拟合方式创建的样条曲线
注意事项:
1. 无参数时创建默认样条曲线
2. 点参数可以是2D或3D点
3. T参数控制是否使用拟合方式创建
------------------------------------------------------------
99
函数名称: xdrx-spline-numcontrolpoints
描述:
获取样条曲线的控制点数量
调用格式:
(xdrx-spline-numcontrolpoints [样条曲线实体])
参数说明:
* [样条曲线实体]: 可选参数,要检查的样条曲线实体
返回值:
整数 - 控制点数量
示例用法1:
(xdrx-spline-numcontrolpoints ent)
返回: 4 (表示有4个控制点)
示例用法2:
(xdrx-spline-numcontrolpoints)
返回: 当前堆栈中样条曲线的控制点数量
注意事项:
1. 无参数时检查当前堆栈中的样条曲线
2. 控制点决定样条曲线的基本形状
3. 返回值为非负整数
------------------------------------------------------------
100
函数名称: xdrx-spline-numfitpoints
描述:
获取样条曲线的拟合点数量(仅当有拟合数据时)
调用格式:
(xdrx-spline-numfitpoints [样条曲线实体])
参数说明:
* [样条曲线实体]: 可选参数,要检查的样条曲线实体
返回值:
整数 - 拟合点数量(当有拟合数据时)
nil - 无拟合数据时
示例用法1:
(xdrx-spline-numfitpoints ent)
返回: 5 (表示有5个拟合点)
示例用法2:
(xdrx-spline-numfitpoints)
返回: 当前堆栈中样条曲线的拟合点数量
注意事项:
1. 无参数时检查当前堆栈中的样条曲线
2. 仅当样条曲线有拟合数据时返回有效值
3. 拟合点是样条曲线实际经过的点
------------------------------------------------------------
101
函数名称: xdrx-spline-purgefitdata
描述:
清除样条曲线的拟合数据
调用格式:
(xdrx-spline-purgefitdata <实体或选择集>)
参数说明:
* <实体或选择集>: 要处理的样条曲线实体或选择集
返回值:
T - 操作成功
nil - 操作失败
示例用法1:
(xdrx-spline-purgefitdata ent)
返回: T (表示清除成功)
示例用法2:
(xdrx-spline-purgefitdata ss)
返回: 批量清除选择集中样条曲线的拟合数据
注意事项:
1. 清除拟合数据后样条曲线将仅保留控制点
2. 支持批量处理多个样条曲线
3. 输入可以是单个实体或选择集
------------------------------------------------------------
102
函数名称: xdrx-spline-removefitpointat
描述:
移除样条曲线指定位置的拟合点
调用格式:
(xdrx-spline-removefitpointat <样条曲线实体> <索引号|点坐标>)
参数说明:
* <样条曲线实体>: 要处理的样条曲线实体
* <索引号|点坐标>: 拟合点索引号(从0开始)或点坐标
返回值:
T - 移除成功
nil - 移除失败
示例用法1:
(xdrx-spline-removefitpointat ent 2)
返回: T (表示成功移除第3个拟合点)
示例用法2:
(xdrx-spline-removefitpointat ent '(10 20 0))
返回: 移除最接近(10,20,0)的拟合点
注意事项:
1. 索引号从0开始计数
2. 当使用点坐标时,自动计算最近的拟合点
3. 会改变样条曲线形状
------------------------------------------------------------
103
函数名称: xdrx-spline-reversecurve
描述:
反转样条曲线的方向
调用格式:
(xdrx-spline-reversecurve [样条曲线实体])
参数说明:
* [样条曲线实体]: 可选参数,要反转的样条曲线实体
返回值:
T - 反转成功
nil - 反转失败
示例用法1:
(xdrx-spline-reversecurve ent)
返回: T (表示反转成功)
示例用法2:
(xdrx-spline-reversecurve)
返回: 反转当前堆栈中样条曲线的方向
注意事项:
1. 无参数时反转当前堆栈中的样条曲线
2. 反转会交换起点和终点
3. 不改变样条曲线的几何形状,只改变方向
------------------------------------------------------------
104
函数名称: xdrx-spline-setcontrolpointat
描述:
设置样条曲线指定控制点的位置
调用格式:
(xdrx-spline-setcontrolpointat [样条曲线实体] <索引> <点坐标>)
参数说明:
* [样条曲线实体]: 可选参数,要修改的样条曲线实体
* <索引>: 控制点索引(从0开始)
* <点坐标>: 新的控制点位置(3D点)
返回值:
T - 设置成功
nil - 设置失败
示例用法1:
(xdrx-spline-setcontrolpointat ent 1 '(10 20 0))
返回: T (表示第2个控制点位置更新成功)
示例用法2:
(xdrx-spline-setcontrolpointat 2 '(15 25 5))
返回: 设置当前堆栈样条曲线第3个控制点位置
注意事项:
1. 索引从0开始计数
2. 点坐标会自动从UCS转换到WCS
3. 会改变样条曲线形状
------------------------------------------------------------
105
函数名称: xdrx-spline-setfitpointat
描述:
设置样条曲线指定拟合点的位置
调用格式:
(xdrx-spline-setfitpointat <样条曲线实体> <索引号|参考点> <新点坐标>)
参数说明:
* <样条曲线实体>: 要修改的样条曲线实体
* <索引号|参考点>: 拟合点索引号(从0开始)或参考点坐标
* <新点坐标>: 新的拟合点位置(3D点)
返回值:
T - 设置成功
nil - 设置失败
示例用法1:
(xdrx-spline-setfitpointat ent 2 '(10 20 0))
返回: T (表示成功设置第3个拟合点位置)
示例用法2:
(xdrx-spline-setfitpointat ent '(5 5 0) '(15 15 0))
返回: 设置最接近(5,5,0)的拟合点为(15,15,0)
注意事项:
1. 索引号从0开始计数
2. 当使用参考点时,自动计算最近的拟合点
3. 会改变样条曲线形状
------------------------------------------------------------
106
函数名称: xdrx-spline-setfittol
描述:
设置样条曲线的拟合公差
调用格式:
(xdrx-spline-setfittol [样条曲线实体] <公差值>)
参数说明:
* [样条曲线实体]: 可选参数,要设置的样条曲线实体
* <公差值>: 新的拟合公差值(正实数)
返回值:
T - 设置成功
nil - 设置失败
示例用法1:
(xdrx-spline-setfittol ent 0.01)
返回: T (表示公差设置成功)
示例用法2:
(xdrx-spline-setfittol 0.05)
返回: 设置当前堆栈样条曲线的拟合公差为0.05
注意事项:
1. 公差值越小,样条曲线越接近拟合点
2. 无实体参数时操作当前堆栈中的样条曲线
3. 会影响样条曲线的形状
------------------------------------------------------------
107
函数名称: xdrx-spline-setweightat
描述:
设置样条曲线指定控制点的权重
调用格式:
(xdrx-spline-setweightat [样条曲线实体] <索引> <权重值>)
参数说明:
* [样条曲线实体]: 可选参数,要修改的样条曲线实体
* <索引>: 控制点索引(从0开始)
* <权重值>: 新的权重值(正实数)
返回值:
T - 设置成功
nil - 设置失败
示例用法1:
(xdrx-spline-setweightat ent 1 2.5)
返回: T (表示第2个控制点权重设置成功)
示例用法2:
(xdrx-spline-setweightat 0 3.0)
返回: 设置当前堆栈样条曲线第1个控制点权重为3.0
注意事项:
1. 权重值越大,曲线越接近该控制点
2. 索引从0开始计数
3. 会显著改变样条曲线形状
------------------------------------------------------------
108
函数名称: xdrx-spline-updatefitdata
描述:
更新样条曲线的拟合数据
调用格式:
(xdrx-spline-updatefitdata [样条曲线实体])
参数说明:
* [样条曲线实体]: 可选参数,要更新的样条曲线实体
返回值:
T - 更新成功
nil - 更新失败
示例用法1:
(xdrx-spline-updatefitdata ent)
返回: T (表示拟合数据更新成功)
示例用法2:
(xdrx-spline-updatefitdata)
返回: 更新当前堆栈中样条曲线的拟合数据
注意事项:
1. 无参数时更新当前堆栈中的样条曲线
2. 会重新计算样条曲线与拟合点的关系
3. 可能改变样条曲线形状
------------------------------------------------------------
109
函数名称: xdrx-spline-weightat
描述:
获取样条曲线指定控制点的权重值
调用格式:
(xdrx-spline-weightat [样条曲线实体] <索引>)
参数说明:
* [样条曲线实体]: 可选参数,要查询的样条曲线实体
* <索引>: 控制点索引(从0开始)
返回值:
实数 - 控制点的权重值
nil - 获取失败
示例用法1:
(xdrx-spline-weightat ent 1)
返回: 2.5 (表示第2个控制点权重为2.5)
示例用法2:
(xdrx-spline-weightat 0)
返回: 当前堆栈样条曲线第1个控制点的权重值
注意事项:
1. 权重值越大,曲线越接近该控制点
2. 索引从0开始计数
3. 默认权重值为1.0
------------------------------------------------------------
110
函数名称: xdrx-2dpolyline-make
描述:
创建二维多段线
调用格式:
(xdrx-2dpolyline-make [点列表])
参数说明:
* [点列表]: 可选参数,多段线顶点坐标列表(2D或3D点)
返回值:
多段线实体名 - 创建成功
nil - 创建失败
示例用法1:
(xdrx-2dpolyline-make '((0 0) (10 0) (10 10) (0 10)))
返回: <图元名> (创建矩形多段线)
示例用法2:
(xdrx-2dpolyline-make)
返回: 创建空多段线内存实体
注意事项:
1. 无参数时创建空多段线
2. 自动将2D点转换为3D点(z=0)
3. 返回新创建的多段线实体
------------------------------------------------------------
111
函数名称: xdrx-3dpolyline-make
描述:
创建三维多段线
调用格式:
(xdrx-3dpolyline-make [点列表])
参数说明:
* [点列表]: 可选参数,多段线顶点坐标列表(2D或3D点)
返回值:
多段线实体名 - 创建成功
nil - 创建失败
示例用法1:
(xdrx-3dpolyline-make '((0 0 0) (10 0 5) (10 10 10) (0 10 5)))
返回: <图元名> (创建三维多段线)
示例用法2:
(xdrx-3dpolyline-make)
返回: 创建空三维多段线
注意事项:
1. 无参数时创建空三维多段线
2. 2D点自动转换为3D点(z=0)
3. 返回新创建的三维多段线实体
------------------------------------------------------------
112
函数名称: xdrx_polyline->2dpolyline
描述:
将轻量多段线转换为二维多段线
调用格式:
(xdrx_polyline->2dpolyline <多段线实体>)
参数说明:
* <多段线实体>: 要转换的轻量多段线实体
返回值:
T - 转换成功
nil - 转换失败
示例用法:
(xdrx_polyline->2dpolyline ent)
返回: T (表示转换成功)
注意事项:
1. 转换后保留原实体ID
2. 二维多段线支持更多编辑选项
3. 会改变多段线的内部数据结构
------------------------------------------------------------
113
函数名称: xdrx_polyline->convex
描述:
将凹多边形分解为多个凸多边形
调用格式:
(xdrx_polyline->convex <多段线实体>)
参数说明:
* <多段线实体>: 要分解的凹多边形多段线
返回值:
列表 - 包含多个凸多边形的顶点列表
nil - 分解失败
示例用法:
(xdrx_polyline->convex ent)
返回: (((p1 p2 p3) (p4 p5 p6))) (表示分解为两个三角形)
注意事项:
1. 输入必须是闭合的凹多边形
2. 返回的每个子列表代表一个凸多边形
3. 分解结果可能不唯一
------------------------------------------------------------
114
函数名称: xdrx-polyline-addvertexat
描述:
在多段线指定位置添加顶点
调用格式:
(xdrx-polyline-addvertexat [多段线实体] <索引> <点坐标> [凸度] [起点宽度] [终点宽度])
参数说明:
* [多段线实体]: 可选参数,要修改的多段线实体(默认使用当前堆栈实体)
* <索引>: 要插入的顶点位置索引(从0开始)
* <点坐标>: 新顶点的坐标(2D或3D点)
* [凸度]: 可选参数,新顶点的凸度值
* [起点宽度]: 可选参数,新线段的起点宽度
* [终点宽度]: 可选参数,新线段的终点宽度
返回值:
T - 添加成功
nil - 添加失败
示例用法1:
(xdrx-polyline-addvertexat ent 2 '(10 20))
返回: T (在第3个位置添加顶点)
示例用法2:
(xdrx-polyline-addvertexat 0 '(0 0) 0.5 1.0 0.5)
返回: 在当前堆栈多段线开头添加带凸度和宽度的顶点
注意事项:
1. 索引从0开始计数
2. 支持轻量、2D和3D多段线
3. 宽度参数可接受实数或整数
------------------------------------------------------------
115
函数名称: xdrx-polyline-arc2polyarc
描述:
将圆弧转换为多段线弧段
调用格式:
(xdrx-polyline-arc2polyarc <圆弧实体|选择集> [删除原圆弧])
参数说明:
* <圆弧实体|选择集>: 要转换的圆弧实体或选择集
* [删除原圆弧]: 可选参数T表示转换后删除原圆弧
返回值:
无显式返回值(创建新的多段线弧段)
示例用法1:
(xdrx-polyline-arc2polyarc ent)
返回: 创建包含圆弧段的多段线
示例用法2:
(xdrx-polyline-arc2polyarc ss T)
返回: 转换选择集中所有圆弧并删除原圆弧
注意事项:
1. 保留原圆弧的图层属性
2. 转换后的多段线包含圆弧段
3. 无参数T时保留原圆弧
------------------------------------------------------------
116
函数名称: xdrx-polyline-centroid
描述:
计算闭合多段线的质心坐标
调用格式:
(xdrx-polyline-centroid <多段线实体>)
参数说明:
* <多段线实体>: 闭合的多段线实体(轻量或2D)
返回值:
点坐标 - 质心坐标(3D点)
nil - 计算失败(非闭合多段线或无效实体)
示例用法:
(xdrx-polyline-centroid ent)
返回: (10.0 20.0 0.0) (质心坐标)
注意事项:
1. 输入多段线必须是闭合的
2. 支持轻量多段线和2D多段线
3. 返回3D点坐标(z坐标通常为0)
------------------------------------------------------------
117
函数名称: xdrx-polyline-compress
描述:
压缩多段线(去除冗余顶点)
调用格式:
(xdrx-polyline-compress <多段线实体|选择集> [容差] [模式])
参数说明:
* <多段线实体|选择集>: 要压缩的多段线实体或选择集
* [容差]: 可选压缩容差值(默认使用全局容差)
* [模式]: 可选压缩模式(默认7)
返回值:
无显式返回值(直接修改原多段线)
示例用法1:
(xdrx-polyline-compress ent)
返回: 按默认设置压缩多段线
示例用法2:
(xdrx-polyline-compress ss 0.1 3)
返回: 按容差0.1和模式3压缩选择集
注意事项:
1. 支持轻量多段线和2D多段线
2. 模式7为默认压缩方式
3. 会直接修改原多段线
------------------------------------------------------------
118
函数名称: xdrx-polyline-convertfrom
描述:
将2D多段线转换为轻量多段线
调用格式:
(xdrx-polyline-convertfrom <2D多段线实体|选择集>)
参数说明:
* <2D多段线实体|选择集>: 要转换的2D多段线实体或选择集
返回值:
T - 转换成功
nil - 转换失败
示例用法1:
(xdrx-polyline-convertfrom ent)
返回: T (转换成功)
示例用法2:
(xdrx-polyline-convertfrom ss)
返回: 转换选择集中所有2D多段线
注意事项:
1. 会直接修改原多段线
2. 仅支持2D多段线转换
3. 保留原多段线的所有属性
------------------------------------------------------------
119
函数名称: xdrx-polyline-convertto
描述:
将轻量多段线转换为2D多段线
调用格式:
(xdrx-polyline-convertto <轻量多段线实体|选择集>)
参数说明:
* <轻量多段线实体|选择集>: 要转换的轻量多段线实体或选择集
返回值:
整数 - 转换成功的实体数量
nil - 转换失败
示例用法1:
(xdrx-polyline-convertto ent)
返回: 1 (成功转换1个实体)
示例用法2:
(xdrx-polyline-convertto ss)
返回: 3 (成功转换选择集中的3个实体)
注意事项:
1. 会直接修改原多段线
2. 仅支持轻量多段线转换
3. 保留原多段线的所有属性
------------------------------------------------------------
120
Function Name: xdrx-polyline-elevation
Description:
Gets elevation of polyline
Calling Format:
(xdrx-polyline-elevation )
Parameters:
* : Optional polyline entity (default uses current stack entity)
Return Value:
Real - polyline elevation value
nil - failed to get elevation
Example 1:
(xdrx-polyline-elevation ent)
Returns: 10.0 (polyline elevation)
Example 2:
(xdrx-polyline-elevation)
Returns: Elevation of current stack polyline
Notes:
1. Supports both lightweight and 2D polylines
2. Uses current stack entity when no argument
3. Return value is real number
------------------------------------------------------------
120
函数名称: xdrx-polyline-elevation
描述:
获取多段线的高程值
调用格式:
(xdrx-polyline-elevation [多段线实体])
参数说明:
* [多段线实体]: 可选参数,要查询的多段线实体(默认使用当前堆栈实体)
返回值:
实数 - 多段线的高程值
nil - 获取失败
示例用法1:
(xdrx-polyline-elevation ent)
返回: 10.0 (多段线高程值)
示例用法2:
(xdrx-polyline-elevation)
返回: 当前堆栈多段线的高程值
注意事项:
1. 支持轻量多段线和2D多段线
2. 无参数时使用当前堆栈实体
3. 返回值为实数类型
------------------------------------------------------------
121
函数名称: xdrx-polyline-extend
描述:
扩展多段线到指定边界
调用格式:
(xdrx-polyline-extend <多段线实体> <边界实体> [起始索引] [结束索引] )
参数说明:
* <多段线实体>: 要扩展的多段线实体
* <边界实体>: 扩展到的边界实体
* [起始索引]: 可选起始段索引(默认从起点开始)
* [结束索引]: 可选结束段索引(默认到终点结束)
* : 可选强制扩展标志
返回值:
T - 扩展成功
nil - 扩展失败
示例用法1:
(xdrx-polyline-extend ent1 ent2)
返回: 将ent1扩展到ent2边界
示例用法2:
(xdrx-polyline-extend ent1 ent2 2 5 T)
返回: 强制扩展第2到第5段
注意事项:
1. 支持轻量多段线和2D多段线
2. 索引参数控制扩展的段范围
3. T参数启用强制扩展模式
------------------------------------------------------------
122
函数名称: xdrx-polyline-fuzzclose
描述:
模糊闭合多段线(当端点距离小于容差时自动闭合)
调用格式:
(xdrx-polyline-fuzzclose <多段线实体|选择集> )
参数说明:
* <多段线实体|选择集>: 要处理的多段线实体或选择集
* : 可选强制处理标志
返回值:
整数 - 成功处理的多段线数量
示例用法1:
(xdrx-polyline-fuzzclose ent)
返回: 1 (成功处理1个多段线)
示例用法2:
(xdrx-polyline-fuzzclose ss T)
返回: 3 (强制处理选择集中的3个多段线)
注意事项:
1. 使用全局容差控制闭合距离
2. T参数启用强制处理模式
3. 支持轻量多段线和2D多段线
------------------------------------------------------------
123
函数名称: xdrx-polyline-get_maxfilletradius
描述:
获取多段线顶点处最大圆角半径
调用格式:
(xdrx-polyline-get_maxfilletradius <多段线实体> <顶点索引> [返回模式])
参数说明:
* <多段线实体>: 要查询的多段线实体
* <顶点索引>: 要查询的顶点索引(0-based)
* [返回模式]: 可选返回模式(0-3,默认0)
0: 返回最大半径(实数)
1: 返回(起点 凸度 终点)
2: 返回(圆心 半径 起始角 终止角)
3: 返回圆弧实体
返回值:
根据模式返回不同结果:
模式0: 实数 - 最大圆角半径
模式1: 列表 - (起点 凸度 终点)
模式2: 列表 - (圆心 半径 起始角 终止角)
模式3: 图元 - 圆弧实体
示例用法1:
(xdrx-polyline-get_maxfilletradius ent 2)
返回: 5.0 (顶点2处的最大圆角半径)
示例用法2:
(xdrx-polyline-get_maxfilletradius ent 1 2)
返回: ((10.0 20.0 0.0) 5.0 0.785 1.571) (圆心、半径和角度)
注意事项:
1. 顶点索引从0开始
2. 支持轻量多段线
3. 返回角度单位为弧度
------------------------------------------------------------
124
函数名称: xdrx-polyline-getarcsegat
描述:
获取多段线中指定索引的圆弧段信息
调用格式:
(xdrx-polyline-getarcsegat <多段线实体> <顶点索引> )
或
(xdrx-polyline-getarcsegat <顶点索引> )
参数说明:
* <多段线实体>: 要查询的多段线实体(第一种格式)
* <顶点索引>: 要查询的顶点索引(0-based)
* : 可选标志控制返回格式
存在: 返回圆弧实体
不存在: 返回几何参数
返回值:
默认返回: (圆心 半径 起始角 终止角)
T标志存在时返回: 圆弧实体
示例用法1:
(xdrx-polyline-getarcsegat ent 2)
返回: ((10.0 20.0 0.0) 5.0 0.785 1.571)
示例用法2:
(xdrx-polyline-getarcsegat 1 T)
返回: <图元名: 7ffff706050> (当前堆栈多段线的圆弧实体)
注意事项:
1. 顶点索引从0开始
2. 无实体参数时使用当前堆栈多段线
3. 返回角度单位为弧度
4. 起始/终止角表示圆弧方向
------------------------------------------------------------
125
函数名称: xdrx-polyline-getbulgeat
描述:
获取多段线指定顶点处的凸度值
调用格式:
(xdrx-polyline-getbulgeat <多段线实体> <顶点索引>)
或
(xdrx-polyline-getbulgeat <顶点索引>)
参数说明:
* <多段线实体>: 要查询的多段线实体(第一种格式)
* <顶点索引>: 要查询的顶点索引(0-based)
返回值:
实数 - 指定顶点处的凸度值
示例用法1:
(xdrx-polyline-getbulgeat ent 2)
返回: 0.414 (顶点2处的凸度值)
示例用法2:
(xdrx-polyline-getbulgeat 1)
返回: 0.0 (当前堆栈多段线顶点1的凸度值)
注意事项:
1. 顶点索引从0开始
2. 无实体参数时使用当前堆栈多段线
3. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
4. 凸度值定义:
- 0.0: 直线段
- >0.0: 顺时针圆弧
- <0.0: 逆时针圆弧
5. 凸度绝对值=tan(圆弧包含角/4)
------------------------------------------------------------
126
函数名称: xdrx-polyline-getconstantwidth
描述:
获取多段线的全局宽度值
调用格式:
(xdrx-polyline-getconstantwidth [多段线实体])
参数说明:
* [多段线实体]: 可选参数,要查询的多段线实体
不提供时使用当前堆栈中的多段线
返回值:
实数 - 多段线的全局宽度值
示例用法1:
(xdrx-polyline-getconstantwidth ent)
返回: 0.5 (多段线的全局宽度)
示例用法2:
(xdrx-polyline-getconstantwidth)
返回: 0.2 (当前堆栈多段线的全局宽度)
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 全局宽度会应用于多段线的所有线段
3. 若多段线设置了顶点宽度,则优先使用顶点宽度
4. 返回0.0表示使用默认宽度
------------------------------------------------------------
127
函数名称: xdrx-polyline-getcurvertex
描述:
获取多段线当前顶点坐标并移动到下一顶点
调用格式:
(xdrx-polyline-getcurvertex)
返回值:
点坐标 - 当前顶点坐标(WCS)
nil - 如果没有更多顶点
示例用法1:
(xdrx-polyline-getcurvertex)
返回: (10.0 20.0 0.0) (当前顶点坐标)
示例用法2:
(xdrx-polyline-getcurvertex)
返回: nil (已到达多段线末端)
注意事项:
1. 使用前需将多段线压入堆栈
2. 支持POLYLINE、LWPOLYLINE和INSERT类型
3. 每次调用会自动移动到下一顶点
4. 返回的Z坐标始终为0.0
5. 坐标已转换为WCS坐标系
------------------------------------------------------------
128
函数名称: xdrx-polyline-getlinesegat
描述:
获取多段线指定索引处的直线段信息
调用格式:
(xdrx-polyline-getlinesegat <多段线实体> <顶点索引> )
或
(xdrx-polyline-getlinesegat <顶点索引> )
参数说明:
* <多段线实体>: 要查询的多段线实体(第一种格式)
* <顶点索引>: 要查询的顶点索引(0-based)
* : 可选标志控制返回格式
存在: 返回直线实体
不存在: 返回起点终点坐标
返回值:
默认返回: (起点 终点)
T标志存在时返回: 直线实体
示例用法1:
(xdrx-polyline-getlinesegat ent 2)
返回: ((10.0 20.0 0.0) (15.0 25.0 0.0))
示例用法2:
(xdrx-polyline-getlinesegat 1 T)
返回: <图元名: 7ffff706050> (当前堆栈多段线的直线实体)
注意事项:
1. 顶点索引从0开始
2. 无实体参数时使用当前堆栈多段线
3. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
4. 返回坐标已转换为当前UCS坐标系
------------------------------------------------------------
129
函数名称: xdrx-polyline-get_outline
描述:
生成多段线的轮廓线
调用格式:
(xdrx-polyline-get_outline <多段线实体|选择集> [模式] )
参数说明:
* <多段线实体|选择集>: 要生成轮廓的多段线实体或选择集
* [模式]: 可选轮廓算法模式(0-2,默认0)
0: 五点椭圆算法
1: 三点圆弧算法
2: 直线段算法
* : 可选圆形标志
存在: 生成圆形轮廓
不存在: 保持原始形状
返回值:
轮廓线实体列表
示例用法1:
(xdrx-polyline-get_outline ent)
返回: (<图元名1> <图元名2>) (默认算法生成的轮廓线)
示例用法2:
(xdrx-polyline-get_outline ss 1 T)
返回: (<图元名1> <图元名2>) (三点圆弧算法生成的圆形轮廓)
注意事项:
1. 支持轻量多段线和2D多段线
2. 轮廓线会继承原多段线的图层和属性
3. 复杂多段线可能生成多条轮廓线
4. 圆形标志仅对闭合多段线有效
------------------------------------------------------------
130
函数名称: xdrx-polyline-getpointat
描述:
获取多段线指定索引处的顶点坐标
调用格式:
(xdrx-polyline-getpointat <多段线实体> <顶点索引>)
或
(xdrx-polyline-getpointat <顶点索引>)
参数说明:
* <多段线实体>: 要查询的多段线实体(第一种格式)
* <顶点索引>: 要查询的顶点索引(0-based)
返回值:
点坐标 - 指定顶点坐标
示例用法1:
(xdrx-polyline-getpointat ent 2)
返回: (10.0 20.0 0.0) (顶点2的坐标)
示例用法2:
(xdrx-polyline-getpointat 1)
返回: (15.0 25.0 0.0) (当前堆栈多段线顶点1的坐标)
注意事项:
1. 顶点索引从0开始
2. 无实体参数时使用当前堆栈多段线
3. 支持三种多段线类型:
- 轻量多段线(AcDbPolyline)
- 2D多段线(AcDb2dPolyline)
- 3D多段线(AcDb3dPolyline)
4. 返回坐标是WCS坐标系
------------------------------------------------------------
131
函数名称: xdrx-polyline-getwidthsat
描述:
获取轻量多段线指定顶点处的起点和终点宽度
调用格式:
(xdrx-polyline-getwidthsat <多段线实体> <顶点索引>)
或
(xdrx-polyline-getwidthsat <顶点索引>)
参数说明:
* <多段线实体>: 要查询的轻量多段线实体(第一种格式)
* <顶点索引>: 要查询的顶点索引(0-based)
返回值:
列表 - (起点宽度 终点宽度)
示例用法1:
(xdrx-polyline-getwidthsat ent 2)
返回: (0.5 1.0) (顶点2处的起点宽度0.5,终点宽度1.0)
示例用法2:
(xdrx-polyline-getwidthsat 1)
返回: (0.0 0.0) (当前堆栈多段线顶点1的宽度)
注意事项:
1. 顶点索引从0开始
2. 无实体参数时使用当前堆栈多段线
3. 仅支持轻量多段线(AcDbPolyline)
4. 返回0.0表示使用默认宽度
5. 宽度值单位为图形单位
------------------------------------------------------------
132
函数名称: xdrx-polyline-hasbulges
描述:
检查多段线是否包含凸度(bulges)
调用格式:
(xdrx-polyline-hasbulges [多段线实体])
参数说明:
* [多段线实体]: 可选参数,要检查的多段线实体
不提供时使用当前堆栈中的多段线
返回值:
T - 存在凸度
nil - 无凸度
示例用法1:
(xdrx-polyline-hasbulges ent)
返回: T (多段线包含凸度)
示例用法2:
(xdrx-polyline-hasbulges)
返回: nil (当前堆栈多段线无凸度)
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 凸度用于定义多段线段的圆弧特性
3. 凸度值为0表示直线段,非0表示圆弧段
4. 返回值仅表示是否存在凸度,不反映凸度值大小
------------------------------------------------------------
133
函数名称: xdrx-polyline-hasplinegen
描述:
检查多段线是否启用了线型生成(PlineGen)
调用格式:
(xdrx-polyline-hasplinegen [多段线实体])
参数说明:
* [多段线实体]: 可选参数,要检查的多段线实体
不提供时使用当前堆栈中的多段线
返回值:
T - 启用了线型生成
nil - 未启用线型生成
示例用法1:
(xdrx-polyline-hasplinegen ent)
返回: T (多段线启用了线型生成)
示例用法2:
(xdrx-polyline-hasplinegen)
返回: nil (当前堆栈多段线未启用线型生成)
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 线型生成控制多段线整体的线型显示方式
3. 启用时线型会沿整个多段线连续显示
4. 禁用时线型会在每个顶点处重新开始
------------------------------------------------------------
134
函数名称: xdrx-polyline-haswidth
描述:
检查多段线是否设置了宽度
调用格式:
(xdrx-polyline-haswidth [多段线实体])
参数说明:
* [多段线实体]: 可选参数,要检查的多段线实体
不提供时使用当前堆栈中的多段线
返回值:
T - 设置了宽度(全局或顶点宽度)
nil - 未设置宽度
示例用法1:
(xdrx-polyline-haswidth ent)
返回: T (多段线设置了宽度)
示例用法2:
(xdrx-polyline-haswidth)
返回: nil (当前堆栈多段线未设置宽度)
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 检查包括全局宽度和顶点宽度
3. 返回T表示至少有一个线段设置了非零宽度
4. 宽度值为0.0视为未设置宽度
------------------------------------------------------------
135
函数名称: xdrx-polyline-isconcave
描述:
判断轻量多段线是否为凹多边形
调用格式:
(xdrx-polyline-isconcave <多段线实体>)
参数说明:
* <多段线实体>: 要检查的轻量多段线实体
返回值:
T - 是凹多边形
nil - 不是凹多边形或无法判断
示例用法1:
(xdrx-polyline-isconcave ent1)
返回: T (多段线是凹多边形)
示例用法2:
(xdrx-polyline-isconcave ent2)
返回: nil (多段线不是凹多边形)
注意事项:
1. 仅支持轻量多段线(AcDbPolyline)
2. 多段线必须是闭合的才能判断
3. 凹多边形指至少有一个内角大于180度
4. 无法判断时返回nil(如非闭合多段线)
------------------------------------------------------------
136
函数名称: xdrx-polyline-isonlylines
描述:
检查多段线是否仅由直线段组成
调用格式:
(xdrx-polyline-isonlylines [多段线实体])
参数说明:
* [多段线实体]: 可选参数,要检查的多段线实体
不提供时使用当前堆栈中的多段线
返回值:
T - 仅包含直线段
nil - 包含圆弧段或无法判断
示例用法1:
(xdrx-polyline-isonlylines ent)
返回: T (多段线仅由直线段组成)
示例用法2:
(xdrx-polyline-isonlylines)
返回: nil (当前堆栈多段线包含圆弧段)
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 通过检查凸度(bulge)值判断是否为直线段
3. 凸度值为0表示直线段,非0表示圆弧段
4. 无法判断时返回nil
------------------------------------------------------------
137
函数名称: xdrx-polyline-isonlyarc
描述:
检查多段线是否仅由圆弧段组成
调用格式:
(xdrx-polyline-isonlyarc <多段线实体> [容差值])
参数说明:
* <多段线实体>: 要检查的多段线实体
* [容差值]: 可选,判断端点重合的容差值(默认使用系统捕捉容差)
返回值:
T - 仅包含圆弧段
nil - 包含直线段或无法判断
示例用法1:
(xdrx-polyline-isonlyarc ent)
返回: T (多段线仅由圆弧段组成)
示例用法2:
(xdrx-polyline-isonlyarc ent 0.001)
返回: nil (多段线包含直线段)
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 通过检查凸度(bulge)值判断是否为圆弧段
3. 凸度值为0表示直线段,非0表示圆弧段
4. 容差值用于判断圆弧端点是否闭合
5. 无法判断时返回nil
------------------------------------------------------------
138
函数名称: xdrx-polyline-isselfcrossing
函数别名: xdrx-polyline-isselfintersect
描述:
检查多段线是否自相交并返回交点信息
调用格式:
(xdrx-polyline-isselfcrossing <多段线实体> [模式标志])
参数说明:
* <多段线实体>: 要检查的多段线实体或几何曲线
* [模式标志]: 可选,控制返回值格式:
0 - 返回交点数量
1 - 返回交点坐标列表
2 - 返回交点参数列表(默认)
返回值:
根据模式标志返回:
0 - 整数(交点数量)
1 - 三维点列表(交点坐标)
2 - 参数对列表(交点参数)
无自相交时返回nil
示例用法1:
(xdrx-polyline-isselfcrossing ent)
返回: ((0.25 0.75) (0.6 0.4)) (交点参数列表)
示例用法2:
(xdrx-polyline-isselfcrossing ent 1)
返回: ((x1 y1 z1) (x2 y2 z2)) (交点坐标列表)
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 参数对表示交点在多段线上的参数位置(0.0-1.0)
3. 交点按参数顺序排序
4. 闭合多段线会检查首尾连接处
------------------------------------------------------------
139
函数名称: xdrx-polyline-join
描述:
连接多个多段线/曲线实体为一个多段线
调用格式:
(xdrx-polyline-join <实体列表> [容差值])
或
(xdrx-polyline-join <选择集> [容差值])
参数说明:
* <实体列表>: 要连接的实体列表(多个RTENAME)或选择集(RTPICKS)
* [容差值]: 可选,端点连接的最大距离(默认1e-4)
返回值:
无(直接修改图形数据库)
示例用法1:
(xdrx-polyline-join (list ent1 ent2 ent3))
; 连接三个多段线
示例用法2:
(xdrx-polyline-join ss 0.01)
; 以0.01容差连接选择集中的多段线
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 实体必须端点重合或在容差范围内
3. 自动处理不同类型多段线的转换
4. 连接顺序按选择顺序或列表顺序
5. 容差过大会导致意外连接
------------------------------------------------------------
140
函数名称: xdrx-polyline-make
描述:
创建多段线实体
调用格式:
(xdrx-polyline-make [点列表] [凸度列表] [闭合标志])
或
(xdrx-polyline-make <几何曲线>)
参数说明:
* [点列表]: 多段线顶点坐标列表(RT3DPOINT/RTPOINT)
* [凸度列表]: 可选,各段的凸度值列表(RTREAL/RTSHORT)
* [闭合标志]: 可选,T表示闭合多段线(RTT)
* <几何曲线>: 几何曲线实体(RTENAME)
返回值:
新创建的多段线实体名
示例用法1:
(xdrx-polyline-make (list p1 p2 p3))
; 创建通过三个点的多段线
示例用法2:
(xdrx-polyline-make (list p1 p2 p3) (list 0.5 0) T)
; 创建带凸度的闭合多段线
注意事项:
1. 无参数时创建空多段线
2. 凸度值0表示直线段,非0表示圆弧段
3. 点列表长度必须比凸度列表多1
4. 支持从几何曲线转换
5. 闭合标志默认为nil
------------------------------------------------------------
141
函数名称: xdrx-polyline-nearindex
描述:
获取多段线上距离指定点最近的顶点索引
调用格式:
(xdrx-polyline-nearindex <多段线实体> <查询点>)
参数说明:
* <多段线实体>: 要查询的多段线实体
* <查询点>: 要查询的坐标点(RTPOINT/RT3DPOINT)
返回值:
整数 - 最近顶点的索引(0-based)
失败返回nil
示例用法1:
(xdrx-polyline-nearindex ent pt)
返回: 2 (距离pt最近的顶点索引为2)
示例用法2:
(xdrx-polyline-nearindex ent (list x y z))
返回: 0 (距离最近的顶点是第一个点)
注意事项:
1. 支持轻量多段线(AcDbPolyline)、2D多段线(AcDb2dPolyline)和3D多段线(AcDb3dPolyline)
2. 索引从0开始计数
3. 基于空间距离计算最近顶点
4. 查询点在多段线平面外时可能不准确
------------------------------------------------------------
142
函数名称: xdrx-polyline-numverts
描述:
获取多段线的顶点数量
调用格式:
(xdrx-polyline-numverts [多段线实体])
参数说明:
* [多段线实体]: 可选参数,要查询的多段线实体
不提供时使用当前堆栈中的多段线
返回值:
整数 - 多段线的顶点数量
失败返回nil
示例用法1:
(xdrx-polyline-numverts ent)
返回: 5 (多段线有5个顶点)
示例用法2:
(xdrx-polyline-numverts)
返回: 3 (当前堆栈多段线有3个顶点)
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 自动将2D多段线转换为轻量多段线进行计算
3. 包含闭合点的顶点计数
4. 无参数时需确保堆栈中有多段线实体
------------------------------------------------------------
143
函数名称: xdrx-polyline-onsegat
描述:
检查点是否在多段线指定线段上并返回相关信息
调用格式:
(xdrx-polyline-onsegat <多段线实体> <点>)
或
(xdrx-polyline-onsegat <多段线实体> <线段索引> <点>)
或
(xdrx-polyline-onsegat <线段索引> <点>) ;使用堆栈实体
参数说明:
* <多段线实体>: 要检查的多段线实体(RTENAME)
* <线段索引>: 可选,要检查的线段索引(0-based)(RTSHORT)
* <点>: 要检查的坐标点(RTPOINT/RT3DPOINT)
返回值:
根据调用方式返回:
1. 仅指定点和实体:返回点到最近线段的距离(实数)
2. 指定索引:返回点到该线段的参数值(0.0-1.0)
3. 点不在线段上返回nil
示例用法1:
(xdrx-polyline-onsegat ent pt)
返回: 0.25 (点到最近线段的距离)
示例用法2:
(xdrx-polyline-onsegat ent 1 pt)
返回: 0.5 (点在线段1的中点位置)
注意事项:
1. 支持轻量多段线(AcDbPolyline)、2D多段线(AcDb2dPolyline)和3D多段线(AcDb3dPolyline)
2. 线段索引从0开始
3. 参数值0.0表示线段起点,1.0表示终点
4. 使用堆栈实体时需确保堆栈中有多段线
------------------------------------------------------------
144
函数名称: xdrx-polyline-polyarc2arc
描述:
将多段线中的圆弧段转换为独立圆弧实体
调用格式:
(xdrx-polyline-polyarc2arc <多段线实体>)
参数说明:
* <多段线实体>: 要转换的多段线实体(RTENAME)
返回值:
无(直接创建圆弧实体)
失败返回nil
示例用法:
(xdrx-polyline-polyarc2arc ent)
; 将多段线中的圆弧段转换为独立圆弧
注意事项:
1. 仅转换多段线中的圆弧段,直线段不处理
2. 生成的圆弧继承原多段线的图层属性
3. 每个圆弧段生成一个独立圆弧实体
4. 多段线本身不会被修改或删除
5. 若无圆弧段则不创建任何实体
------------------------------------------------------------
145
函数名称: xdrx-polyline-remake
描述:
根据指定索引重新排序多段线顶点
调用格式:
(xdrx-polyline-remake <多段线实体> <新起点索引>)
参数说明:
* <多段线实体>: 要处理的多段线实体(RTENAME)
* <新起点索引>: 作为新起点的顶点索引(0-based)(RTSHORT)
返回值:
T - 成功
nil - 失败
示例用法:
(xdrx-polyline-remake ent 2)
; 将索引为2的顶点设为多段线新起点
注意事项:
1. 顶点索引从0开始计数
2. 多段线的几何形状保持不变
3. 闭合多段线保持闭合状态
4. 索引超出范围将返回nil
5. 适用于轻量多段线(AcDbPolyline)
------------------------------------------------------------
146
函数名称: xdrx-polyline-removedupverts
描述:
移除多段线中的重复顶点
调用格式:
(xdrx-polyline-removedupverts <多段线实体> [容差值])
参数说明:
* <多段线实体>: 要处理的多段线实体(RTENAME)
* [容差值]: 可选,判断顶点重复的距离容差(RTREAL),默认使用捕捉距离
返回值:
无(直接修改多段线)
命令行显示处理前后的顶点数量
示例用法1:
(xdrx-polyline-removedupverts ent)
; 使用默认容差移除重复顶点
示例用法2:
(xdrx-polyline-removedupverts ent 0.1)
; 使用0.1单位容差移除重复顶点
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 容差值越小判断越严格
3. 会保留多段线的几何形状
4. 命令行输出格式: src=原顶点数 now=处理后顶点数
5. 无重复顶点时不作修改
------------------------------------------------------------
147
函数名称: xdrx-polyline-removeselfcrossing
描述:
移除多段线的自相交部分并生成新的多段线
调用格式:
(xdrx-polyline-removeselfcrossing <多段线实体>...)
参数说明:
* <多段线实体>: 一个或多个要处理的多段线实体(RTENAME)
返回值:
无(直接创建新的非自相交多段线)
示例用法:
(xdrx-polyline-removeselfcrossing ent1 ent2)
; 为ent1和ent2分别创建去除了自相交的新多段线
注意事项:
1. 支持处理多个多段线实体
2. 原始多段线不会被修改
3. 生成的新多段线位于当前空间
4. 若无自相交则生成与原多段线相同的副本
5. 适用于轻量多段线(AcDbPolyline)
------------------------------------------------------------
148
函数名称: xdrx-polyline-removevertexat
描述:
移除多段线指定位置的顶点
调用格式:
(xdrx-polyline-removevertexat <多段线实体> <顶点索引>)
或
(xdrx-polyline-removevertexat <多段线实体> <坐标点>)
参数说明:
* <多段线实体>: 要处理的多段线实体(RTENAME)
* <顶点索引>: 要移除的顶点索引(0-based)(RTSHORT)
* <坐标点>: 要移除的顶点坐标(RTPOINT/RT3DPOINT)
返回值:
T - 成功
nil - 失败
示例用法1:
(xdrx-polyline-removevertexat ent 2)
; 移除索引为2的顶点
示例用法2:
(xdrx-polyline-removevertexat ent (list x y))
; 移除指定坐标处的顶点
注意事项:
1. 支持轻量多段线(AcDbPolyline)、2D多段线(AcDb2dPolyline)和3D多段线(AcDb3dPolyline)
2. 顶点索引从0开始计数
3. 使用坐标点时移除距离最近且小于捕捉距离的顶点
4. 直接修改原多段线
5. 闭合多段线保持闭合状态
------------------------------------------------------------
149
函数名称: xdrx-polyline-reset
描述:
重置多段线顶点数量和属性
调用格式:
(xdrx-polyline-reset [多段线实体] <重用标志> <顶点数量>)
参数说明:
* [多段线实体]: 可选,要处理的多段线实体(RTENAME)
不提供时使用当前堆栈中的多段线
* <重用标志>: T-重用现有顶点数据,nil-不重用(RTT/RTNIL)
* <顶点数量>: 重置后的顶点数量(RTSHORT)
返回值:
T - 成功
nil - 失败
示例用法1:
(xdrx-polyline-reset ent T 5)
; 重置ent为5个顶点并重用数据
示例用法2:
(xdrx-polyline-reset nil 3)
; 重置堆栈多段线为3个顶点不重用数据
注意事项:
1. 仅支持轻量多段线(AcDbPolyline)
2. 重用标志为T时保留现有顶点属性
3. 直接修改原多段线
4. 顶点数量必须≥2
5. 无参数时需确保堆栈中有多段线
------------------------------------------------------------
150
函数名称: xdrx-polyline-resetstartpoint
描述:
重置多段线的起点位置和方向
调用格式:
(xdrx-polyline-resetstartpoint <多段线实体> <新起点> )
参数说明:
* <多段线实体>: 要处理的多段线实体(RTENAME)
* <新起点>: 新的起点坐标(RTPOINT/RT3DPOINT)
* : 可选,新的X轴方向向量(RT3DPOINT),默认为(1,0,0)
返回值:
T - 成功
nil - 失败
示例用法1:
(xdrx-polyline-resetstartpoint ent pt)
; 将ent的起点重置为pt,X轴方向保持默认
示例用法2:
(xdrx-polyline-resetstartpoint ent pt (list 0 1 0))
; 将ent的起点重置为pt,X轴方向设为Y轴
注意事项:
1. 仅支持轻量多段线(AcDbPolyline)
2. 保持多段线几何形状不变
3. 直接修改原多段线
4. X轴方向向量会自动归一化
5. 新起点必须在原多段线上
------------------------------------------------------------
150
函数名称: xdrx-polyline-resetstartpoint
描述:
重置多段线的起点位置和方向
调用格式:
(xdrx-polyline-resetstartpoint <多段线实体> <新起点> )
参数说明:
* <多段线实体>: 要处理的多段线实体(RTENAME)
* <新起点>: 新的起点坐标(RTPOINT/RT3DPOINT)
* : 可选,新的X轴方向向量(RT3DPOINT),默认为(1,0,0)
返回值:
T - 成功
nil - 失败
示例用法1:
(xdrx-polyline-resetstartpoint ent pt)
; 将ent的起点重置为pt,X轴方向保持默认
示例用法2:
(xdrx-polyline-resetstartpoint ent pt (list 0 1 0))
; 将ent的起点重置为pt,X轴方向设为Y轴
注意事项:
1. 仅支持轻量多段线(AcDbPolyline)
2. 保持多段线几何形状不变
3. 直接修改原多段线
4. X轴方向向量会自动归一化
5. 新起点必须在原多段线上
------------------------------------------------------------
151
函数名称: xdrx-polyline-segtype
描述:
获取多段线指定段的类型
调用格式:
(xdrx-polyline-segtype [多段线实体] <段索引>)
参数说明:
* [多段线实体]: 可选,要查询的多段线实体(RTENAME)
不提供时使用当前堆栈中的多段线
* <段索引>: 要查询的段索引(0-based)(RTSHORT)
返回值:
字符串 - 段类型("kLine"/"kArc"/"kCoincident"/"kPoint"/"Kempty")
nil - 失败
示例用法1:
(xdrx-polyline-segtype ent 2)
; 返回ent多段线第3段的类型
示例用法2:
(xdrx-polyline-segtype nil 0)
; 返回堆栈多段线第1段的类型
注意事项:
1. 仅支持轻量多段线(AcDbPolyline)
2. 段索引从0开始计数
3. 返回值说明:
"kLine" - 直线段
"kArc" - 圆弧段
"kCoincident" - 重合段
"kPoint" - 点段
"Kempty" - 空段
4. 不修改原多段线
5. 索引超出范围返回nil
------------------------------------------------------------
152
函数名称: xdrx-polyline-selfcrossingpoints
描述:
获取多段线的自相交点信息
调用格式:
(xdrx-polyline-selfcrossingpoints <曲线实体> [容差值])
参数说明:
* <曲线实体>: 要分析的曲线实体(RTENAME)
* [容差值]: 可选,判断相交的距离容差(RTREAL),默认使用系统容差
返回值:
成功时返回包含两个子列表的列表:
((交点1坐标 交点2坐标...)
((参数1a 参数1b) (参数2a 参数2b)...))
nil - 无自相交或失败
示例用法:
(xdrx-polyline-selfcrossingpoints ent 0.01)
; 返回ent多段线在0.01容差下的自相交信息
注意事项:
1. 支持各种曲线类型(多段线、样条曲线等)
2. 容差值越小判断越严格
3. 参数值对表示曲线在相交点的参数位置
4. 返回值可直接用于几何分析
5. 无自相交时返回nil
------------------------------------------------------------
153
函数名称: xdrx-polyline-selfintersects
描述:
检测多段线是否自相交并返回自相交的多段线
调用格式:
(xdrx-polyline-selfintersects <多段线实体或选择集>...)
参数说明:
* <多段线实体或选择集>: 一个或多个多段线实体(RTENAME)或选择集(RTPICKS)
返回值:
选择集 - 包含所有自相交的多段线
nil - 无自相交多段线
示例用法1:
(xdrx-polyline-selfintersects ent1 ent2)
; 检测ent1和ent2是否自相交
示例用法2:
(xdrx-polyline-selfintersects ss)
; 检测选择集ss中的所有多段线
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 2D多段线会临时转换为轻量多段线进行检测
3. 返回的选择集可直接用于后续操作
4. 无自相交多段线时返回nil
5. 选择集参数需预先创建
------------------------------------------------------------
154
函数名称: xdrx-polyline-setradius
描述:
设置多段线顶点处的圆弧半径(凸度)
调用格式:
(xdrx-polyline-setradius <多段线> <索引/点列表> <半径值> )
参数说明:
* <多段线>: 多段线实体(RTENAME)/选择集(RTPICKS)/复合曲线
* <索引/点列表>:
- 顶点索引(RTSHORT)或
- 点列表(RTPOINT,X=索引,Y=半径)
* <半径值>: 圆弧半径值(RTREAL)
* : 可选,返回修改后的顶点坐标和凸度
返回值:
无T参数时: T-成功,nil-失败
有T参数时: (顶点坐标列表 凸度列表)
示例用法1:
(xdrx-polyline-setradius ent 2 0.5)
; 设置ent第3个顶点凸度为0.5
示例用法2:
(xdrx-polyline-setradius ent (list 1 0.8 2 1.2) T)
; 批量设置顶点凸度并返回结果
注意事项:
1. 支持轻量多段线和复合曲线
2. 索引从0开始计数
3. 半径值转换为凸度公式: bulge = 2*H/L
4. 点列表格式: (索引1 半径1 索引2 半径2...)
5. 返回的顶点坐标为WCS坐标
------------------------------------------------------------
155
函数名称: xdrx-polyline-setbulgeat
描述:
设置多段线指定顶点处的凸度值
调用格式:
(xdrx-polyline-setbulgeat [多段线实体] <顶点索引> <凸度值>...)
参数说明:
* [多段线实体]: 可选,要处理的多段线实体(RTENAME)
不提供时使用当前堆栈中的多段线
* <顶点索引>: 要设置的顶点索引(0-based)(RTSHORT)
* <凸度值>: 要设置的凸度值(RTREAL)
可重复多组索引+凸度值
返回值:
T - 成功
nil - 失败
示例用法1:
(xdrx-polyline-setbulgeat ent 2 0.5)
; 设置ent第3个顶点凸度为0.5
示例用法2:
(xdrx-polyline-setbulgeat nil 1 0.3 3 0.7)
; 设置堆栈多段线第2个顶点凸度0.3,第4个顶点凸度0.7
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 顶点索引从0开始计数
3. 凸度值范围: -1到1
4. 正凸度表示顺时针圆弧,负凸度表示逆时针圆弧
5. 凸度绝对值越大,圆弧越陡
------------------------------------------------------------
156
函数名称: xdrx-polyline-setconstantwidth
描述:
设置多段线的全局固定宽度
调用格式:
(xdrx-polyline-setconstantwidth [多段线实体] <宽度值>)
参数说明:
* [多段线实体]: 可选,要处理的多段线实体(RTENAME)
不提供时使用当前堆栈中的多段线
* <宽度值>: 要设置的全局宽度(RTREAL/RTSHORT)
返回值:
T - 成功
nil - 失败
示例用法1:
(xdrx-polyline-setconstantwidth ent 0.5)
; 设置ent多段线全局宽度为0.5
示例用法2:
(xdrx-polyline-setconstantwidth nil 2)
; 设置堆栈多段线全局宽度为2
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 宽度值必须大于等于0
3. 设置后会覆盖所有段落的原有宽度
4. 与逐段设置宽度互斥
5. 宽度单位为当前图形单位
------------------------------------------------------------
157
函数名称: xdrx-polyline-setelevation
描述:
设置多段线的全局标高
调用格式:
(xdrx-polyline-setelevation [多段线实体] <标高值>)
参数说明:
* [多段线实体]: 可选,要处理的多段线实体(RTENAME)
不提供时使用当前堆栈中的多段线
* <标高值>: 要设置的标高值(RTREAL)
返回值:
T - 成功
nil - 失败
示例用法1:
(xdrx-polyline-setelevation ent 100.0)
; 设置ent多段线标高为100.0
示例用法2:
(xdrx-polyline-setelevation nil 50.5)
; 设置堆栈多段线标高为50.5
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 标高值相对于当前UCS的Z坐标
3. 设置后所有顶点将应用该标高
4. 与逐顶点Z坐标设置互斥
5. 标高单位为当前图形单位
------------------------------------------------------------
158
函数名称: xdrx-polyline-setnormal
描述:
设置多段线的法线向量
调用格式:
(xdrx-polyline-setnormal [多段线实体] <法线向量>)
参数说明:
* [多段线实体]: 可选,要处理的多段线实体(RTENAME)
不提供时使用当前堆栈中的多段线
* <法线向量>: 三维法线向量(RT3DPOINT)
返回值:
T - 成功
nil - 失败
示例用法1:
(xdrx-polyline-setnormal ent '(0 0 1))
; 设置ent多段线法线为Z轴方向
示例用法2:
(xdrx-polyline-setnormal nil '(0.707 0.707 0))
; 设置堆栈多段线法线为XY平面45度方向
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 法线向量会自动归一化为单位向量
3. 法线方向决定多段线的"正面"方向
4. 默认法线为(0,0,1)
5. 非法输入向量会被忽略
------------------------------------------------------------
159
函数名称: xdrx-polyline-setplinegen
描述:
设置多段线的线型生成模式
调用格式:
(xdrx-polyline-setplinegen [多段线实体] )
参数说明:
* [多段线实体]: 可选,要处理的多段线实体(RTENAME)
不提供时使用当前堆栈中的多段线
* : 可选,T表示启用线型生成,nil表示禁用
返回值:
T - 成功
nil - 失败
示例用法1:
(xdrx-polyline-setplinegen ent T)
; 启用ent多段线的线型生成
示例用法2:
(xdrx-polyline-setplinegen nil nil)
; 禁用堆栈多段线的线型生成
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 启用后线型将在顶点处连续生成
3. 禁用后线型将在每个线段单独生成
4. 默认状态为禁用
5. 仅影响虚线等非连续线型
------------------------------------------------------------
160
函数名称: xdrx-polyline-setpointat
描述:
设置多段线指定顶点的坐标
调用格式:
(xdrx-polyline-setpointat <多段线实体> <索引1> <坐标1> [<索引2> <坐标2>...])
参数说明:
* <多段线实体>: 要处理的多段线实体(RTENAME)
* <索引>: 顶点索引(0-based)(RTSHORT)
* <坐标>: 新坐标点(RTPOINT/RT3DPOINT)
返回值:
T - 成功
nil - 失败
示例用法1:
(xdrx-polyline-setpointat ent 1 '(10 20))
; 设置ent多段线第2个顶点坐标为(10,20)
示例用法2:
(xdrx-polyline-setpointat ent 0 '(0 0 0) 2 '(30 40))
; 设置第1个顶点为(0,0,0),第3个顶点为(30,40)
注意事项:
1. 支持轻量多段线(AcDbPolyline)、2D多段线(AcDb2dPolyline)和3D多段线(AcDb3dPolyline)
2. 顶点索引从0开始计数
3. 可一次设置多个顶点坐标
4. 坐标点可以是2D或3D
5. 索引必须与坐标成对出现
------------------------------------------------------------
161
函数名称: xdrx-polyline-setthickness
描述:
设置多段线的厚度(拉伸高度)
调用格式:
(xdrx-polyline-setthickness [多段线实体] <厚度值>)
参数说明:
* [多段线实体]: 可选,要处理的多段线实体(RTENAME)
不提供时使用当前堆栈中的多段线
* <厚度值>: 要设置的厚度值(RTREAL)
返回值:
T - 成功
nil - 失败
示例用法1:
(xdrx-polyline-setthickness ent 10.0)
; 设置ent多段线厚度为10.0
示例用法2:
(xdrx-polyline-setthickness nil 5.5)
; 设置堆栈多段线厚度为5.5
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 厚度值沿法线方向拉伸
3. 正厚度沿法线正方向拉伸
4. 负厚度沿法线反方向拉伸
5. 厚度单位为当前图形单位
------------------------------------------------------------
162
函数名称: xdrx-polyline-setwidthsat
描述:
设置多段线指定段的起点和终点宽度
调用格式:
(xdrx-polyline-setwidthsat [多段线实体] <段索引> <起点宽度> <终点宽度>)
参数说明:
* [多段线实体]: 可选,要处理的多段线实体(RTENAME)
不提供时使用当前堆栈中的多段线
* <段索引>: 要设置的段索引(0-based)(RTSHORT)
* <起点宽度>: 段起点宽度(RTREAL/RTSHORT)
* <终点宽度>: 段终点宽度(RTREAL/RTSHORT)
返回值:
T - 成功
nil - 失败
示例用法1:
(xdrx-polyline-setwidthsat ent 1 0.5 1.0)
; 设置ent多段线第2段的起点宽度0.5,终点宽度1.0
示例用法2:
(xdrx-polyline-setwidthsat nil 0 2 2)
; 设置堆栈多段线第1段的起点和终点宽度均为2
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 段索引从0开始计数
3. 宽度值必须大于等于0
4. 与全局宽度设置互斥
5. 宽度单位为当前图形单位
------------------------------------------------------------
163
函数名称: xdrx-polyline-simplify
描述:
使用多种算法简化多段线
调用格式:
(xdrx-polyline-simplify [实体/选择集/点集] [算法] [容差] [角度阈值] [面积阈值])
参数说明:
* [实体/选择集/点集]:
- 多段线实体(RTENAME)
- 选择集(RTPICKS)
- 点集(RT3DPOINT/RTPOINT)
* : 可选,nil禁用权重计算(默认启用)
* [算法]: 可选算法类型(RTSHORT):
- 0: Visvalingam-Whyatt(默认)
- 1: Douglas-Peucker
- 2: Reumann-Witkam
- 3: Opheim
- 4: Lang
* [容差]: 可选简化容差(RTREAL,默认0.1)
* [角度阈值]: 可选角度容差(RTREAL,默认2.0度)
* [面积阈值]: 可选三角形面积阈值(RTREAL,默认1.0)
返回值:
简化后的顶点列表或(原始顶点数 简化后顶点数)
示例用法1:
(xdrx-polyline-simplify ent)
; 使用VW算法简化ent多段线
示例用法2:
(xdrx-polyline-simplify ss nil 1 0.5)
; 禁用权重并使用DP算法(容差0.5)简化选择集中的多段线
注意事项:
1. VW算法基于三角形面积,适合保留特征点
2. DP算法基于垂直距离,适合几何简化
3. RW算法基于平行区域,适合保持走向
4. 角度阈值控制特征点保留程度
5. 自动闭合首尾重合的点集
------------------------------------------------------------
164
函数名称: xdrx-polyline-thickness
描述:
获取多段线的厚度(拉伸高度)
调用格式:
(xdrx-polyline-thickness [多段线实体])
参数说明:
* [多段线实体]: 可选,要查询的多段线实体(RTENAME)
不提供时使用当前堆栈中的多段线
返回值:
实数 - 多段线的厚度值
nil - 失败
示例用法1:
(xdrx-polyline-thickness ent)
; 获取ent多段线的厚度
示例用法2:
(xdrx-polyline-thickness)
; 获取堆栈多段线的厚度
注意事项:
1. 支持轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 厚度值表示沿法线方向的拉伸高度
3. 返回值为正表示沿法线正方向拉伸
4. 返回值为负表示沿法线反方向拉伸
5. 默认厚度为0(无拉伸)
------------------------------------------------------------
165
函数名称: xdrx-polyline-winding
描述:
计算闭合多段线的环绕方向
调用格式:
(xdrx-polyline-winding <多段线实体>)
参数说明:
* <多段线实体>: 闭合的多段线实体(RTENAME)
返回值:
1 - 逆时针方向
-1 - 顺时针方向
nil - 失败(非闭合多段线或无效实体)
示例用法1:
(xdrx-polyline-winding ent)
; 获取ent多段线的环绕方向
注意事项:
1. 仅支持闭合的轻量多段线(AcDbPolyline)和2D多段线(AcDb2dPolyline)
2. 环绕数反映多段线顶点的排列顺序
3. 逆时针方向通常表示外轮廓
4. 顺时针方向通常表示内轮廓(孔洞)
5. 对非闭合多段线返回nil
------------------------------------------------------------
166
函数名称: xdrx-polyline-windnumber
描述:
计算曲线/多段线的环绕数
调用格式:
(xdrx-polyline-windnumber <曲线实体>)
参数说明:
* <曲线实体>: 要计算的曲线实体(RTENAME)
返回值:
整数 - 环绕数值(0表示不环绕,正负表示环绕方向和次数)
nil - 失败
示例用法1:
(xdrx-polyline-windnumber ent)
; 计算ent曲线的环绕数
注意事项:
1. 支持所有曲线类型(包括多段线、圆弧等)
2. 环绕数表示曲线围绕某点的次数
3. 正值表示逆时针方向环绕
4. 负值表示顺时针方向环绕
5. 0表示不形成完整环绕
------------------------------------------------------------
页:
[1]