〖说明〗
本例程能够根据给定的直径、齿数和角度绘制齿轮轮廓线。绘成 的轮廓是连续的polyline,能方便地进行三维延伸等处理。不过其中曲线生成采用的数据是根据美国机械行业标准,用的时候可能要根据自己的需要修改。
〖安装〗
将"程序代码"一节的文本裁剪下来,保存成名为"SUPRGEAR.LSP"的 文本文件;将这个文件拷贝到AutoCAD的系统目录中。
〖使用〗
在AutoCAD命令行键入:(load "suprgear")
然后执行:SG,按程序中的提示操作即可。
〖程序代码〗
;;;begain suprgear.lsp
;*************************************************
;SPURGEAR.LSP - a lisp program by Tony Hotchkiss
;-------------------------------------------------
; This routine draws a spur gear using joined
; polylines. It lets you use any pressure angle
; to design the gear teeth.
;*************************************************
(defun err (s)
(if (= s "Function cancelled")
(princ "\nSPURGEAR - cancelled: ")
(progn (princ "\nSPURGEAR - Error: ") (princ s)
(terpri))
); if
(resetting)
(princ "SYSTEM VARIABLES have been reset\n")
(princ)
); err
(defun setv (systvar newval)
(setq x (read (strcat systvar "1")))
(set x (getvar systvar))
(setvar systvar newval)
); setv
(defun setting ()
(setq oerr *error*)
(setq *error* err)
(setv "CMDECHO" 0)
(setv "BLIPMODE" 0)
); end of setting
(defun rsetv (systvar)
(setq x (read (strcat systvar "1")))
(setvar systvar (eval x))
); restv
(defun resetting ()
(rsetv "CMDECHO")
(rsetv "BLIPMODE")
(setq *error* oerr)
); end of resetting
(defun dxf (code ename)
(cdr (assoc code (entget ename)))
); dxf
(defun spurgear (/ D N phi DO RO A B DR DB inv-plst p1
trimcode invent p0 p curvent linent linent2 ent2 p2)
(setq D (getreal "\nPitch diameter: ")
N (getint "\nNumber of teeth: ")
phi (getreal "\nPressure angle: ")
phi (* (/ phi 180) pi) ; Pressure angle
DO (* D (+ (/ 2.0 N) 1.0)); Outside diameter
RO (/ DO 2.0) ; Outside radius
A (/ D N) ; Addendum
B (* 1.25 A) ; Dedendum
DR (- D (* B 2.0)) ; Root diameter
用Pline绘制齿轮