浮上水面,发个定数和定距等分浓缩版 - ;;;曲线断开程序;;;绝情一剑,2004.2.8(defun c:dk (/ ss int getdst obj getdiv ssnm pt i getds)
- (setq ss (ssget '((0 . "LINE,POLYLINE,LWPOLYLINE,SPLINE,ARC"))) i 0)
- (initget (+ 1 2 4))
- (setq int (getint "\n定数等分<直接输入等分数>/定距等分<按键盘数字1>:"))
- (if (= int 1)(setq getdst (getdist "\n***输入要等分的距离<可直接量取>***:")))
- (repeat (sslength ss)
- (setq obj (vlax-ename->vla-object(setq ssnm (ssname ss i))))
- (cond
- ((= int 1) (setq getdiv getdst)(setq int (+(fix(/ (vlax-curve-getdistatparam obj (vlax-curve-getendparam obj)) getdst))1)))
- (t (setq getdiv (/(vlax-curve-getdistatparam obj (vlax-curve-getendparam obj))int)))
- )
- (repeat (- int 1)
- (setq getds (vlax-curve-getdistatparam obj (vlax-curve-getendparam obj)))
- (vl-cmdf ".break" ssnm (setq pt (vlax-curve-getPointAtDist obj (- getds getdiv))) pt)
- )
- (setq i (+ i 1))
- )(princ)
- )
|