仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx

上传人:b****3 文档编号:11764003 上传时间:2023-06-02 格式:DOCX 页数:86 大小:1.32MB
下载 相关 举报
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第1页
第1页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第2页
第2页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第3页
第3页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第4页
第4页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第5页
第5页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第6页
第6页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第7页
第7页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第8页
第8页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第9页
第9页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第10页
第10页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第11页
第11页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第12页
第12页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第13页
第13页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第14页
第14页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第15页
第15页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第16页
第16页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第17页
第17页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第18页
第18页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第19页
第19页 / 共86页
仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx_第20页
第20页 / 共86页
亲,该文档总共86页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx

《仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx》由会员分享,可在线阅读,更多相关《仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx(86页珍藏版)》请在冰点文库上搜索。

仿真数控装置的刀具补偿功能的程序实现 数控课程设计vb编程.docx

仿真数控装置的刀具补偿功能的程序实现数控课程设计vb编程

课程设计

课程名称___数控技术课程设计_

题目名称仿真数控装置的刀具补偿功能的程序实现

学生学院_______机电学院_________

专业班级__

学号

学生姓名_________

指导教师__________

 

2012年7月3日

广东工业大学数控技术课程设计任务书

题目名称

仿真数控装置的刀具补偿功能的程序实现

学生学院

专业班级

姓名

学号

一、课程设计的内容

用计算机高级编程语言(如VB,VC++等)来实现数控装置中的一个基本的功能——刀具补偿功能(亦即仿真数控装置的刀具补偿功能),要求对任意给定的某一由直线与圆弧组成的平面几何轮廓:

二、课程设计的要求与数据

具体的要求如下:

(1)能实现四种转接(直线—直线、直线—圆弧、圆弧—直线、圆弧—圆弧);

(2)能实现三种过渡方式(伸长型、缩短型、插入型);

(3)能实现左、右刀补(即G41,G42)。

(4)在屏幕上绘出刀具的中心轨迹。

三、课程设计应完成的工作

每个学生应在规定时间内,独立完成所选题目。

运用VB编程语言,编写计算机软件在WINDOWS实现数控装置的计算机仿真。

要求清楚地分析问题、提出算法、确定人机界面、列出流程图,最后用程序验证,完成软件测试,并且提交程序说明书。

对选择典型零件编程题目的学生,要求用编写计算机软件的方法解决数控过程的一个问题。

可以任选用本人熟悉的一种编程语言,要求清楚地分析问题、提出算法、列出流程图,最后用程序验证,并且提交程序说明书。

 

四、课程设计进程安排

序号

设计各阶段内容

地点

起止日期

1

 

1、布置任务,领取课程设计任务书,了解课程设计的目的、内容和要求;了解课程设计的步骤;

2、理解本课程设计题目的具体内容要求,根据各自不同情况选择题目;

教室

 

第18周~第20周

 

2

了解和掌握有关软件开发的知识,如VB编程、VC编程、软件工程、软件开发的常用技巧及注意事项;

3

调查研究,收集资料,查阅文献。

学生对所选题目进行论证及确定设计方案,

4

掌握数控结构设计要求,具体技术指标和计算要求;进行机械结构设计或者软件设计;

5

进行数控系统和算法的软件编程与开发,初步实现系统的基本功能

6

通过多个实例来验证和改进系统功能,完善软件界面

7

对所开发的软件程序进行标识和说明

8

按要求的格式编制课程设计说明书

9

课程设计答辩

一、内容提要..............................................2

二、软件功能介绍..........................................2

2.1软件窗口界面..........................................2

2.2软件功能简介..........................................2

三、刀具半径补偿知识.......................................3

3.1概念..................................................3

3.2主要用途..............................................3

3.3常用方法..............................................3

四、刀具半径补偿算法.......................................4

4.1转接点算法说明........................................4

4.2刀具补偿算法..........................................6

五、仿真结果图............................................8

六、设计总结..............................................9

七、参考文献..............................................10

八、附录(部分代码)........................................11

 

一、内容提要

本文介绍了以VisualBasic6.0为开发工具,制作程序来实现数控装置中的一个基本的功能--刀具补偿功能(亦即仿真数控装置的刀具补偿功能),要求对任意给定的某一由直线与圆弧组成的平面几何轮廓;

(1)能实现四种转接(直线--直线,直线--圆弧,圆弧--直线,圆弧--圆弧);

(2)能实现三中过渡方式(伸长型,缩短型,插入型);

(3)能实现左,右刀补(即G41,G42)。

(4)在屏幕上绘出刀具的中心轨迹。

在程序中讨论了刀具半径补偿的原理,并介绍了如何判断缩短型,伸长型和插入型,如何实现直线与直线,直线与圆弧,圆弧与直线,圆弧与圆弧的转接

二、软件功能介绍

2.1.本模拟软件有一个窗口,图形界面如下:

2.2、软件功能简介:

(1)软件能实现任何直线、圆弧交叉多段线段的连接刀具插补加工;

(2)能实现直线—直线、直线—圆弧、圆弧—直线、圆弧—圆弧刀具补偿;

(3)可以实时在窗体中输入图形参数,实现加工;

(4)刀具半径可以变换大小

三、刀具半径补偿知识

3.1概念:

根据按零件轮廓编制的程序和预先设定的偏置参数,数控装置能实时自动生成刀具中心轨迹的功能称为刀具半径补偿功能。

根据ISO标准,当刀具中心轨迹在编程轨迹(零件轮廓)前进方向的右边时,称为右刀补,用G42指令实现;反之称为左刀补,用G41指令实现。

3.2主要用途

数控装置大都具有刀具半径补偿功能,这为程序编制提供了方便。

当编制零件加工程序时,可利用刀具半径补偿功能,直接按零件轮廓进行编程,而不需要进行大量的刀具中心运动轨迹的计算。

采用刀具半径补偿后,数控系统能自动计算出刀具中心的偏移向量,进而得到偏移后的刀具中心轨迹,并使系统按中心轨迹运行。

具体体现在以下两个方面:

1)由于刀具的磨损或因换刀引起的刀具半径变化时,不必重新编程,只须修改相应得偏置参数即可。

2)由于轮廓加工往往不是一道工序能完成的,在粗加工时,要为精加工工序预留加工余量。

加工余量的预留可通过修改偏置参数实现,而不必为粗、精加工各编制一个程序。

3.3常用方法

刀具半径补偿分为B类补偿和C类补偿。

B刀补的特点是刀具中心轨迹的段间连接都是以圆弧进行的;C刀补的特点是相邻两段轮廓的刀具中心轨迹之间用直线进行连接。

B类补偿只能实现在本程序段内的刀具半径补偿,而对程序段间的过渡不予处理。

只有B类刀具半径补偿功能的数控系统,使用时,对有外轮廓(外拐角)部分,必须增加尖角过渡辅助程序段;对内轮廓(内拐角),会产生过切现象。

刀具半径C类补偿功能可实现自动尖角过渡,只要给出零件轮廓的程序数据,数控系统就能自动地进行拐角处的刀具中心轨迹交点的计算,采用的算法是一次进行两段直线的处理,C类补偿功能可用于内、外拐角轮廓的加工。

四、刀具半径补偿计算

4.1转接点算法说明

4.2刀具补偿算法

刀具算法即计算各种转接类型的转接点的坐标值,下属刀补算法中,假设刀具半径d,圆弧半径R

4.2.1直线接直线的情况

假设第一段直线L1的起点为(

),终点为(

),第二段直线L2的起点为(

),(

)。

第一段直线L1的方向矢量为

第二段直线L2的方向矢量为

缩短型

直线1与直线2终点采用角度计算

刀具半径矢量的计算:

以rd表示刀具半径矢量,α1表示对应的直线编程矢量与X轴正向的夹角,则可求出:

G41:

rdx=rd*(-sin

1) rdy=rd*(cos

1)

G42:

rdx=rd*(sin

1) rdy=rd*(-cos

1)

对刀具中心轨迹起点的计算:

通过对左、右刀补及各种线型的转接分析,得出其通用的计算公式:

Jx=Ox+rdx Jy=Oy+rdy

对刀具中心轨迹终点的计算:

左刀补时:

c=1;右刀补时:

c=-1;

Kx=Fx-c*rd*sin

2 Ky=Fy+c*rd*cos

2

因此,只要配合直线的斜率就能计算出转接点的坐标,从而完成刀具补偿。

伸长型 

其计算方法与缩短型一样。

插入型

刀补进行有两个转接点,采用角度判别计算,其坐标值的计算公式如下:

对左刀补(G41)kk=1; 对右刀补

(G42)kk=-1

插入点计算公式为:

C1x=Ax+rd*(cos

1-kk*sin

1) 

C1y=Ay+rd*(sin

1+kk*cos

1)

C2x=Ax+rd*(-cos

2-kk*sin

2) 

C2y=Ay+rd*(-sin

2+kk*cos

2)

4.2直线接圆弧的情况

假设直线L的起点为(

),终点为(

),圆弧C的起点为(

),终点为(

),圆心相对于圆弧起点的坐标为(I,K)。

刀补圆弧的半径为:

r=rd*kc+

顺圆时kc=1,逆圆时为-1。

直线接圆弧的伸长型刀补进行转接点求法如图所示,其中有两个转接点,首先求出两切线夹角的平均数,利用求出的角度计算过渡直线的斜率,从而得出直线与过渡直线的交点与直线与圆弧的交点。

4.3.圆弧接直线的情况

其原理与直线接圆弧相同。

4.4.圆弧接圆弧的情况

缩短型

刀补进行:

圆弧接圆弧的缩短型刀补进行转接点求法很简单,只要求出其刀补圆弧的交点就可以画出刀补情况。

伸长型

刀补进行:

圆弧接圆弧的伸长型刀补进行转接点求法与缩短型相类似。

插入型

刀补进行:

圆弧接圆弧的插入型刀补进行转接点求法与直线圆弧相类似。

 

五、仿真结果图

5.1直线与直线

 

5.2直线与圆弧

5.3圆弧与圆弧

六、设计总结

这个基于VB的刀补程序是用几何方法编写的,以矢量夹角为判断标准.程序分为直线—直线;直线—圆弧;圆弧--直线;圆弧—圆弧四大类。

我这次编写的程序所用的方法是很基本的几何逻辑原理,都是高中的几何知识,十分浅显.但比较冗长。

通过本次课程设计我受益良多,不仅巩固了数控技术的知识,另外,在编程实现所需功能的时候,需运用数学知识,而且需考虑各种可能出现的情况。

因此,这次课程设计也提高了个人分析问题的能力。

经过这次独立地编写这个刀具半径补偿程序,使我对VB有了更为深刻认识.由于能力有限,本软件有一定的局限性,仿真不具有通用性,程序编写的过程中,有很多地方想的不周密而令到程序不是很严谨,请见谅!

今后我会继续努力,做得更好。

最后感谢高院长的指导,指导了我们这个课程设计,谢谢老师的辛苦劳动!

七参考文献

1《机床设计手册》第三分册

2廖效果.数字控制机床.武汉:

华中理工大学出版社.1992.9

3廖效果.数控技术.武汉:

湖北科学技术出版社.2000.7

4刘又午.数字控制机床.北京:

机械工业出版社

5龚浦泉.机床电气控制.重庆:

重庆大学出版社

6谭浩强.Basic语言结构化程序设计教程.北京:

中国科学技术出版社.1990

7杨林,李继良.VisualBasic编程高手.北京:

北京大学出版社.2000

八、附录(部分代码)

DimaxAsDouble,ayAsDouble,cxAsDouble,cyAsDouble,dxAsDouble,dyAsDouble,exAsDouble,eyAsDouble,rxAsDouble

DimryAsDouble,bxAsDouble,byAsDouble,a1AsDouble,a2AsDouble,a3AsDouble,a4AsDouble,c1AsInteger,c2AsInteger

Dimr1AsDouble,r2AsDouble,x1AsDouble,x2AsDouble,x3AsDouble,x4AsDouble,y1AsDouble,y2AsDouble,y3AsDouble

Dimy4AsDouble,dAsInteger,dbAsDouble,termAsInteger,l1AsDouble,l2AsDouble,w1AsDouble,w2AsDouble

Dimj11AsDouble,j1AsDouble,j2AsDouble,j3AsDouble,jjAsDouble,jjsAsDouble,jjs1AsDouble,hxAsDouble

DimhyAsDouble,kxAsDouble,kyAsDouble,fxAsDouble,fyAsDouble,pdAsDouble,jxAsDouble,jyAsDouble,jx1AsDouble

Dimjy1AsDouble,jx2AsDouble,jy2AsDouble,tana1AsDouble,tana2AsDouble,b1AsDouble,b2AsDouble,bj1AsDouble

Dimbj2AsDouble,kaAsInteger,kbAsInteger,kcAsInteger,kdAsInteger,weAsInteger,zzqxAsDouble,zzqyAsDouble,lxAsDouble

DimlyAsDouble,zyaAsDouble,zybAsDouble,zycAsDouble,rr1AsDouble,rr2AsDouble,aa1AsDouble,aa2AsDouble,kc1AsInteger

Dimkc2AsInteger,zjAsDouble,jxx1AsDouble,jxx2AsDouble,jyy1AsDouble,jyy2AsDouble,zzjAsDouble

.

.

.

.'当非加工角大于90度时

SelectCasep

Case12

rr1=r1+kc1*db

rr2=r2+kc2*db

q=(r1+db*kc1)*(r1+db*kc1)-(r2+db*kc2)*(r2+db*kc2)

w=rx-ex

e=q+w*w-ry*ry+ey*ey

a11=4*(ry-ey)*(ry-ey)+4*w*w

b11=4*e*(ry-ey)-8*w*w*ry

c11=e*e-4*w*w*(r1+kc1*db)*(r1+kc1*db)+4*w*w*ry*ry

Calljec(a11,b11,c11,jy1,jy2)

jy11=jy1

jy12=jy1

jy13=jy2

jy14=jy2

jx11=rx+Sqr((r1+kc1*db)*(r1+kc1*db)-(ry-jy1)*(ry-jy1))

jx12=rx-Sqr((r1+kc1*db)*(r1+kc1*db)-(ry-jy1)*(ry-jy1))

jx13=rx+Sqr((r1+kc1*db)*(r1+kc1*db)-(ry-jy2)*(ry-jy2))

jx14=rx-Sqr((r1+kc1*db)*(r1+kc1*db)-(ry-jy2)*(ry-jy2))

Callhuayuan(jx11,jy11,ex,ey,rr5,aa5)

Callhuayuan(jx12,jy12,ex,ey,rr6,aa6)

Callhuayuan(jx13,jy13,ex,ey,rr7,aa7)

Callhuayuan(jx14,jy14,ex,ey,rr8,aa8)

m=0

Ifrr5=rr2Then

jx1=jx11

jy1=jy11

aaa1=aa5

m=1

Else

Ifrr6=rr2Then

Ifm=0Then

jx1=jx12

jy1=jy12

aaa1=aa6

m=1

Else

jx2=jx12

jy2=jy12

aaa2=aa6

EndIf

Else

Ifrr7=rr2Then

Ifm=0Then

jx1=jx13

jy1=jy13

aaa1=aa7

m=1

Else

jx2=jx13

jy2=jy13

aaa2=aa7

EndIf

Else

Ifrr8=rr2Then

jx2=jx14

jy2=jy14

aaa2=aa6

EndIf

EndIf

EndIf

EndIf

If(a1-aaa1)*Sgn(a1-aaa1)<(a1-aaa2)*Sgn(a1-aaa2)Then

jx=jx1

jy=jy1

Else

jx=jx2

jy=jy2

EndIf

Callhuayuan(jx,jy,rx,ry,rr1,aa1)

Ifc1=0Then

Picture1.Circle(rx,ry),rr1,RGB(255,0,0),a1,aa1

Else

Picture1.Circle(rx,ry),rr1,RGB(255,0,0),aa1,a1

EndIf

Callhuayuan(jx,jy,ex,ey,rr2,aa2)

Ifc2=0Then

Picture1.Circle(ex,ey),rr2,RGB(255,0,0),aa2,a4

Else

Picture1.Circle(ex,ey),rr2,RGB(255,0,0),a4,aa2

EndIf

Case13

zj=pd/2+j1

Ifzj>8*Atn

(1)Then

zj=zj-8*Atn

(1)

EndIf

Ifzj<>0Andzj<>2*Atn

(1)Andzj<>4*Atn

(1)Andzj<>6*Atn

(1)Andzj<>8*Atn

(1)Then

b1=by-bx*Tan(zj)

axx=(1+Tan(zj)*Tan(zj))

bxx=(2*(b1-by)*Tan(zj)-2*bx)

cxx=bx*bx+(b1-by)*(b1-by)-db*db

Calljec(axx,bxx,cxx,jzx1,jzx2)

jzy1=jzx1*Tan(zj)+b1

jzy2=jzx2*Tan(zj)+b1

Callpp(jzx1,jzy1,jzx2,jzy2,rx,ry,jzxx,jzyy)

bzj=jzyy+jzxx/Tan(zj)

aax=(1+1/(Tan(zj)*Tan(zj)))

bbx=((-1)*2*(bzj-ry)/Tan(zj)-2*rx)

ccx=rx*rx+(bzj-ry)*(bzj-ry)-(r1+kc1*db)*(r1+kc1*db)

Calljec(aax,bbx,ccx,jx11,jx12)

jy11=(-1)*jx11/Tan(zj)+bzj

jy12=(-1)*jx12/Tan(zj)+bzj

Callpp(jx11,jy11,jx12,jy12,bx,by,jx1,jy1)

aaa=(1+1/(Tan(zj)*Tan(zj)))

bbb=((-1)*2*(bzj-ey)/Tan(zj)-2*ex)

ccc=ex*ex+(bzj-ey)*(bzj-ey)-(r2+kc2*db)*(r2+kc2*db)

Calljec(aaa,bbb,ccc,jx21,jx22)

jy21=(-1)*jx21/Tan(zj)+bzj

jy22=(-1)*jx22/Tan(zj)+bzj

Callpp(jx21,jy21,jx22,jy22,bx,by,jx2,jy2)

Callhuayuan(jx1,jy1,rx,ry,rr1,aa1)

Ifc1=0Then

Picture1.Circle(rx,ry),rr1,RGB(255,0,0),a1,aa1

Else

Picture1.Circle(rx,ry),rr1,RGB(255,0,0),aa1,a1

EndIf

Callhuayuan(jx2,jy2,ex,ey,rr2,aa2)

Ifc2=0Then

Picture1.Circle(ex,ey),rr2,RGB(255,0,0),aa2,a4

Else

Picture1.Circle(ex,ey),rr2,RGB(255,0,0),a4,aa2

EndIf

Picture1.Line(jx1,jy1)-(jx2,jy2),RGB(255,0,0)

EndIf

EndSelect

Case2

pd=8*Atn

(1)-pd

zj=j1-pd/2

Ifzj>8*Atn

(1)Then

zj=zj-8*Atn

(1)

EndIf

Ifpd>2*Atn

(1)Then

p=12

Else

p=

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2