试试这个
- ; converts an arc to a series of straights
- (vl-load-com)
- (setq oldsnap (getvar "osmode"))
- (setvar "osmode" 0)
- (setq oldecho (getvar "cmdecho"))
- (setvar "cmdecho" 0)
- (while (setq ent (entsel "\nPick arc: "))
- (setq obj (vlax-ename->vla-object (car ent)))
- (if (= div nil) (setq div (getint "\nEnter number of chords: ")))
-
- (setq endpt (vlax-curve-getEndPoint obj)
- totlen (vlax-curve-getDistAtPoint obj endpt)
- arclen (/ totlen div)
- chrdpt (vlax-curve-getStartPoint obj)
- num 1
- )
- (repeat div
- (setq newpt (vlax-curve-getPointatDist obj (* arclen num)))
- (command "line" chrdpt newpt "")
- (setq num (+ num 1))
- (setq chrdpt newpt)
- ) ;repeat
- (setq objlst (cons obj objlst))
- ) ; end while
- ;(vlax-for objdel objlst (vlax-delete objdel))
- (setvar "cmdecho" oldecho)
- (setvar "osmode" oldsnap)
- (princ)
|