垂直点和中间点
你好,我发现了以下代码:
(定义c:ppav()
(vl load com)
(setq*模型空间*(vla get modelspace(vla get activedocument(vlax get acad object)))
(setq obj(vlax ename->vla对象(car(entsel)))
(setq c(vlax get obj“坐标”)i 0)
(重复(/(长度c)2)
(setq x(第n i c)y(第n(1+i)c))
(vla添加点*模型空间*(vlax-3d-point(列表x y 0.0)))
(setq i(+i 2))
(setq temp(osnap(列表x y)“mid”);我加了这个
(命令“点”温度);还有这个
)
(普林斯)
)
并添加了两条线,以尝试在多线线段的中点上设置点。。。。但它并没有按预期工作。在错误的线段上设置了一些中点,并设置了一个额外的点。
有人能帮忙吗?
谢谢
射线 相反,考虑在*线的对象/名称上使用vlax曲线*函数。
例如,我认为您会发现vlax curve getDistAtParam和vlax curve getParamAtDist函数很有用。 首先,热烈欢迎凯德·雷
我建议使用vlax curve getpointatparam函数,因为LWPolyline的顶点具有整数参数,因此可以在参数的一半值处找到中点。
下面是一些快速编写的代码:
(defun c:test ( / e i p s ) (vl-load-com)
(if (setq s (ssget '((0 . "LWPOLYLINE"))))
(repeat (setq i (sslength s))
(repeat (1+ (fix (* 2 (vlax-curve-getendparam (setq p -0.5 e (ssname s (setq i (1- i))))))))
(entmakex (list (cons 0 "POINT") (cons 10 (vlax-curve-getpointatparam e (setq p (+ p 0.5))))))
)
)
)
(princ)
) 谢谢大家!
这正是我们所需要的!
顺致敬意,
射线
页:
[1]