Osnap函数问题
我有一个关于如何在autocad中使用osnap函数的快速问题。我有一个来自ssget的选择集(它在变量ss1下)和一个我已经有的pt。我的问题是如何使用osnap函数查找set My perppt。我知道我的错误与cadr函数有关(我把它放进去是因为当我将entsel与osnap一起使用时,我就是这样使用osnap的)。我的代码是(setq obj (ssname ss1 0))
(setvar "lastpoint" pt1)
(setq pt2(osnap (cadr obj) "_Per")) 没有关系。删除 如果ss1是一个选择集,则obj是该选择集中的第一个实体,(类型obj)=ENAME
ENAME上没有(cadr)。
(osnap)函数的第二个参数需要一个列表(点)。 请原谅我的无知,如果cadr不能像在entsel上那样工作,那么我如何从选择集对象中提取列表? 如果使用,您是否尝试绘制从pt到对象的perp线
(setq pt2 (vlax-curve-getClosestPointTo (vlax-ename->vla-object obj) pt1))) 我试过使用它,但当我有不同的z坐标时,它会返回奇怪的点(我希望有一种方法可以使用该函数并声明它必须仅使用x和y坐标来找到最近的点)。
vlax curve GetClosestPointTopProjection可能就是您想要的函数-下面是对差异的解释。 李,这正是我想要的函数。当我再看一下文档时,我知道我需要指定法线平面,但我不确定如何准确地做到这一点。目前我有(setq pt2 (vlax-curve-getClosestPointtoProjection ent2 pt1 '(0.0 0.0 1.0))) 至少在语法上,您的代码看起来是正确的。 谢谢你的帮助!我在代码的另一部分中发现了这个错误,该部分去掉了投影部分。
页:
[1]