查找三维线的交点
大家好,我想找到以下3D线之间的交点
第1行:(5.0,5.0,8.0)(10.0,10.0,5.0)
第2行:(5.0,5.0,4.0)(10.0,10.0,6.0)
请任何人告诉我如何找到这些线之间的交点(3D)。
当做
库马尔。 (setq l1 (entmakex '((0 . "LINE") (10 5.0 5.0 8.0) (11 10.0 10.0 5.0)))
l2 (entmakex '((0 . "LINE") (10 5.0 5.0 4.0) (11 10.0 10.0 6.0)))
)
(vlax-invoke
(vlax-ename->vla-object l1)
'IntersectWith
(vlax-ename->vla-object l2)
acExtendBoth ;or acExtendNone
) 另一种方式:
(setq p1 '(5.0 5.0 8.0)
p2 '(10.0 10.0 5.0)
p3 '(5.0 5.0 4.0)
p4 '(10.0 10.0 6.0)
)
(setq intpoint (inters p1 p2 p3 p4 nil))
亨里克 谢谢你的回复。
我认为这些函数只适用于2D,在这里也适用于3D线条很好。 不客气,吉斯库马尔
亨里克 还有一点,Inters是原始的或普通的jane lisp交叉命令,intesectwith是较新的Vl版本,我将从Vl版本开始,intersectwith有4个选项,可以作为交叉点测试的一部分,Inters有1个true或false。Intesectwith可以计算交点,即使直线不相交,也可以计算新pt。 检查这个
我相信你会从这个网站上学到东西
http://www.lee-mac.com/intersectionfunctions.html 这可能有点不成文,但在键入时可以节省时间。您可以用0 1 2 3替换相交模式
所有枚举的计算结果要么是整数,要么是其他常数数据类型——因此得名;受保护符号仅用于赋予其他“幻数”一些含义,例如(eval acbylayer)=256。
我强烈反对您建议的“省时器”,因为它将使代码无法阅读,并完全违背枚举符号的自文档目的。
页:
[1]