加色魔 发表于 2011-7-14 14:00:11

急求cad画直齿轮的方法!!!!大侠们帮帮忙!

不知道在cad中如何画标准的直齿轮,谁能帮忙说下具体操作步骤,最好是以木一个实例来说明,共同学习大家!!!

dxskywalker 发表于 2011-7-14 14:15:35

二维的话只要画齿顶圆da,节圆d0,并列出相关的参数如模数,齿数等,还有就是精度。

hcj907 发表于 2011-7-14 14:23:41

用CAXA转换~

加色魔 发表于 2011-7-14 14:29:22

但是我们能不能把齿轮的整体齿形画出来呐,我说的重点也在于此!!谢谢

还做读书狼 发表于 2011-9-12 22:10:07

加色魔 发表于 2011-7-14 14:29 static/image/common/back.gif
但是我们能不能把齿轮的整体齿形画出来呐,我说的重点也在于此!!谢谢

你这个意思是什么意思?整体齿形是什么东西?是渐开线吗?一般还真不画出渐开线。只画出齿顶圆齿根圆分度线就ok

狙魔人 发表于 2012-4-29 21:01:27

还做读书狼 发表于 2011-9-12 22:10 static/image/common/back.gif
你这个意思是什么意思?整体齿形是什么东西?是渐开线吗?一般还真不画出渐开线。只画出齿顶圆齿根圆分度 ...

(defun C:gear ()
(setq numt nil
         diap nil
            prsa nil
            pnts nil
            test nil
            pwd nil
)

(setq numt (getint "Number of teeth:<24>"))
(if (= numt nil)
    (setq numt 24)
)
(setq diap (getreal "Modulus of gear:<0.5> "))
(if (= diap nil)
    (setq diap (/ 1 0.5))
    (setq diap (/ 1 diap))
)
(setq prsa (getreal "Pressure angle:<20.0> "))
(if (= prsa nil)
    (setq prsa 20.0)
)
(setq pnts (getint "number of points on curve:<40> "))
(if (= pnts nil)
    (setq pnts 40)
)
;(setq pwd (getreal "Please input password:"))
;   (if (/= pwd 8833)
;      (setq numt 0)
;)
;   (if (= pwd nil)
;      (setq numt 0)
;)
;
(command "osnap" "non")
(setvar "cmdecho" 0)
(setq oldvar (getvar "pickbox"))
(setvar "pickbox" 0)
(setvar "aperture" 1)
(command "osmode" "0" )
;
(setq prsa (/ (* prsa pi) 180.0))
(setq pitd (/ numt diap))
(setq outd (/ (+ numt 2) diap))
(setq basr (/ (* pitd (cos prsa)) 2))
(setq orad (/ outd 2.0))
(setq z (- (expt orad 2.0) (expt basr 2.0)))
(setq x (sqrt z))
(setq paodd (atan (/ x basr)))
(setq incr (/ paodd pnts))
(setq p 0.0)
(setq pitr (/ pitd 2.0))
(setq pang (/ 360. (* numt 4.0)))
(setq pang (/ (* pang pi) 180.0))
(graphscr)
(setq p2 (getpoint "center of gear:"))
(setq y2 (cadr p2))
(setq x2 (car p2))
(setq r0 (/ (/ (- numt 2.5) diap) 2))
(setq r1 (/ 0.2 diap))
(setq h (sqrt (- (* (+ r1 r0) (+ r1 r0)) (* r1 r1))))
(setq ang0 (/ (* pi 2) numt))
(setq y5 (+ y2 basr))
(setq p5 (list x2 y5))
(setq y55 (+ y2 r0))
(setq p55 (list x2 y55))
(setq p88 (list (+ x2 2) (+ y5 2)))
(setq a3 (/ (* pi 5) 4))
(setq a4 (/ pi 4))
(setq pz3 (polar p2 a3 (* orad 1.5)))
(setq pz4 (polar p2 a4 (* orad 1.5)))
(command "zoom" "w" pz3 pz4)
;
(setq clay (getvar "CLAYER"))
(setq sblip (getvar "BLIPMODE"))
(setq ts (tblsearch "LAYER" "CEN"))
   (if (null ts)
      (progn
       (prompt "\nCreating new layer - CEN. ")
       (setvar "BLIPMODE" 0)
       (command "LAYER" "M" "CEN" "LT" "CENTER" "CEN" "C" "RED" "CEN" "")   
       )
      (progn
       (if (> (cdr (assoc 70 ts)) 0) (command "LAYER" "T" "CEN" "ON" "CEN" "U" "CEN" ""))
       (command "LAYER" "S" "cen" "")
       )
    )
(command "circle"p2 pitr)
(setvar "BLIPMODE" sblip)
(command "LAYER" "S" clay "")
;
(setq a1 (- (/ pi 2 ) 0.1))
(setq a2 (+ (/ pi 2) 0.1))
(setq pz1 (polar p2 a1 basr))
(setq pz2 (polar p2 a2 orad))
(command "zoom" "w" pz1 pz2)
(setq s (ssadd))
(setq le (entlast))
(setq test 0)
(command "pline" p5)
(setq p (+ incr p ))
(while (> pnts 0)
   (setq e1 (sin p))
   (setq e2 (cos p))
   (setq e (/ e1 e2))
   (setq j (- e p))
   (setq x1 (* (/ (sin j) (cos p)) basr))
   (setq y1 (* (/ (cos j) (cos p)) basr))
   (setq x3 (+ x2 x1))
   (setq y3 (+ y2 y1))
   (setq p3 (list x3 y3))
   (command p3)
   (setq p (+ incr p))
   (setq pnts(- pnts 1))
   (if (/= test 1)
    (progn
    (setq hyp (sqrt (+ (expt x1 2) (expt y1 2))))
   (if (> hyp pitr)
       (progn
         (setq pint p3)
         (setq test 1)
      )
      )
   );endif
    );endif
    )
    (command "")
    (setq L2 (ssget "L"))
    (initget "Y y N n")
    (setq ans (getkword "\n Finish the gear ?:<Y> "))
    (if (/= ans "N")
      (progn
      (command "zoom" "w" pz1 pz2)
      (setq p11 (osnap pint "inter"))
      (setq ang (angle p2 p11))
      (setq angi (- ang pang))
      (setq p12 (polar p2 angi 1.0))
;
(if (< (* 0.94 numt (/ 1 diap)) (* h 2.0005))
      (progn
            (if (< numt 42)
            (progn
               (setq p56 (list x2 (+ y2 r0)))
               (command "line" p56 p5 "")
               (setq L33 (entlast))
               (command "zoom" "w" p77 p88)
               (command "mirror" L2 L33 "" p2 p12 "")
               (setq adj1 (- angi (/ pi 2)))
               (setq adj2 (- (/ pi 2)(* pang 4)))
               (setq p17 (polar p2 (+ angi adj1) r0))
               (setq p16 (polar p2 adj2 r0))
               (command "arc" p16 "c" p2 p17)
            ) ;end progn
            (progn
               (command "zoom" "w" p77 p88)
               (command "mirror" L2 "" p2 p12 "")
               (setq pL1 (entlast))
               (setq adj1 (- angi (/ pi 2)))
               (setq adj2 (- (/ pi 2)(* pang 4)))
               (setq p17 (polar p2 (+ angi adj1) r0))
               (setq p16 (polar p2adj2 r0))
             (if (> numt 101)
               (command "arc" p17 "c" p2 p16)
               (command "arc" p16 "c" p2 p17))
               (setq arc4 (entlast))
               (setq p171 (polar p17 0.7854 (/ 0.4 diap)))
               (setq p172 (polar p17 3.9 (/ 0.4 diap)))
             (if (> numt 101)
               (setq p18 (polar p2 (+ angi adj1 ang0) r0))
               (setq p18 (polar p2 (+ adj2 ang0) r0)))
               (setq p181 (polar p18 2.3 (/ 0.4 diap)))
               (setq p182 (polar p18 5.5 (/ 0.4 diap)))
               (command "zoom" "w" p171 p172)
             (if (> numt 101)
               (command "extend" pL1 "" p16 "")
               (command "extend" pL1 "" p17 ""))
               (setq ang0 (/ (* ang0 180) pi))
               (command "rotate" arc4 "" p2 ang0)
               (command "zoom" "w" p181 p182)
               (command "extend" L2 "" p18 "")
               (command "zoom" "w" pz1 pz2)
               (command "trim" arc4 "" p5 "")
               (command "erase" pl1 "")
               (command "mirror" L2 "" p2 p12 "")
             ) ;end progn
         ) ;end if
         ) ;end progn
      (progn
      (setq ang12 (- (/ pi 2) (angle p2 p12)))
      (setq ang57 (atan (/ r1 h)))
      (setq ang58 (- ang0 (* ang12 2) (* ang57 2)))
      (setq ang577 (+ (/ pi 2) ang57))
      (setq ang588 (+ ang577 ang58))
      (setq p57 (polar p2 ang577 (+ r1 r0)))
      (setq p577 (polar p2 ang577 r0))
      (setq p588 (polar p2 ang588 r0))      
      (setq p56 (list x2 (+ y2 h)))
      (command "arc" p577 "c" p57 p56)
      (setq arc1 (entlast))
      (command "arc" p577 "c" p2 p588)
      (setq arc2 (entlast))
      (command "line" p56 p5 "")
      (setq L33 (entlast))
      (command "zoom" "w" p77 p88)
      (command "mirror" arc1 arc2 L2 L33 ""p2p12 "")
      (command "erase" arc2 "")
       ) ;end progn   
    ) ;end if
;
      (setq beta (angle p2 p3))
      (setq ang2 (- (* angi 2) beta))
      (setq p15 (polar p2 ang2 orad))
      (command "arc" p15 "c" p2 p3)
      (while (setq le (entnext le))
          (ssadd le s)
       )
       (command "array" s "" "p" p2 numt "" "")
       (setq q1 (nth 0 p2))
       (setq q2 (nth 1 p2))
       (setq q5 (+ q1 pitr 2))
       (setq q6 (- q2 pitr 2))
       (setq q3 (- q1 pitr 2))
       (setq q4 (+ q2 pitr 2))
       (setq q1 (list q5 q6))
       (setq q2 (list q3 q4))
       (command "zoom" "w" q1 q2)
   )
   )
    (setvar "pickbox" 5)
    (setvar "aperture" 5)
    (setvar "osmode" 37)
   
    (princ "Finish gear ")
    (princ numt)
    (princ "T")
    (princ)
   )

上帝1314 发表于 2013-4-28 21:33:45

都没有讲清楚啊 想学习都没机会!

不停追逐的菜鸟 发表于 2013-5-18 23:36:50

同求,听说是有外挂,但是不知道怎么用

殇卜起 发表于 2013-8-29 08:12:38

6楼的办法很好

求学之路艰难 发表于 2013-10-30 16:12:14

用机械板CAD
页: [1] 2
查看完整版本: 急求cad画直齿轮的方法!!!!大侠们帮帮忙!