blueshake 发表于 2022-7-6 09:55:07

相交点

大家好
我知道我们可以使用函数“inters”到交点。
但对于曲线(圆弧样条曲线)和直线。
我们怎样才能得到它们的交点。谢谢你抽出时间。

pBe 发表于 2022-7-6 10:01:30


(setq dd (vlax-ename->vla-object (car (entsel)))
   ss (vlax-ename->vla-object (car (entsel))))

(vlax-safearray->list(vlax-variant-value(vla-intersectwith dd ssacExtendNone)))

 
 
 

blueshake 发表于 2022-7-6 10:06:57

谢谢你的回复。
但我遇到了另一个问题。
请参见下图。
当我得到交点(A)时,如果我想画黄色部分。用于线路。我只需要使用“Line”命令
这很容易做到。但对于曲线(圆弧样条),这相当困难。有什么想法吗??

pBe 发表于 2022-7-6 10:09:47

好啊
 
只是我的眼睛还是没有照片?

ccowgill 发表于 2022-7-6 10:15:58

我看到一张照片,
我不完全理解这个问题,但是打开edgemode并扩展这两个对象难道不可能吗?或者,您希望“扩展”部分为黄色和虚线,而不是白色和实心?

blueshake 发表于 2022-7-6 10:18:47

我在此附上一份文件。
白色部分是两个物体。我想画黄色的部分。请看附件。曲线图纸

blueshake 发表于 2022-7-6 10:25:46

最复杂的部分是如何绘制黄色曲线(这是白色对象的延伸部分,但我希望它们是两个对象)

ccowgill 发表于 2022-7-6 10:31:54

黄曲线psuedo代码,我不确定代码是否正确,我是一个喜欢钓鱼的人,但我会采取以下步骤:

get white arc center point
get intersection of white arc and white line
get white arc bottom end point or end point nearest the intersection
draw arc using center to start then begin point and end point

GP_ 发表于 2022-7-6 10:36:28

(setq dd (vlax-ename->vla-object (car (entsel)))
   ss (vlax-ename->vla-object (car (entsel))))

(vlax-safearray->list(vlax-variant-value(vla-intersectwith dd ss acExtendBoth)))


 
 
 
exextendoption:让它只找到实际的交点,或者对象扩展的交点。从ActiveX/VBA参考:
 
acExtendNone-不扩展任何一个对象。
acExtendThisEntity-扩展基础对象。
acExtendOtherEntity-扩展作为参数传递的对象。
acExtendBoth-扩展两个对象

blueshake 发表于 2022-7-6 10:39:30

@ccowgill公司
 
首先感谢你的帮助。
圆弧只是曲线的一个样本。它(曲线)可能是样条或其他东西。
希望有人能解决这个问题。
页: [1] 2
查看完整版本: 相交点