社区活动 技术论坛 各位:帮我看看哪里出问题了
各位:帮我看看哪里出问题了
2005-01-16 16:54 118 0 39
m(meas_point)=macro/x,y,z f(po01)=feat/point,cart,x,y,z,0,0,1 meas/point,f(po01),1 ptmeas/cart,x,y,z,0,0,1 endmes output/fa(po01) 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_point),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)) 后运行,系统提示这句出了问题,请问各位这是怎么回事 谢谢!
我要回复

登陆后才能评论

登录
所有回贴(39)
按照楼主的要求,抽空脱机编写了如下程序,这个程序的意义在于了解编程语言使用方法,如果真是为测量这个外圆编写程序就有点可笑了。 声明:这个程序是脱机编写的,只是在脱机方式下运行正常,不能保证联机时能否运行正常。程序有各种编写思路,这个程序只供大家参考。 UNITS/MM,ANGDEC SNSET/APPRCH, 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 MODE/MAN TEXT/QUERY,(RR),20,AN,L,'请输入外圆半径' TEXT/QUERY,(NN),20,AN,L,'请输入需要在圆周上测量的点数。' TEXT/QUERY,(ZZ),20,AN,L,'请输入测量深度' TEXT/OPER,'请在圆平面中间测量一点。' ZZ=-1*ABS(ZZ) F(PW01)=FEAT/POINT,CART,-26.3469,5.0323,-32.0313,$ 0.0000,0.0000,1.0000 MEAS/POINT,F(PW01),1 PTMEAS/CART,-26.3469,5.0323,-30.0313,0.0000,0.0000,1.0000 ENDMES OUTPUT/FA(PW01) D(PQ01)=TRANS/XORIG,FA(PW01) D(PQ01)=TRANS/YORIG,FA(PW01) D(PQ01)=TRANS/ZORIG,FA(PW01) MODE/PROG,MAN SNSET/APPRCH,3 SNSET/RETRCT,3 F(PLA01)=FEAT/PLANE,CART,0,0,0,$ -0.0000,0.0000,1.0000 MEAS/PLANE,F(PLA01),4 PTMEAS/CART,RR-4,0,0,-0.0000,0.0000,1.0000 PTMEAS/CART,0,RR-4,0,-0.0000,0.0000,1.0000 PTMEAS/CART,-(RR-4),0,0,-0.0000,0.0000,1.0000 PTMEAS/CART,0,-(RR-4),0,-0.0000,0.0000,1.0000 ENDMES OUTPUT/FA(PLA01) SNSET/APPRCH,5 SNSET/RETRCT,5 F(CIA01)=FEAT/CIRCLE,OUTER,CART,0,0,ZZ,$ 0.0000,0.0000,1.0000,2*RR MEAS/CIRCLE,F(CIA01),4 GOTO/RR+5,0,5 PTMEAS/CART,RR,0,ZZ,1,0,0 GOTO/RR+5,RR+5,ZZ PTMEAS/CART,0,RR,ZZ,0,1,0 GOTO/-(RR+5),RR+5,ZZ PTMEAS/CART,-RR,0,ZZ,-1,0,0 GOTO/-(RR+5),-(RR+5),ZZ PTMEAS/CART,0,-RR,ZZ,0,-1,0 ENDMES OUTPUT/FA(CIA01) GOTO/0,-RR,5 D(PC01)=ROTATE/XAXIS,FA(PLA01),ZDIR D(PC01)=ROTATE/YAXIS,FA(PLA01),ZDIR D(PC01)=TRANS/ZORIG,FA(PLA01) D(PC02)=TRANS/XORIG,FA(CIA01) D(PC02)=TRANS/YORIG,FA(CIA01) D(PC02)=TRANS/ZORIG,FA(PLA01) DECL/REAL,ANL,STEP,DDX,DDY,vax,vay,vaz DECL/CHAR,20,PP,name1,name2 name1='c:\ezdmis\report\' name2=concat(name1,'data.out') DID(datafile)=DEVICE/STOR,name2 OPEN/DID(datafile),FDATA,V(label),OUTPUT,APPEND WRITE/DID(datafile),'',NN WRITE/DID(datafile),' ' CLOSE/DID(datafile) ANL=360/NN STEP=0 DO/NUM,1,NN,1 XX=RR*COS(STEP) YY=RR*SIN(STEP) DX=COS(STEP) DY=SIN(STEP) DZ=0 GOTO/(RR+2)*COS(STEP),(RR+2)*SIN(STEP),ZZ PP=ASSIGN/CONCAT('PQT',str(NUM)) F(PP)=FEAT/POINT,CART,XX,YY,ZZ,DX,DY,DZ MEAS/POINT,F(PP),1 PTMEAS/CART,XX,YY,ZZ,DX,DY,DZ ENDMES OUTPUT/FA(PP) vax=OBTAIN/FA(pp),3 vay=OBTAIN/FA(pp),4 vaz=OBTAIN/FA(pp),5 OPEN/DID(datafile),FDATA,V(label),OUTPUT,APPEND WRITE/DID(datafile),'',vax,vay,vaz WRITE/DID(datafile),' ' CLOSE/DID(datafile) IF/(NN<5) GOTO/(RR+5)*COS(STEP+ANL/2),(RR+5)*SIN(STEP+ANL/2),ZZ ENDIF STEP=STEP+ANL ENDDO ENDFIL 如有不清楚之处,可以提出。
2005-02-24 09:49
回复
取消
提交
TO:SUN 和各位高手 我的最终目的是通过编程,实际测量上面齿轮上的一系列点。现在想通过最基本的测圆编程等掌握编程的基本思路。希望各位高手不吝赐教。谢谢!
2005-02-24 10:39
回复
取消
提交
疑问请教: ..... ZZ=-1*ABS(ZZ) F(PW01)=FEAT/POINT,CART,-26.3469,5.0323,-32.0313,$ 0.0000,0.0000,1.0000 MEAS/POINT,F(PW01),1 PTMEAS/CART,-26.3469,5.0323,-30.0313,0.0000,0.0000,1.0000 ENDMES OUTPUT/FA(PW01) D(PQ01)=TRANS/XORIG,FA(PW01) D(PQ01)=TRANS/YORIG,FA(PW01) D(PQ01)=TRANS/ZORIG,FA(PW01) 到此是不是建立了以测量的点为原点,建立坐标系;此处PW,PQ,TRANS我在手头的手册上没找到指代什么含义,一时也猜不准什么意思,请明示,谢谢
2005-02-25 09:23
回复
取消
提交
看来你要从最基本的语句学起。 上面的语句是在圆平面中间测量一个(PW01)点,然后将该点暂时设置为(PQ01)坐标系零点。 PW01是点的元素号,PQ01是坐标系的编号,“TRANS”是平移坐标系原点的标志语句。 元素号是一种资源,当我们编写程序时,最好编写自己的元素号,避免与软件缺省元素号一致,以免在测量时造成冲突。 我在程序中第二次建立坐标系时的编号应该更改,事后发现的。
2005-02-25 09:55
回复
取消
提交
谢谢! 刚才我实际测量了一下,到下面语句 TEXT/OPER,'请在圆平面中间测量一点。' 需在圆柱平面测量一点。如果像先前那模型图 那样,中间是空心圆柱体,那又该如何测得那 点、建立坐标呢 还有就是在实测过程中,运行到下句 GOTO/(RR+2)*COS(STEP),(RR+2)*SIN(STEP),ZZ 时,发生了测头碰撞圆柱平面,我想在这句之前 需加上一句GOTO/(RR+2)*COS(STEP),(RR+2)*SIN(STEP),5
2005-02-25 10:51
回复
取消
提交
F(PLA01)=FEAT/PLANE,CART,0,0,0,$ -0.0000,0.0000,1.0000 MEAS/PLANE,F(PLA01),4 PTMEAS/CART,RR-4,0,0,-0.0000,0.0000,1.0000 PTMEAS/CART,0,RR-4,0,-0.0000,0.0000,1.0000 PTMEAS/CART,-(RR-4),0,0,-0.0000,0.0000,1.0000 PTMEAS/CART,0,-(RR-4),0,-0.0000,0.0000,1.0000 ENDMES OUTPUT/FA(PLA01) F(CIA01)=FEAT/CIRCLE,OUTER,CART,0,0,ZZ,$ 0.0000,0.0000,1.0000,2*RR MEAS/CIRCLE,F(CIA01),4 GOTO/RR+5,0,5 PTMEAS/CART,RR,0,ZZ,1,0,0 GOTO/RR+5,RR+5,ZZ PTMEAS/CART,0,RR,ZZ,0,1,0 GOTO/-(RR+5),RR+5,ZZ PTMEAS/CART,-RR,0,ZZ,-1,0,0 GOTO/-(RR+5),-(RR+5),ZZ PTMEAS/CART,0,-RR,ZZ,0,-1,0 ENDMES OUTPUT/FA(CIA01) GOTO/0,-RR,5 上面平面上测四点、圆周上测四点的目的是什么,在整个程序中起到什么作用?——是为了建立准确的坐标系吗
2005-02-25 11:00
回复
取消
提交
是的。 很多测量在手动建立坐标系后,还要自动建立坐标系。零件形状比较规范的话,自动建立就行了。
2005-02-25 11:24
回复
取消
提交
... ANL=360/NN STEP=0 DO/NUM,1,NN,1 XX=RR*COS(STEP) YY=RR*SIN(STEP) DX=COS(STEP) DY=SIN(STEP) DZ=0 GOTO/(RR+2)*COS(STEP),(RR+2)*SIN(STEP),ZZ ... 此处的DX,DY,DZ是指触测法向量吗?怎么求得它们呢? 谢谢
2005-02-26 09:33
回复
取消
提交
DX、DY、DZ是触测的方向矢量。 方向矢量是单位化了的,它的最大值是1。可以理解为该矢量在X、Y、Z轴上的投影。 在上面这个例子中,由于是在XY平面内测量,所以Z方向始终是0,X、Y方向正好是COS(θ)、SIN(θ)值,方向应该是圆的法向方向。应该用数学的方法表示,如程序中那样。
2005-02-26 22:15
回复
取消
提交
谢谢SUN 继续就上程序向你请教一些问题 ... PP=ASSIGN/CONCAT('PQT',str(NUM)) 这个赋值语句没看懂,PP,‘PQT’代表什么含义,为什么要把数字转化成字符串并连接啊 F(PP)=FEAT/POINT,CART,XX,YY,ZZ,DX,DY,DZ MEAS/POINT,F(PP),1 PTMEAS/CART,XX,YY,ZZ,DX,DY,DZ ENDMES OUTPUT/FA(PP) vax=OBTAIN/FA(pp),3 vay=OBTAIN/FA(pp),4 vaz=OBTAIN/FA(pp),5 vax,vay,vaz代表什么含义,这里我看它们分别指代YY,ZZ,DX
2005-02-27 11:00
回复
取消
提交
在线咨询
关注我们

海克斯康制造智能

电话咨询
400-6580-400

热线电话(工作时间8:30-17:30)

关注我们 电话咨询 在线咨询

海克斯康制造智能