㈠ 數控編程的實例!
數控機床編程實例
作者: 來源:
--------------------------------------------------------------------------------
常用的圓弧編程指令是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;這就像在什麼國度用什麼語言一樣,當然只是打個比方,希望你看得愉快一點。