你好
我在使用以下代码查找两条LWpolyline之间的交点时遇到问题:
- (vl-load-com)
- (defun c:intersect (/ curve1-ename curve2-ename curve1-obj curve2-obj c d)
- (setq curve1-ename (car (entsel "\nSelect first curve")))
- (setq curve2-ename (car (entsel "\nSelect second curve")))
- (setq curve1-obj (vlax-ename->vla-object curve1-ename))
- (setq curve2-obj (vlax-ename->vla-object curve2-ename))
- (setq c
- (vlax-variant-value
- (vlax-invoke-method
- curve1-obj
- "IntersectWith"
- curve2-obj
- acExtendnone
- )
- )
- )
- (setq d
- (vl-catch-all-apply
- 'vlax-safearray->list
- (list c)
- )
- )
-
- (entmakex (list (cons 0 "POINT")
- (cons 8 "00-CONSTR7")
- (cons 10 (list (car d) (cadr d)))
- )
- )
- (princ)
- )
我所有的LWpolyline的高程都为0,所以这不是问题所在。在所附文件中,您将看到蓝色修订云中的小多段线,该多段线显然与图层“AXE-REF-PK”上的白色多段线不相交(但它们显然相交;错误类型为:“ActiveX服务器返回了一个错误:生成了无效索引”)。这条多段线有1900多个顶点,因此可能存在尺寸限制。我在上面画了完全相同的情况,但有一半顶点的多边形。这一次,程序每次都会找到一个交点。使用intersectwith方法确实有很多东西我没有得到
有没有人遇到过类似的问题?
当做
雅克
与方法问题相交。图纸 |