![]() |
坐标系的建立
坐标系的建立
有一齿轮,其模型和任意截面如图 如果您的零件真如图所示,可用手动方法测上面的圆弧和下面的圆弧,以两圆弧的中心为坐标轴建坐标系,再以中心孔作为坐标原点。 我有一个零件是圆弧形式的,但这个零件的齿廓曲线是摆线轮 我想可以不用找精确的“最大点”、“最小点”。 如果对这个零件测量后,要在曲线曲面软件中进行比对的话,可以不要精确找零点。只要近似找“最小点”、“最大点”就可以了。 在曲线曲面软件中可以进行拟和计算(平移和旋转),消除因建坐标形成的误差。 下面是更符合习惯的截面坐标图 式中除了角度是变量外,其余全是常数;zg=zb-1 edited by - cqu2072105 on 2005/03/01 15:34:58 to:sun 你说:在曲线曲面软件中可以进行拟和计算(平移和旋转),消除因建坐标形成的误差。 ezdmis包含一部分,与ezdmis配套的有ezisis,是曲线曲面软件,如果你们没有,可以联系购买。 下面是我暂时没全面考虑坐标系建立而编制的程序。 谢谢大家给我下面的程序提些建议。 units/mm,angdec snset/arch, 5.0000 snset/retrct, 5.0000 snset/search, 25.0000 decl/real,rr decl/real,xx,yy,zz,dx,dy,dz decl/intgr,nn,num decl/real,rz,k1,rz,zb mode/man text/query,(rr),20,an,l,'请输入内圆半径' text/query,(nn),20,an,l,'请输入需要测量的点数。' text/query,(zz),20,an,l,'请输入测量深度' text/query,(rz),20,an,l,'请输入rz' text/query,(k1),20,an,l,'请输入k1' text/query,(rz),20,an,l,'请输入rz' text/query,(zb),20,an,l,'请输入zb' text/oer,'请在平面中间测量一点。' zz=-1*abs(zz) f(w01)=feat/oint,cart,-26.3469,5.0323,-32.0313,$ 0.0000,0.0000,1.0000 meas/oint,f(w01),1 tmeas/cart,-26.3469,5.0323,-30.0313,0.0000,0.0000,1.0000 endmes outut/fa(w01) d(q01)=trans/xorig,fa(w01) d(q01)=trans/yorig,fa(w01) d(q01)=trans/zorig,fa(w01) mode/rog,man snset/arch,3 snset/retrct,3 f(la01)=feat/lane,cart,0,0,0,$ -0.0000,0.0000,1.0000 meas/lane,f(la01),4 tmeas/cart,rr+4,0,0,-0.0000,0.0000,1.0000 tmeas/cart,0,rr+4,0,-0.0000,0.0000,1.0000 tmeas/cart,-(rr+4),0,0,-0.0000,0.0000,1.0000 tmeas/cart,0,-(rr+4),0,-0.0000,0.0000,1.0000 endmes outut/fa(la01) snset/arch,5 snset/retrct,5 f(cia01)=feat/circle,inner,cart,0,0,zz,$ 0.0000,0.0000,1.0000,2*rr meas/circle,f(cia01),4 goto/rr-5,0,5 tmeas/cart,rr,0,zz,1,0,0 goto/rr-5,rr-5,zz tmeas/cart,0,rr,zz,0,1,0 goto/-(rr-5),rr-5,zz tmeas/cart,-rr,0,zz,-1,0,0 goto/-(rr-5),-(rr-5),zz tmeas/cart,0,-rr,zz,0,-1,0 endmes outut/fa(cia01) goto/0,-rr,5 decl/real,anl,ste,ddx,ddy,vax,vay,vaz decl/char,20,,name1,name2 name1='c:\ezdmis\reort\' name2=concat(name1,'data.out') did(datafile)=device/stor,name2 oen/did(datafile),fdata,v(label),outut,aend write/did(datafile),'',nn write/did(datafile),' ' close/did(datafile) close/did(datafile) anl=360/nn ste=10 do/num,1,nn,1 xx=rz*cos(ste)-e*sin(zb*ste)-rz*(cos(ste)-k1*cos(zb*ste))/sqrt(1+k1^2-2*k1*cos((zb-1)*ste)) yy=rz*sin(ste)-e*sin(zb*ste)+rz*(sin(ste)+k1*sin(zb*ste))/sqrt(1+k1^2-2*k1*cos((zb-1)*ste)) dx=cos(ste)-k1*cos(zb*ste)/sqrt(1+k1^2-2*k1*cos((zb-1)*ste)) dy=sin(ste)+k1*sin(zb*ste)/sqrt(1+k1^2-2*k1*cos((zb-1)*ste)) dz=0 goto/rz*cos(ste)-e*sin(zb*ste),rz*sin(ste)-e*sin(zb*ste),20 goto/rz*cos(ste)-e*sin(zb*ste),rz*sin(ste)-e*sin(zb*ste),zz =assign/concat('qt',str(num)) f()=feat/oint,cart,xx,yy,zz,dx,dy,dz meas/oint,f(),1 tmeas/cart,xx,yy,zz,dx,dy,dz endmes outut/fa() vax=obtain/fa(),2 vay=obtain/fa(),3 vaz=obtain/fa(),4 oen/did(datafile),fdata,v(label),outut,aend write/did(datafile),'',vax,vay,vaz write/did(datafile),' ' close/did(datafile) if/(nn<5) goto/(rr-5)*cos(ste+anl/2),(rr-5)*sin(ste+anl/2),zz endif ste=ste+anl enddo endfil 我突然有一个新的想法,因为时间长了,把这个方法忘了。 我们似乎可以不用把精力放在编程上。 ezdmis中与之配套的ezisis有一个功能,就是能够生成曲线的测量程序。 1。首先按照数学公式,以一定步长的角度生成零件的理论点。 2。将这些点调入ezisis软件,在软件中生成零件外形的曲线。 3。可以根据需要,加密并生成点的矢量。 4。输出这些点为dmis测量语句。 5。将这些语句直接加入到建立零件坐标系的程序中。 6。测量并将测量点输出到文件中。 7。将测量后的数据与前面的理论数据进行比对,可以看出零件的误差,并输出误差报告。 这种方法适合於小批量或单个零件的测量。 |
所有的时间均为北京时间。 现在的时间是 03:57 PM. |