andrew777 发表于 2022-7-6 07:30:06

vlax曲线ge的问题

大家好:
 
我对vlax curve getClosestPointTo函数和线有问题,该函数似乎与实体(线)的起点一起工作,如果我希望最近的点更接近实体(线)的端点,我是否必须反转实体(线)的起点和端点才能获得此结果?
 
谢谢你的帮助!
 
安得烈

Lee Mac 发表于 2022-7-6 07:54:04

安德鲁,
 
我不确定我是否理解你的困境;从您的帖子中可以看出,您正在描述一种情况,即从给定点到直线起点的距离等于从该点到直线端点的距离,并且起点和终点都被认为是最近的点,但您希望返回端点。
 
然而,这种距离不能同时相等,也不能被视为距离直线最近的点,因为这种构造将形成一个等腰三角形,其中最近的点将垂直于直线中点到给定点。
 
如果您指的是最近点位于直线长度沿线且不是端点之一的情况,则最近点始终是唯一的,并且从给定点垂直于直线方向。
 
你能提供一张图片来描述你的问题吗?

BIGAL 发表于 2022-7-6 07:58:56

一种解决方法是“请在靠近终点的地方选线”或“请在线的左侧选线”,这样你就意味着找到靠近这一点的终点,用以表示方向,或者哪个在里面或外面。左=外
 
如果将捕捉设置为“中间”,则两端都是正确的。

andrew777 发表于 2022-7-6 08:16:14

 
你陈述的这一部分确实解决了我的问题:
 
有一些例程可以一行一行地完成这项工作,但我想在全球范围内做到数百行。
 
drawMinDistanceLine。Lsp是一个由这个站点的一个家伙编写的例程,但是,它会一行一行地完成。我希望在全球范围内完成。
 
我试着通过比较每条线的起点和终点来遍历每条线,以找到线之间的最小最短线,但是所有线都连接到线的一端,有些线根本没有连接。
 
 
 
安得烈
DrawMindDistanceline。LSP

andrew777 发表于 2022-7-6 08:20:46

 
大家好,比格尔和大家:
 
谢谢你的建议,不过,我想全局或自动选择行实体。我将如何自动选择每条线的起点、终点或中点,以及顺序如何?
 
安得烈

BIGAL 发表于 2022-7-6 08:33:36

快速查看不确定您实际在做什么,但您可以使用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]
查看完整版本: vlax曲线ge的问题