Hudson 发表于 2022-7-6 12:19:20

树桩-直线和圆-Poss

好吧,最让我困惑的是:
 
我有一个圆和一条线。它们可能相交,这很容易处理,但它们可能不相交。。如果没有,我想找到直线上离圆最近的点。
 
任何帮助都将不胜感激,谢谢!

SteveK 发表于 2022-7-6 12:28:32

至少你被有趣的事情困住了
 
我可以帮你一点忙。如果两个物体相交,这将告诉你坐标(如果你想解释,请告诉我):
(defun c:ints (/ obj1 obj2)

(setq obj1 (vlax-ename->vla-object (car(entsel)))
   obj2 (vlax-ename->vla-object (car(entsel))))

(if (setq int (vlax-invoke obj1 'intersectWith obj2 acExtendNone))
   (princ int)
   (princ "Not Intersecting."))

(princ)
)
 
要获得两者之间的最近点,请查看vlax curve GetClosestPoint,它将为您提供点和对象(无论是直线还是圆)之间的最近点。我在某处见过它在两个物体之间使用,但我不记得了。对不起,我相信其他人会的。

Hudson 发表于 2022-7-6 12:33:29

 
是的,有趣要好得多。。那个entmake崩溃仍然困扰着我。
 
无论如何。。这应该能解决我的问题。。我在用不同的vla方法编写工作逻辑时遇到了困难。这应该能让我达到目的。

SteveK 发表于 2022-7-6 12:35:42

好啊
 
如果你最终得到了一个计算一个物体上相对于另一个物体最近点的函数,你能发布它吗?我可能会在赛道上找到它的用途。

devitg 发表于 2022-7-6 12:44:22

 
就这么做吧,Lisp程序
 
选择直线和圆。
 
获取圆心到obj线的最近点,
 

(vl-load-com)
(setq line (Car (entsel "LINE")))
(setq line-obj (vlax-ename->vla-object line))

(setq circle (car (entsel "circle")))

(setq circle-center (code 10 circle))

(setq line-point ( vlax-curve-getclosestpointto line-obj circle-center))

(setvar 'osmode 0)

(command "_line" circle-center line-point"")

Hudson 发表于 2022-7-6 12:45:07

谢谢你们!
 
我现在开始讨论下一个问题

devitg 发表于 2022-7-6 12:54:21

我们正在等待。

alanjt 发表于 2022-7-6 12:54:46

今天早上我等妻子醒来很无聊,所以我决定把这件事放在一起。我没有机会早点把它贴出来,因为我们在她的学校做一个巨大的艺术项目,我们不得不捡起一堆废铁。
 
我有点忘乎所以,但很享受。
 
 
哦,是的,你需要我的AT:Entsel函数:http://www.cadtutor.net/forum/showpost.php?p=271389&postcount=26

Randolph 发表于 2022-7-6 13:03:12

Eeasy with geometry:
 
一条线L经过一个圆C。
 
制作一条帮助线H(点1:捕捉到圆心。点2:垂直于线L捕捉)。点2是L上离圆最近的点。

Hudson 发表于 2022-7-6 13:08:39

伦道夫,你是对的,这是一个简单的几何问题。。然而,我已经让它工作得很好,所有的代码。我试着让事情自动化
页: [1] 2
查看完整版本: 树桩-直线和圆-Poss