我认为编程上的替代方法是用适当的defame解析样条线实体,并用多段线跟踪它。不知道如何确定诽谤的大小。 耶!李当然可以工作。但结果差距很小。我附上一张图给你看。
谢谢
样条曲线。拉链
(defun tracecurve ( obj di / cycle st )
(defun cycle ( st stp seg l )
(cond
( (< (+ st seg) stp )
(cycle (+ seg st) stp seg
(cons (vlax-curve-getPointAtParam obj st) l)
)
)
( t
(and (< st stp)
(setq l
(cons (vlax-curve-getPointAtParam obj st) l)
)
)
(reverse
(cons (vlax-curve-getPointAtParam obj stp) l)
)
)
)
)
(if
(and (not (minusp di))(not (zerop di))
(vl-position
(vla-get-objectname
(cond
( (eq 'ENAME (type obj))(vlax-ename->vla-object obj ))
( obj )
)
) '("AcDbCircle" "AcDbArc" "AcDbEllipse" "AcDbSpline")
)
)
(cycle
(setq st (vlax-curve-getStartParam obj))
(vlax-curve-getEndParam obj)
(- (vlax-curve-getParamAtDist obj 0.125) st)
nil
)
)
)
修改李的建议,虽然我不知道为什么他的方式不适合你。
5 @kwwong6和Dan少尉的腿:你们是说Lee的代码在你们的AutoCAD 2007上运行吗?!?
可以,在AutoCAD 2007上运行没有问题。只是有一个小差距,因为我上传后12附图。
非常感谢丹中尉的腿。你的代码真的有效!!!!!但是如果选择多条样条线,你能修改你的代码吗?
MSasu,
我在上一篇文章中提到了第4篇文章,这个解决方案不涉及PEDIT的使用
Kwong,
使用此方法永远无法获得精确的边界框,因为此方法近似于具有离散点数的连续曲线;要获得真正的精度,需要无穷多的点。当然,您可以通过增加近似中的点数来提高精度,但会严重损失性能。 那是我的错误。很抱歉给您带来不便! 谢谢李提供的信息。但是丹中尉的腿做的代码对我来说真的很好用。有谁能把这个代码做成多选样条?
提前谢谢。
页:
1
[2]