vlax曲线ge的问题
大家好:我对vlax curve getClosestPointTo函数和线有问题,该函数似乎与实体(线)的起点一起工作,如果我希望最近的点更接近实体(线)的端点,我是否必须反转实体(线)的起点和端点才能获得此结果?
谢谢你的帮助!
安得烈 安德鲁,
我不确定我是否理解你的困境;从您的帖子中可以看出,您正在描述一种情况,即从给定点到直线起点的距离等于从该点到直线端点的距离,并且起点和终点都被认为是最近的点,但您希望返回端点。
然而,这种距离不能同时相等,也不能被视为距离直线最近的点,因为这种构造将形成一个等腰三角形,其中最近的点将垂直于直线中点到给定点。
如果您指的是最近点位于直线长度沿线且不是端点之一的情况,则最近点始终是唯一的,并且从给定点垂直于直线方向。
你能提供一张图片来描述你的问题吗? 一种解决方法是“请在靠近终点的地方选线”或“请在线的左侧选线”,这样你就意味着找到靠近这一点的终点,用以表示方向,或者哪个在里面或外面。左=外
如果将捕捉设置为“中间”,则两端都是正确的。
你陈述的这一部分确实解决了我的问题:
有一些例程可以一行一行地完成这项工作,但我想在全球范围内做到数百行。
drawMinDistanceLine。Lsp是一个由这个站点的一个家伙编写的例程,但是,它会一行一行地完成。我希望在全球范围内完成。
我试着通过比较每条线的起点和终点来遍历每条线,以找到线之间的最小最短线,但是所有线都连接到线的一端,有些线根本没有连接。
安得烈
DrawMindDistanceline。LSP
大家好,比格尔和大家:
谢谢你的建议,不过,我想全局或自动选择行实体。我将如何自动选择每条线的起点、终点或中点,以及顺序如何?
安得烈 快速查看不确定您实际在做什么,但您可以使用entsel为第二行选择第一行和第二行。如果您将其设置为ssget,则可以选择任意数量的行,并使用层等过滤器进行比较。
有两个建议可以使您的defun DDL更容易键入和使用INTERS在lisp帮助中查找,因为名称意味着两行的相交。有关更高级的信息,请参阅Vl intersectwith。
(setq pt5 (Inters pt1 pt2 pt3 pt4))
Vl-intersectwith allows for objects so no need to work out end points
(setq obj1 (vlax-ename->vla-object (car (entsel))))
(setq obj2 (vlax-ename->vla-object (car (entsel))))
(setq intpt2 (vlax-invoke obj2 'intersectWith obj1 acExtendThisEntity))
pick order counts here but inters does not
页:
[1]