⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tiqian_tutai_hob.grs

📁 C# 教学示例程序
💻 GRS
字号:
entity/L(5),Ln1(200),Ln2(200),Ln3(200),Ln4(200),Lnd,Ln5(200),Ln6(200)
$$L(5):齿条封闭直线
$$Ln1(200):齿条修缘直线
$$Ln2(200):齿条加工直线
$$Ln3(200):齿条触角直线
$$Ln4(200):齿条凸台直线
$$Lnd:齿条齿形对称直线
$$Ln5(200):齿条齿顶直线
$$Ln6(200):齿条齿根直线
entity/Ln1d(200),Ln2d(200),Ln3d(200),Ln4d(200)
$$Ln1d(200):齿条修缘直线齿形对称线
$$Ln2d(200):齿条加工直线齿形对称线
$$Ln3d(200):齿条触角直线齿形对称线
$$Ln4d(200):齿条凸台直线齿形对称线
entity/R11(200),R12(200),R21(200),R22(200)
$$R11(200):齿条齿顶左倒角
$$R12(200):齿条齿顶右倒角
$$R21(200):齿条齿根左倒角
entity/PLn1(2),PLn2(2),PLn3(2),PLn4(2),PLnd(3),PLn5(2),PLn6(2)
$$PLn1(2):齿条修缘直线两端点
$$PLn2(2):齿条加工直线两端点
$$PLn3(2):齿条触角直线两端点
$$PLn4(2):齿条凸台直线两端点
$$PLnd(3):齿条齿形对称直线端点
$$PLn5(2):齿条齿顶直线两端点
entity/pt1(3),pt1d(3),PLn3s,PLn3ds,LL(6),f1(2),d1(6)
$$pt1(3):齿顶左圆弧的端点及圆心
$$pt1d(3):齿顶右圆弧的端点及圆心
$$PLn3s,PLn3ds,LL(6):为取齿顶圆弧上的点而定义的变量
$$f1(2):切刀具平面
$$d1(6):定义平面的点
entity/gear1(1000),gear2(1000),hob(1000)
$$gear1(1000):齿轮齿形生成模型
$$gear2(1000):齿轮齿形生成旋转模型
$$hob(1000):滚刀齿条模型
number/mat1(12),mat2(12),mat3(12),mat4(12),mat5(12),mat6(12),mat7(12)
$$mat1(12):齿条法向齿形变换,移动xn
$$mat2(12):齿条齿形变换,镜像
$$mat3(12):齿条端面齿形变换,移动-D0/2*ja/180*pi
$$mat4(12):齿轮模型变换,旋转-ja
$$mat5(12):齿条端面齿形变换,移动tn/cosf(B)-D0/2*ja/180*3.1416
$$mat6(12):齿轮端面齿形变换,旋转B
number/i,j,k,ja,z,pi,xn,D0,D,xx
$$i,j:循环变量
$$k:齿条回刀变量
$$z:齿条齿数
$$pi:圆周率3.14
$$xn:变位系数,xn=(tn-sfng-sn)/2*/tan(ga)
$$D0:被加工齿轮分度圆直径,mn*zg/cos(B)
$$D:齿条中心距,D0/2+xn
$$s:模型生成控制变量
$$xx:齿轮旋向控制
number/mn,zg,B,sn,Da,ZB,ga,heg,hg,tn,sfng,cg1,ag1,cjg,ccg,r1,r2
ufargs/mn,zg,B,sn,Da,ZB,ga,heg,hg,tn,sfng,cg1,ag1,cjg,ccg,r1,r2,xx
   D0=mn*zg/cosf(B)   $$被切齿轮分度圆直径
   Xn=(tn-sfng-sn)/2*cosf(ga)/sinf(ga)
   D=mn*zg/cosf(B)/2-Xn $$被切齿轮分度圆直径
   pi=3.1415927
   z=15
   $$画出齿条法向齿形的辅助封闭曲线
   L(1)=line/0,-D-hg+heg,3,-D-hg+heg
   L(2)=line/0,-D-hg+heg,0,-D-hg+heg-3
   L(3)=line/0,-D-hg+heg-3,z*tn+6,-D-hg+heg-3
   L(4)=line/z*tn+6,-D-hg+heg-3,z*tn+6,-D-hg+heg
   L(5)=line/z*tn+6,-D-hg+heg,z*tn+3,-D-hg+heg
   $$画出齿形倒缘直线 
   PLn1(1)=point/endof,xlarge,L(1)
   PLn1(2)=point/PLn1(1),delta,(hg-cg1)*sinf(ag1)/cosf(ag1),hg-cg1,0
   Ln1(1)=line/PLn1(1),PLn1(2)
   $$画出齿形切削部分直线
   PLn2(1)=point/endof,xlarge,Ln1(1)
   PLn2(2)=point/PLn2(1),delta,$
      (cg1-cjg)*sinf(ga)/cosf(ga),cg1-cjg,0   
   Ln2(1)=line/PLn2(1),PLn2(2)
   $$画出齿形触角部分直线
   mat1=matrix/transl,-ccg/cosf(ga),0,0
   Ln3(1)=transf/mat1,Ln2(1)
   $$画出齿顶部分直线
   PLn5(1)=point/PLn2(1),delta,cg1*sinf(ga)/cosf(ga),cg1,0
   PLn5(2)=point/PLn5(1),delta,10,0,0
   Ln5(1)=line/PLn5(1),PLn5(2)
   $$画出齿顶圆弧
   R11(1)=fillet/xlarge,Ln3(1),ysmall,Ln5(1),radius,R1
   delete/Ln3(1),Ln5(1),PLn5(1..2)
   PLn3(1)=point/endof,ylarge,Ln2(1)
   PLn3(2)=point/endof,ysmall,R11(1)
   Ln3(1)=line/PLn3(1),PLn3(2)
   $$画出齿形对称线
   PLnd(1)=point/endof,ysmall,Ln2(1)
   PLnd(2)=point/PLnd(1),delta,(cg1-heg)*sinf(ga)/cosf(ga)+sfng/2,cg1-heg,0
   PLnd(3)=point/PLnd(2),delta,0,10,0
   Lnd=line/PLnd(2),PLnd(3)
   mat2=matrix/mirror,Lnd
   Ln1d(1)=transf/mat2,Ln1(1)
   Ln2d(1)=transf/mat2,Ln2(1)
   Ln3d(1)=transf/mat2,Ln3(1)
   R12(1)=transf/mat2,R11(1)
   PLn5(1)=point/endof,ylarge,R11(1)
   PLn5(2)=point/endof,ylarge,R12(1)
   Ln5(1)=line/PLn5(1),PLn5(2)
   do/lb10:,i,2,z,1
     mat1=matrix/transl,tn,0,0
     Ln1(i)=transf/mat1,Ln1(i-1)
     Ln2(i)=transf/mat1,Ln2(i-1)
     Ln3(i)=transf/mat1,Ln3(i-1)
     Ln5(i)=transf/mat1,Ln5(i-1)
     Ln1d(i)=transf/mat1,Ln1d(i-1)
     Ln2d(i)=transf/mat1,Ln2d(i-1)
     Ln3d(i)=transf/mat1,Ln3d(i-1) 
     R11(i)=transf/mat1,R11(i-1) 
     R12(i)=transf/mat1,R12(i-1)
   lb10:
   delete/PLnd(1..3),Lnd,PLn1(1..2),PLn2(1..2),PLn3(1..2),PLn5(1..2)
   $$画出齿根圆弧 
   R21(1)=fillet/xlarge,L(1),ylarge,Ln1(1),radius,R2
   R21(1+z)=fillet/ylarge,Ln1d(z),xlarge,L(5),radius,R2
   do/Lb20:,i,1,z-1,1
   R21(i+1)=fillet/xlarge,Ln1d(i),ylarge,Ln1(i+1),radius,R2
   Lb20:
   ifthen/B<>0
    hob(2)=solext/L(1..5),$
      Ln1(1..z),$
      Ln2(1..z),$ 
      Ln3(1..z),$
      Ln5(1..z),$
      Ln1d(1..z),$
      Ln2d(1..z),$
      Ln3d(1..z),$
      R11(1..z),$
      R12(1..z),$
      R21(1..z+1),$
      height,ZB/cosf(B)+sinf(B)/cosf(B)*(z*tn+6),axis,0,0,1
      ifthen/xx==0
     mat6=matrix/zxrot,-B
     mat7=matrix/transl,(ZB/cosf(B)+sinf(B)/cosf(B)*(z*tn+6))*sinf(B),$
        0,-(z*tn+6)*sinf(B)
     hob(1)=transf/mat6,hob(2)
     hob(1)=transf/mat7,hob(1),move
     endif
     ifthen/xx==1
     mat6=matrix/zxrot,B
     hob(1)=transf/mat6,hob(2)
     endif
     delete/hob(2)
     d1(1)=point/0,0,ZB
      d1(2)=point/10,0,ZB
      d1(3)=point/0,10,ZB
      d1(4)=point/0,0,0
      d1(5)=point/10,0,0
      d1(6)=point/0,10,0
      f1(1)=plane/d1(1),d1(2),d1(3)
      f1(2)=plane/d1(4),d1(5),d1(6)
      hob(2..3)=solcut/hob(1),with,f1(1)
      delete/hob(2)
      hob(1..2)=solcut/hob(3),with,f1(2)
      delete/hob(2)
      mask/omit,70
      delete/all
     else
      hob(1)=solext/L(1..5),$
      Ln1(1..z),$
      Ln2(1..z),$ 
      Ln3(1..z),$
      Ln5(1..z),$
      Ln1d(1..z),$
      Ln2d(1..z),$
      Ln3d(1..z),$
      R11(1..z),$
      R12(1..z),$
      R21(1..z+1),$
      height,zb,axis,0,0,1
     endif
     gear1(1)=solcyl/origin,0,0,0,height,ZB,diamtr,Da
    $$齿轮滚切
   
   k=0
   ja=3
    do/lb30:,j,2,360/ja+30,1
    mat3=matrix/transl,-D0/2*ja/180*pi,0,0
   k=k+D0/2*ja/180*pi
   ifthen/k>5*tn/cosf(B)
   mat5=matrix/transl,tn/cosf(B)-D0/2*ja/180*pi,0,0
   hob(j)=transf/mat5,hob(j-1)
   k=4*tn/cosf(B)
   else
    hob(j)=transf/mat3,hob(j-1)
   endif
    mat4=matrix/xyrot,-ja
    gear2(j-1)=subtra/gear1(j-1),with,hob(j-1)
    gear1(j)=transf/mat4,gear2(j-1)
    delete/gear2(j-1)
    lb30:
    delete/hob(360/ja+10)
    mask/omit,70
    delete/all


L100:
   halt

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -