这是我应新朋友的要求所做的回答。请求如下:http://cadtutor.net/forum/viewtopic.php?t=1145但我认为发布Lisp例程的正确位置是AutoLisp部分。
- ; draw a helical ramp
- ; [email="mfuccaro@hotmail.com"]mfuccaro@hotmail.com[/email]
- ; february 2004
- ;
- (defun c:ramp(/ cen r1 r2 seg ang hgh ceh a1)
- (setq cen (getpoint "\ncenter point ")
- r1 (getdist cen "\n inner radius ")
- r2 (getdist cen "\n outer radius ")
- seg (getint "\nsegments (max. 255) ")
- ang (/ (* 2 PI) seg)
- hgh (getdist "height (after 1 turn)? ")
- ceh cen a1 0)
- (setq old (getvar "osmode"))
- (setvar "osmode" 0)
- (command "3dmesh" (1+ seg) 4)
- (repeat (1+ seg)
- (command (polar cen a1 r1)
- (polar ceh a1 r1)
- (polar ceh a1 r2)
- (polar cen a1 r2))
- (setq a1 (+ a1 ang)
- ceh (list (car cen) (cadr cen) (+ (caddr ceh) (/ hgh seg))))
- )
- (setvar "osmode" old)
- )
-
|