最初由 qyang2001 发布
[B]:5
如何用Lisp程序计算支线Line与曲线(二次样条或PLINE拟合曲线)三交点,请诸位高手提供帮助! [/B]
推荐你使用XDRX_API
 - [font=courier new]
- 86. xdrx_getinters
- 功能:1.求两个AcDbCurve(曲线)实体的交点.
- 2.求一个AcDbCurve(曲线)实体和一个选择集中所有AcDbCurve(曲线)的交点。
- 3.求一个选择集中所有AcDbCurve(曲线)实体的交点.
- 4.求一个选择集SS1中的所有AcDbCurve实体和另个选择集SS2所有AcDbCurve实体的交点。
-
- 调用格式: 1. (xdrx_getinters <实体图元1> <实体图元2> [扩展方式])
- 2. (xdrx_getinters <实体图元名> <选择集> [扩展方式])
- 2. (xdrx_getinters <选择集> [扩展方式])
- 3. (xdrx_getinters <选择集1> <选择集2> [扩展方式])
- 4. (xdrx_getinters (<pt1>...<ptn>) <曲线实体名> [扩展方式])
- 5. (xdrx_getinters (<pt1>...<ptn>) <选择集> [扩展方式])
- 6. (xdrx_getinters (<pt1>...<ptn>) (<pt1>...<ptn>) [扩展方式])
- 说明:1.程序能求AcDbCurve(包括:AcDbLine、AcDbArc、AcDbCircle、AcDbEllipse、AcDbSpline、
- AcDbPolyline(lwpolyline)交点。
- 2.参数[扩展方式]:
- 对于1种情况:
- 0:不延伸实体
- 1:延伸第一个实体
- 2:延伸第二个实体
- 3: 两个都延伸
- 对于第二、三、四种情况(选择集):
- 0: 不延伸实体
- 1: 两个都延伸
- 示例: 1. 求天正建筑软件轴线层上,所有轴线的交点
- (if (setq ss (ssget "x" (list (cons 8 (xdrx_getlyrname "轴线")) '((0 . "line")))))
- (progn
- (setq intl (xdrx_getinters ss))
- )
- )
-
- 2. 点取一根轴线,然后求出与这个轴线相交的所有轴线交点。
- (setq lyr (xdrx_getlyrname "轴线"))
- (if (setq en (xdrx_entsel "\n请点取一个轴线<退出>:" (list (cons 8 lyr) '(0 . "line"))))
- (progn
- (xdrx_setentodb)
- (setq p1 (xdrx_getentdxf 10)
- p2 (xdrx_getentdxf 11)
- ss (ssget "f" p1 p2 (list (cons 8 lyr) '(0 . "line")))
- )
- (if (setq intl (xdrx_getinters (car en) ss))
- (progn
- .....;;intl中为交点表
- )
- )
- )
- )
- [/font]
|