您现在的位置:首页 > >

齿轮轮齿渐开线

发布时间:

齿轮轮齿渐开线、螺栓、弹簧的 autolsp 源程序
http://www.68jd.com 2008-11-18 9:58:06 机电商务网 字体【大 中 小】

一、齿轮轮齿渐开渐开线

(defun c:gear(/) ( setq p0 (getpoint"输入齿轮中心 p0: ") m (getreal"输入齿轮模数 M: ") z (getint"输入齿轮齿数 Z: ") ha 1 c 0.25 a (/ pi 9) ra(/ (* (+ z (+ ha ha)) m) 2) rf(/ (* (- z (+ (+ ha ha) c)) m) 2) r(/ ( * m z) 2) rb ( * r (cos a)) ri rb ang 0 g (polar p0 ang rb) ) (command "circle" p0 ra) (command "circle" p0 rf) (command "circle" p0 r) (command "line" g)

(while (< ri ra) (setq ang ( + ang(/ pi 360)) ri ( / rb (cos ang))

cta ( - (/ (sin ang) (cos ang)) ang) g(polar p0 cta ri) )

(command g) ) (command ) )

二、螺旋源程序

(defun errMsg (s) (if (/= s "function cancelled") (princ (strcat "\nError: " s))) ; 当命令执行时出现错误 (setvar "cmdecho" ocmdold) ; 例如用户按下了 CTRL + C (setvar "osmode" osmold) (setq *error* olderr) ; 恢复旧的错误处理 (princ) )

(defun c:3Dthread (/ radouter threadpitch threadlength threadangle ptStart innerdiafactor radmid radinner ocmdold osmold 4H 5H 6H h6 g6) ;------------------------------------------------------------------; 获取公制外径大小、螺距总长 ; 然后计算一系列几何点 ; 并且关闭对象捕捉、命令回显 ;------------------------------------------------------------------(setq 4H (list 0.0015 0.002 0.002 0.0025 0.003 0.0035 0.004 0.005 0.006 0.007 0.008 0.009 0.010)) (setq 5H (list 0.002 0.0025 0.003 0.004 0.0045 0.0055 0.0065 0.0075 0.009 0.010 0.0115 0.0125

0.0135)) (setq 6H (list 0.003 0.004 0.0045 0.0055 0.0065 0.008 0.0095 0.011 0.0125 0.0145 0.016 0.018 0.020)) (setq h6 (list -0.003 -0.004 -0.0045 -0.0055 -0.0065 -0.008 -0.0095 -0.011 -0.0125 -0.0145 -0.016 -0.018 -0.020)) (setq g6 (list -0.005 -0.008 -0.0095 -0.0115 -0.0135 -0.017 -0.0195 -0.023 -0.0265 -0.0295 -0.033 -0.036 -0.0515))

(setq osmold (getvar "osmode")) ; 保存调用前的 osmode 系统变量值 (setq ocmdold (getvar "cmdecho")) ; 保存调用前的 cmdecho 系统变量值 (setvar "osmode" 0) ; 关闭对象捕捉 (setvar "cmdecho" 0) ; 关闭命令的回显

(setq innerdiafactor 1.5) ; 设置内径系数 (initget 7) ; radmid 必须非零、非空、非负 (setq radmid (getdist "\n 公制外径: ")) (initget 7) ; threadpitch 必须非零、非空、非负 (setq threadpitch (getreal "\n 螺距: ")) (initget 1) ; ptStart 必须非空 (setq ptStart (getpoint "\n 起始点: ")) (initget 3) ; threadlength 必须非零、非空、非负 (setq threadlength (getdist "\n 螺纹总长(Y 方向): "))

; 对公制外径添加公差 (if (<= radmid 3) (setq order 0) ; 根据公制外径确定公差带中位置 (if (<= radmid 6) (setq order 1) (if (<= radmid 10) (setq order 2) (if (<= radmid 18) (setq order 3) (if (<= radmid 30) (setq order 4) (if (<= radmid 50) (setq order 5) (if (<= radmid 80) (setq order 6)

(if (<= radmid 120) (setq order 7) (if (<= radmid 180) (setq order 8) (if (<= radmid 250) (setq order 9) (if (<= radmid 315) (setq order 10) (if (<= radmid 400) (setq order 11) (if (<= radmid 500) (setq order 12) )))))))))))))

(if (< threadpitch 0.25) (setq radmid (+ radmid (nth order 4H))) ; 根据螺距确定公差带 (if (< threadpitch 0.35) (setq radmid (+ radmid (nth order 5H))) (if (>= threadpitch 0.35) (setq radmid (+ radmid (nth order 6H))) )))

(setq h (* 0.866025 threadpitch)) ; 计算齿高 (setq radouter (+ radmid (/ h 4))) ; 计算外径 (setq radinner (- radouter (* h innerdiafactor))) ; 计算内径 (setq threadangle (+ 30 0)) ; 计算齿顶角

(auxithread radouter radmid radinner threadpitch threadlength threadangle ptStart) ; 调用绘制三 维螺纹的子函数

(princ "\n 三维螺纹创建完成") (setvar "osmode" osmold) ; 恢复调用前的 osmode 系统变量值 (setvar "cmdecho" ocmdold) ; 恢复调用前的 cmdecho 系统变量值 (princ) )

(defun auxithread (radouter radmid radinner threadpitch th
【收藏此信息】 【打印】 【关闭】



热文推荐
猜你喜欢
友情链接: 幼儿教育 小学教案 初中教案 高中教案 职业教育 成人教育