这只是M1型的开始。
- (defun c:Test (/ 1p 2p d ang 3p 4p 5p 6p 7p 8p 9p 10p 11p)
- (if
- (and (setq 1p (getpoint "\n Specify first point :"))
- (setq 2p (getpoint "\n Second point :" 1p))
- (if (<= (setq d (distance 1p 2p)) 5.)
- (progn
- (alert
- "Distance between points must be longer than 5.0 units "
- )
- nil
- )
- t
- )
- )
- (progn
- (setq 3p (polar 1p (+ (setq ang (angle 1p 2p)) (* pi 0.5)) 4.5)
- 4p (polar 3p (+ ang (* pi 1.5)) 9.)
- 5p (polar 4p ang 5.)
- 6p (polar 5p (+ ang (* pi 0.5)) 9.)
- 7p (polar 5p (angle 5p 6p) 1.75)
- 8p (polar 7p ang (- d 5.))
- 9p (polar 8p (angle 5p 6p) 5.5)
- 10p (polar 9p (+ ang pi) (- d 5.))
- )
- (command "_.pline" "_non" 3p "_w" 0. 0. "_non" 4p "_non" 5p
- "_non" 6p "_c")
- (command "_.pline" "_non" 7p "_non" 8p "_non" 9p "_non" 10p "_c")
- )
- )
- (princ)
- )
|