|
各位:帮我看看哪里出问题了
m(meas_oint)=macro/x,y,z
f(o01)=feat/oint,cart,x,y,z,0,0,1
meas/oint,f(o01),1
tmeas/cart,x,y,z,0,0,1
endmes
outut/fa(o01)
endmac
decl/intgr,i
decl/double,x,y,z
decl/double,rz,e,rz,k1
rz=25
e=1.25
k1=0.5
do/i,0,360,0.1
x=rz*sin(i/180*3.1415926)-e*sin(zb*i/180*3.1415926)
y=rz*cos(i/180*3.1415926)-e*cos(zb*i/180*3.1415926)
call/m(meas_oint),x,y,10
enddo
上面程序可运行,并输出相应结果
但在其x=rz*sin(i/180*3.1415926)-e*sin(zb*i/180*3.1415926)式子后加上2.5*(k1*sin
(zb*i/180*3.1415926)-sin(i/180*3.1415926))/sqrt(1+k1*k1-2*k1*cos(9*i/180*3.1415926))
后运行,系统提示这句出了问题,请问各位这是怎么回事
谢谢!
这个程序经我进行脱机运行,发现以下问题:
1。变量没有定义,如:zb.
2。软件系统中有些变量不允许直接使用,如:x,y,z,e等,要使用时可以用xx,yy,zz,ee等,否则程序容易出错。
3。x=.......
y=........
公式的最后的“)”与前面的括号不是同一格式,程序判断出错误格式。
to:sun
根据你给我另一帖子上的回复,我这程序也只能算是演示程序咯,不能够实际测量?
这个程序就是我对第一个帖子上图形(公式)所编的程序
知道了公式,就可以求出测量点的切线和法线,就能够计算出触测方向。
公式转化为程序时,可以分步计算,最后合成,这些都不复杂。首先解决数学问题,才能编写程序。
还有零件的坐标系如何建立?有辅助的特征吗?比如:中心怎么确定?零点如何确定?有这些参考特征点吗?
程序可以按照如下的思路考虑:
1。将零件摆放对正机器坐标(即以一个高点对正(假如)x轴)。
2。以中心孔圆心和上平面建一个坐标系。
3。用找最大点程序找出第一个最大点。并将该点投影后与圆心点连线,作为零件坐标系的x轴(可能有一点误差,如要精确点,需要多次查找)。
4。可以利用目标点角度基础上±σ角度的方法,计算出目标点的前后两点坐标,将两点连线,近似的认为是目标点切线(或利用数学公式计算出切线或法线),取出切线矢量旋转90度就可以用作法向矢量,即测量点的触测矢量。
5。重复4步骤,以要求的角度,计算出两个最大点(高点)之间的所有点,即360/n(n是高点的数量)的角度。
6。将坐标系旋转360/n角度,重复4、5步骤,直到测出所有点。
7。也可以不要测头半径测量,测出点后,在ezisis中进行半径修正。
可以先扫描找高点。
to:sun
根据你所述的方法,是不是要测许多点,写很长的程序;
能否用循环等方法在保证测量的情况下缩短序
根据你所描述,你能否以测量圆柱任一截面上的点(如测12个点),并输出这些点的测量值为例,说明一下你上述步骤。 |
|