本帖最后由 sen.sam 于 2013-1-13 16:26 编辑
论坛上的一段代码,对整个多段线进行分段。对于复杂的多段线,想要精确点速度快点就判断出多段线上的圆弧,只对圆弧进行分段,直线段不分段。不过对于你所提的比较特定的情况应该是够用的。
 - (defun sele_in (line_ent / end i lineobj num plst start)
- (vl-load-com)
- (setq lineObj (vlax-ename->vla-object line_ent)
- start (vlax-curve-getStartParam lineObj)
- end (vlax-curve-getEndParam lineObj)
- i 0
- )
- (while (< i (setq num 100))
- (setq plst (append
- plst
- (list (vlax-curve-getPointAtParam lineObj (* i (/
- (- end
- start
- ) num
- )
- )
- )
- )
- )
- i (1+ i)
- )
- )
- (ssget "WP" plst '((-4 . "<OR")(0 . "CIRCLE")(0 . "LWPOLYLINE")(-4 . "OR>")))
- )
|