㈠ 数控编程的实例!
数控机床编程实例
作者: 来源:
--------------------------------------------------------------------------------
常用的圆弧编程指令是G2和G3,使用时必须编入圆弧起点坐标,终点坐标、圆弧半径或中心坐标,可处理各种类型的圆弧编程。西门子810D/840D系统中的CT和RND指令也可以生成精确的圆弧轨迹,在加工轮廓中出现用圆弧与其他直线或圆弧相切连接的轨迹时,灵活运用CT和RND指令进行圆弧编程比使用G2和G3指令方便得多:
--------------------------------------------------------------------------------
一、两种特殊的圆弧编程指令:CT和RND
常用的圆弧编程指令是G2和G3,使用时必须编入圆弧起点坐标,终点坐标、圆弧半径或中心坐标,可处理各种类型的圆弧编程。西门子810D/840D系统中的CT和RND指令也可以生成精确的圆弧轨迹,在加工轮廓中出现用圆弧与其他直线或圆弧相切连接的轨迹时,灵活运用CT和RND指令进行圆弧编程比使用G2和G3指令方便得多:
1、RND指令处理轮廓拐点的圆弧过渡
RND指令的含义:轮廓拐点处用指定半径的圆弧过渡处理,并且和相关的直线或圆弧相切连接,数控系统自动运算各个切点的坐标。
参照图1 加工内容为底边外的其余轮廓,所用程序如下。
N005 G54 G90 G0 Z100 T1 D1
N010 X-70 Y-50
N015 M03 S1000 F500 Z-10
N020 G41 Y-20
N025 G1 Y70 RND=5
N030 G1 X-40 RND=5
N035 G3 ×0 CR=20 RND=5
N040 G3 ×40 CR=20 RND=5
N045 G1×70 RND=5
N050 G1 Y-30
N055 M30
程序中用RND=5的格式表示轮廓拐点处用半径R5的圆弧过渡处理,并与相关的直线或圆弧相切连接,数控系统自动运算各个切点的坐标,程序中不需写入切点的坐标。而用G2和G3指令编写各处R5圆弧就必须计算各个切点的坐标(共10个点),还多了五条程序。
2、CT指令完成直线和圆弧或圆弧和圆相切边接
CT指令的含义是:经过一段直线或圆弧的结束点P1和另一个指定点P2生成一段圆弧并且和前面的直线或圆弧在P1点处相切,数控系统自动运算圆弧半径CT指令是模态的。
参照图2 加工内容为底边外的其余轮廓,所用程序如下:
N005 G54 G90 G0 Z100 T1 D1
N010 X-90 Y-120
N015 M03 S1000 F500Z-10
N020 G41Y-100
N025 G1 Y20
N030 X-60
N040 Yo
N045 CT X-20(第一个R20圆弧)
N050 X20(第二个R20圆弧)
N055 X60(第三个R20圆弧)
N060 G1 Y20
N065 G1×90
N070 Y-100
N075 M30
用CT在编制程序时只需输入切点坐标而不用写入圆弧半径,也不用判断圆弧的方向,在直线和圆弧或多段圆弧相切连接的轮廓编程时使用非常方便。
3、CT和RND指令在极坐标系中的应用
在极坐标系中用G2和G3指令编程时有一个限制,极点必须设定在所编程圆弧的中心。而用CT和RND指令就很好地克服了这一障碍。
(1)RND指令在极坐标系中的应用
参照图3在数控铣床加工4个30度的V型槽,以90度位置的V型槽为例程序如下。
N005 G54 G0 T1 D1 Z100
N010 G111 Xo YO
N015 AP=90-15 RP=110
N020 M03 S1000 F500 Z10
N025 G42 RP=100
N030 G1 RP=0 RND=10
N035 G1 RP=100
N040 M30
(2)CT指令在极坐标系中的应用。
参照图4 加工上部的3段圆弧和2段直线相切连接的部位,程序如下。
N005 G54 G90 Go Z100 T1 D1
N010 G111 XO YO
N015 AP=90-36-18 RP=150
N020 M03 S1000 F500 Z-10
N025 G42 RP=130
N030 G1 RP=142.66/2
N035 CT AP=90-18
N040 AP=90+18
N045 AP=90+18+36
N050 G1 RP=150
N055 M30
图3和图4 这两种类型的工件加工部位使用算术坐标系编程数据处理比较麻烦,在极坐标系中用G2和G3指令编程圆弧时极点必须设定在所编圆弧的中心,需要一些计算工作,而使用RND和CT指令编程圆弧时,极点就不必设定在所编圆弧的中心,极点可以设定在任意的方便数据处理的位置。图3和图4 这两种类型的工件加工部位在编程时使用极坐标且极点设定在工件中心最为方便。
二、特殊刀具补偿方法在加工扇形段导入板中的应用
1、一般的刀具补偿方法
参照图5 ,在数控铣上用40mm立铣刀加工60H7的槽,按照槽的边界线进行编程,使用的程序如下。
N005 G54 G90 Go Z100 T1 D1
N010 X-150 YO
N020 M03 S300 F100 Z30
N025 G42 Y30
N030 G1×150
N035 Y-30
N040 X-150
N050 M30
实际加工中要经过粗加工、半精加工和精加工运行三次程序,对应的半径补偿值先大后小分别是22mm,20.5mm,20mm(理念值,最终的半径补偿值要经过实际测量确定)。
2、特殊的刀具补偿方法
参照图5,在数控铣床上40mm立铣刀加工60H7的槽,按照中心线进行编程,使用的程序如下。
N005 G54 G90 GO Z100 T1 D1
N010 X-150 YO
N020 M03 S300 F100 Z30
N025 G42 X-140
N030 G1 X150
N035 GO Z100
N040 G40 X-150
N050 Z30
N055 G41 X-140
N060 G1 X150
N065 GO Z100
N070 M30
实际加工中要经过粗加工、半精加工和精加工运行三次程序,对应的半径补偿先小后大分别是8mm、9.5mm,10mm(理论值,最终的半径补偿值要经过实际测量后确定),最终的半径补偿理论值=槽的宽度/2-刀具半径。在程序中分别用G41和G42激活两次刀补,增加了一次空行程,这种使用刀具半径补偿的方式在加工一般类型的工件时显得很麻烦,但是在加工特定类型的工件时使用这种方法就会使编程工作变得非常简单。
3、在加工扇形段导入板中的应用
在一些比较特殊槽体的加工中,图纸中只标注槽的宽度、深度和中心线的形状尺寸,针对这一类型的工件,按照中心线进行编程,加工中应用特殊的刀具补偿方法。
参照图6,这是我公司薄板厂连铸设备中使用的扇形段导入板,它是扇形段导入装置中的关键零件。用Tk6920数控锉铣床的加工七条128×44mm导入槽。该工件的七条导入槽是由多段圆弧和直线相切连接构成,图纸中只标注了槽的宽度、深度和中心线的形状尺寸,以上部第一个导入槽为例说明特殊的刀具补偿使用方法,按照中心线进行编程。
程序名称:CA01
程序内容:N5 G54 G90 G64 GO Wo Z150 T1 D1(调用第一个刀号)
N10 G111 XO YO
N15 X=-1804-100 Y=464.424
N20 M04 S250 F200 Z-44
N25 G41 X=IC(50)(激活刀补开始加工槽体的上边界)
N30 G1 X=-1804+920.617
N35 CT AP=90-16.03 RP=1499.5
N40 G1 AP=90-16.03 RP=1499.5+100
N45 GO G40 X=IC(100)Z150
N50 X=-1804-100 Y=464.424 T1 D2(调用第二个刀号)
N55 G42 X=IC(50)(激活刀补开始加工槽体的下边界)
N60 G1 X=-1804+920.617
N65 CT AP=90-16.03 RP=1499.5
N70 G1 AP90-16.03 RP=1499.5+100
N75 GO G40 X=IC(100)Z150
N80 M30
槽的宽度和中心线不对称,程序中用了两个刀号,加工槽体的上边界时用D1,加工槽体的下边界是时用D2,实际加工中用50mm铣刀要经过粗加工、半精加工和精加工运行三次程序,对应的半径补偿值先小后大分别是D1=100mm,12mm,12.5mm,D2=13mm,15mm,15.5mm.
如果使用一般的刀具补偿使用方法,按照槽的边界线进行编程,就要计算槽的边界线中各段圆弧和直线切点的坐标以及各段圆弧的半径,计算量是非常大的。而按照中心线进行编程就可直接使用力纸上标注的尺寸,避免了大量、繁琐的数据计算工作,保证了程序中所用数据的准确性,极大的提高了编程效率。
其方法有两个特殊:(1)按照中心线进行编程而不是按照真实的加工边界线进行编程。(2)刀具补偿值按照粗加工、半精加工和精加工的顺序逐渐加大,理论补偿值二加工的边界到中心线的距离--刀具半径。优点是直接使用图纸上标注的尺寸进行编程,保证了程序中所用数据的准确性,不需进行大量繁琐的数据计算工作。
㈡ 求加工中心编程实例
1、根据图纸要求,确定工艺方案及加工路线
(1)以底面为定位基准,两侧用压板压紧,固定于铣床工作台上
(2)工步顺序
钻孔φ20㎜、按O’ABCDEFG线路铣削轮廓。
2、选用经济型数控铣床,华中Ⅰ型(XZK7532型)数控铣钻床。
3、选择刀具
现采用φ20㎜的钻头,钻削φ20㎜孔;φ4㎜的平底立铣刀用于轮廓的铣削,并把该刀具的直径输入刀具参数表中。由于华中Ⅰ型数控铣钻床没有自动换刀功能,钻孔完成后,直接手工换刀。
4、确定切削用量
切削用量的具体数值应根据该机床性能、相关的手册并结合实际经验确定,详见加工程序。
5、确定工件坐标系和对刀点
在XOY平面内确定以0点为工件原点,Z方向以工件表面为工件原点,建立工件坐标系,如上图所示。采用手动对刀方法把0点作为对刀点。
1、加工φ20㎜孔程序(手工安装好φ20㎜钻头)%7528
G54G91M03;相对坐标编程
G00X40Y30;在XOY平面内加工
G98G81X40Y30Z-5R15F120;钻孔循环
G00X5Y5Z50
M05
M02
2、铣轮廓程序(手工安装好ф4㎜立铣刀)%7529
G54G90G41G00X-20Y-10Z-5D01
G01X5Y-10F150
G01Y35
G91G01X10Y10
G01X11.8Y0
G02X30.5Y-5R20
G03X17.3Y-10R20
G01X10.4Y0
G01X0Y-25
G01X-100Y0
G90G40G00X0Y0Z100
M05 M02
(2)编程案例扩展阅读:
十字槽粗加工程序
O0001;
G90 G40 G21 G17 G94;
G91 G28 Z0;
G90 G54 M3 S480;
G00 X30.0 Y0;
Z5.0 M08;
G01 Z-4.0 F40;
X-30.0 F60;
Z-8.0 F40;
X30.0 F60;
G00 Z5.0;
X0 Y25.0;
G01 Z-4.0 F40;
Y-25.0;
Z-8.0 F40;
Y25.0 F60;
G00 Z5.0 M09;
G91 G28 Z0;
M30
㈢ C语言的经典编程例子
//最经典的当然是HelloWorld了。
#include"stdio.h"
intmain(void)
{
printf("HelloWorld! ");
}
㈣ 数据编程实例
问这个问题说明你对数据库的概念还不太了解,这是最基本的概念。
数据库是什么?数据库是一个逻辑上的概念,简单的说就是相互关联的一会数据。而对应到实际的物理概念上,就是磁盘上的一个或者一堆文件,里边包含着数据。但是光有数据不行,数据库有很多功能,比如可以接受用户连接,给用户提供数据,这样就需要有“程序”。所以说关闭状态的数据库,就是磁盘上的程序文件,加上数据文件。
想要使用数据库,就要把它打开,让上边说的“程序”运行起来。实例就是指计算机内存中处于运行状态的数据库程序,以及为这些程序分配的一些内存空间。实例是位于内存中的,只在数据库处于运行状态时才存在。实例负责实现给用户提供网络连接、读写数据文件等等各种功能。
不同的数据库产品有些不同,Oracle中一个实例只能连接一个逻辑上的“数据库”,甚至是不同机器上运行着的不同实例同时连接一个数据库(RAC)。SQL Server和My SQL中的“实例”则比较独立,可以随时打开或者关闭某一个数据库。
㈤ java经典编程案例有哪些
java编程的记事本:
import java.util.*;
public class JieChengExample
{
public static void main(String args[])
{
Scanner input=new Scanner(System.in);
int n,sum;
Jiecheng jie=new Jiecheng();
System.out.print("输入n的值:");//输入有几个阶乘相加
n=input.nextInt();
sum=0;
for(int i=1;i<=n;i++)
{
sum=sum+jie.jiecheng(i);//这是n个阶乘相加
}
System.out.println("1!+2!+3!+....+n!的和是:"+sum);
}
}
class Jiecheng
{
public int jiecheng(int temp)//算阶乘的方法
{
int sum=1;
for(int i=1;i<=temp;i++)
{
sum=sum*i; //计算阶乘
}
return sum;//将一个阶乘返回
}
}
2.java赛马游戏:
import java.util.Random;
public class Test {
public static void main(String[] args) {
Competition c = new Competition();
Thread T = new Thread(c);
T.start();
}
}
class Competition implements Runnable{
int red = 0;
int green = 0;
int Speed [] = new int [2];
Competition(){
}
public void run(){
Random r = new Random();
for(int a= 0;a<500;a++){
for(int j = 0;j<2;j++){
Speed[j] = r.nextInt(2);
red = red + Speed[j];
Speed[j] = r.nextInt(2);
green = green + Speed[j];
}
System.out.println("red的速度为"+red);
System.out.println("green的速度为"+green);
while(red >=500 || green>=500){
if(red >=500){
System.out.println("red先抵达终点线");
}
if(green >= 500){
System.out.println("green先抵达终点线");
}
if(green ==500 && red ==500 ){
System.out.println("两个同时到达");
}
return;
}
}
/* if(red >green){
System.out.println("Redwin"+red);
}
if(red<green){
S...import java.util.Random;
public class Test {
public static void main(String[] args) {
Competition c = new Competition();
Thread T = new Thread(c);
T.start();
}
}
class Competition implements Runnable{
int red = 0;
int green = 0;
int Speed [] = new int [2];
Competition(){
}
public void run(){
Random r = new Random();
for(int a= 0;a<500;a++){
for(int j = 0;j<2;j++){
Speed[j] = r.nextInt(2);
red = red + Speed[j];
Speed[j] = r.nextInt(2);
green = green + Speed[j];
}
System.out.println("red的速度为"+red);
System.out.println("green的速度为"+green);
while(red >=500 || green>=500){
if(red >=500){
System.out.println("red先抵达终点线");
}
if(green >= 500){
System.out.println("green先抵达终点线");
}
if(green ==500 && red ==500 ){
System.out.println("两个同时到达");
}
return;
}
}
/* if(red >green){
System.out.println("Redwin"+red);
}
if(red<green){
System.out.println("Greenwin"+green);
}
if(red == green){
System.out.println("equal");*/
JAVA的介绍:
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
㈥ vb编程实例
Static s As Integer s 是静态变量,过程结束后,数据依然存在,且值保持原来不变
一开始s=0
m(1),走入Function,时,n=1 ,循环一次(加上一个1),s=1,m(1)=1
m(2),走入Function,时,s=1(值保持原来1不变),n=2 ,循环2次(加上2个1),s=3,m(2)=3
m(3),走入Function,时,s=3(值保持原来3不变),,n=3 ,循环3次(加上3个1),s=6,m(3)=6
m(1)+m(2)+m(3)=1+3+6=10
㈦ c语言编程实例
#include <stdio.h>
struct worker
{
int bh;
char xm[10];
float jbgz;
float jj;
float bx;
float sfgz;
};
void main()
{
int i;
worker gr[50];
for(i=0;i<50;i++)
{
printf("--------------------------\n");
printf("请输入第 %d 个人的人信息:\n",i+1);
printf("--------------------------\n");
printf("编号:");
scanf("%d",&gr[i].bh);
printf("姓名:");
scanf("%s",&gr[i].xm);
printf("基本工资:");
scanf("%f",&gr[i].jbgz);
printf("奖金:");
scanf("%f",&gr[i].jj);
printf("保险:");
scanf("%f",&gr[i].bx);
gr[i].sfgz=gr[i].jbgz+gr[i].jj+gr[i].bx;
}
for(i=0;i<50;i++)
{
printf("--------------------------\n");
printf("第 %d 个人的信息:\n",i+1);
printf("--------------------------\n");
printf("编号:%d\n",gr[i].bh);
printf("姓名:%s\n",gr[i].xm);
printf("基本工资:%.2f\n",gr[i].jbgz);
printf("奖金:%.2f\n",gr[i].jj);
printf("保险:%.2f\n",gr[i].bx);
printf("实发工资:%.2f\n",gr[i].sfgz);
}
}
㈧ C语言编程实例
首先main中对x进行赋值,是12345678这个无符号长整形数,然后传到part()函数中,结构体那部分不用考虑,其它地方也没有对num进行更改,不会对内容有影响,所以输出结果为12345678;
然后p=&n把n的地址赋给指针p,n.w=num把12345678赋给w,此时结构体n的地址其实就是12345678所在的地址,p指向n,同时结构体*p中的数组part的初始地址也在p上,也就是说p指向的数组part于n.w的首地址是相同的;
看你的输出结果,你的C中int和long应该都是32位吧,所以输出part[0]就是输出part地址上的前32位,即num,part[1]上都是空的,什么也没有,所以就是8个C;
PS:我想这个程序的意义是把long型整数进行拆分,分别输出高低位两部分,但是你的C中的int和long都是32位,所以没成功吧
呵呵,也不知道说的对不,C很久没用了
㈨ 能举个实例编程吗
电脑是死的,如果没有指令,它就不会有动作。编程就是指令,有高级指令,低级指令;高级指令调用低级指令,低级指令调用机器做工作。而高级指令就是人来编写,编来编去我们就发现编程还是有意思的,因为有的人编的好,机器运行的快,有的人编的差,机器运行的慢,还出差错。软件就是一大堆指令集一同协作完全一些功能。比如把文字显示在显示器上;也比如在网络上搜索所有和SEX有关的内容,都是一系列软件完成。所以有很多的人从事编程,就像编花编书编故事一样,越编越复杂,越编越多。比较复杂的就是编个操作系统,一个人是不可能编出来的,因为指令太多。总的说来编程就是告诉电脑做什么动作。把我们想做的事情,用电脑可以理解的语言表达出来。就像你现在只会中文,你得学一门外语,让外国人听懂你要表达的内容。编程也有很多语言,做视窗用C系列,做网页用JAVA script, 数据库用SQL;这就像在什么国度用什么语言一样,当然只是打个比方,希望你看得愉快一点。