例一://按"1"、"2"控制
#include"stdio.h"
#include"conio.h"
voiddelay(intx)
{inty;
while(x--)
for(y=0;y<125;y++)
{;}
}
voidpout(inti)
{
if(i==1)
{
printf("%c",26);
delay(1000000);
printf("\b%c",0);
}
if(i==2)
{
printf("\b%c",0);
printf("%c",27);
delay(1000000);
printf("\b%c\b\b",0);
}
}
intmain()
{
inta=1;
while(1)
{
if(kbhit())
{
a=getch()-48;
}
pout(a);
}
return0;
}
例二:猜一個1~到100的數
#include<iostream>
#include<cstdlib>
#include<ctime>
usingnamespacestd;
intmain()
{
srand(time(0));//生成隨機數生成器種子
inttheNumber=rand()%100+1;//1-100的隨機數
inttries=0,guess;
cout<<"\tWecometoGuessMyNumber\n\n";
do
{
cout<<"Enteraguess:";
cin>>guess;
++tries;
if(guess>theNumber)
cout<<"Toohigh!\n\n";
if(guess<theNumber)
cout<<"Toolow!\n\n";
}while(guess!=theNumber);
cout<<"\nThat'sit!Yougotitin"<<tries<<"guess!\n";
return0;
}
數控車床編程代碼如下:
M03 主軸正轉
M03 S1000 主軸以每分鐘1000的速度正轉
M04主軸逆轉
M05主軸停止
M10 M14 。M08 主軸切削液開
M11 M15主軸切削液停
M25 托盤上升
M85工件計數器加一個
M19主軸定位
M99 循環所以程式
G 代碼
G00快速定位
G01主軸直線切削
G02主軸順時針圓壺切削
G03主軸逆時針圓壺切削
G04 暫停
G04 X4 主軸暫停4秒
G10 資料預設
G28原點復歸
G28 U0W0 ;U軸和W軸復歸
G41 刀尖左側半徑補償
G42 刀尖右側半徑補償
G40 取消
G97 以轉速 進給
G98 以時間進給
G73 循環
G80取消循環 G10 00 數據設置 模態
G11 00 數據設置取消 模態
G17 16 XY平面選擇 模態
G18 16 ZX平面選擇 模態
G19 16 YZ平面選擇 模態
G20 06 英制 模態
G21 06 米制 模態
G22 09 行程檢查開關打開 模態
G23 09 行程檢查開關關閉 模態
G25 08 主軸速度波動檢查打開 模態
G26 08 主軸速度波動檢查關閉 模態
G27 00 參考點返回檢查 非模態
G28 00 參考點返回 非模態
數控G98編程指令格式
G98G__X__Y__Z__P__Q__R__F__K__說明該指令表示在G98后面的固定循環結束后直接返回起始平面,對應的是G99,在G99后面的固定循環結束后直接返回R平面。該指令為模態指令,在程序中指定后,直到G99被指定前,一直有效。G代碼分組功能
*G0001定位(快速移動)
*G0101直線插補(進給速度)
G0201順時針圓弧插補
G0301逆時針圓弧插補
G0400暫停,精確停止
G0900精確停止
*G1702選擇XY平面
G1802選擇ZX平面
G1902選擇YZ平面
G2700返回并檢查參考點
G2800返回參考點
G2900從參考點返回
G3000返回第二參考點
*G4007取消刀具半徑補償
G4107左側刀具半徑補償
G4207右側刀具半徑補償
G4308刀具長度補償+
G4408刀具長度補償-
*G4908取消刀具長度補償
G5200設置局部坐標系
G5300選擇機床坐標系
*G5414選用1號工件坐標系
G5514選用2號工件坐標系
G5614選用3號工件坐標系
G5714選用4號工件坐標系
G5814選用5號工件坐標系
G5914選用6號工件坐標系
G6000單一方向定位
G6115精確停止方式
*G6415切削方式
G6500宏程序調用
G6612模態宏程序調用
*G6712模態宏程序調用取消
G7309深孔鉆削固定循環
G7409反螺紋攻絲固定循環
G7609精鏜固定循環
*G8009取消固定循環
G8109鉆削固定循環
G8209鉆削固定循環
G8309深孔鉆削固定循環
G8409攻絲固定循環
G8509鏜削固定循環
G8609鏜削固定循環
G8709反鏜固定循環
G8809鏜削固定循環
G8909鏜削固定循環
*G9003絕對值指令方式
*G9103增量值指令方式
G9200工件零點設定
*G9810固定循環返回初始點
G9910固定循環返回R點
G代碼被分為了不同的組,這是由于大多數的G代碼是模態的,所謂模態G代碼,是指這些G代碼不只在當前的程序段中起作用,而且在以后的程序段中一直起作用,直到程序中出現另一個同組的G代碼為止,同組的模態G代碼控制同一個目標但起不同的作用,它們之間是不相容的。00組的G代碼是非模態的,這些G代碼只在它們所在的程序段中起作用。標有*號的G代碼是上電時的初始狀態。對于G01和G00、G90和G91上電時的初始狀態由參數決定。
如果程序中出現了未列在上表中的G代碼,CNC會顯示10號報警。
同一程序段中可以有幾個G代碼出現,但當兩個或兩個以上的同組G代碼出現時,最后出現的一個(同組的)G代碼有效。
在固定循環模態下,任何一個01組的G代碼都將使固定循環模態自動取消,成為G80模態。
1.3輔助功能
本機床用S代碼來對主軸轉速進行編程,用T代碼來進行選刀編程,其它可編程輔助功能由M代碼來實現,本機床可供用戶使用的M代碼列表如下
M代碼功能
M00程序停止
M01條件程序停止
M02程序結束
M03主軸正轉
M04主軸反轉
M05主軸停止
M06刀具交換
M08冷卻開
M09冷卻關
M18主軸定向解除
M19主軸定向
M29剛性攻絲
M30程序結束并返回程序頭
M98調用子程序
M99子程序結束返回/重復執行這是普通的指令編程,還有利用變量編制的程序,
統宏程序編程
一變量
普通加工程序直接用數值指定G代碼和移動距離;例如,GO1和X100.0。使用用戶宏程序時,數值可以直接指定或用變量指定。當用變量時,變量值可用程序或用MDI面板上的操作改變。
#1=#2+100
G01X#1F300
說明:
變量的表示
計算機允許使用變量名,用戶宏程序不行。變量用變量符號(#)和后面的變量號指定。
例如:#1
表達式可以用于指定變量號。此時,表達式必須封閉在括號中。
例如:#[#1+#2-12]
變量的類型
變量根據變量號可以分成四種類型
變量號
變量類型
功能
#0
空變量
該變量總是空,沒有值能賦給該變量.
#1-#33
局部變量
局部變量只能用在宏程序中存儲數據,例如,運算結果.當斷電時,局部變量被初始化為空.調用宏程序時,自變量對局部變量賦值,
#100-#199
#500-#999
公共變量
公共變量在不同的宏程序中的意義相同.當斷電時,變量#100-#199初始化為空.變量#500-#999的數據保存,即使斷電也不丟失.
#1000
系統變量
系統變量用于讀和寫CNC運行時各種數據的變化,例如,刀具的當前位置和補償值.
變量值的范圍
局部變量和公共變量可以有0值或下面范圍中的值:
-1047到-10-29或-10-2到-1047
如果計算結果超出有效范圍,則發出P/S報警NO.111.
小數點的省略
當在程序中定義變量值時,小數點可以省略。
例:當定義#1=123;變量#1的實際值是123.000。
變量的引用
為在程序中使用變量值,指定后跟變量號的地址。當用表達式指定變量時,要把表達式放在括號中。
例如:G01X[#1+#2]F#3;
被引用變量的值根據地址的最小設定單位自動地舍入。
例如:
當G00X#/;以1/1000mm的單位執行時,CNC把123456賦值給變量#1,實際指令值為G00X12346.
改變引用變量的值的符號,要把負號(-)放在#的前面。
例如:G00X-#1
當引用未定義的變量時,變量及地址都被忽略。
例如:當變量#1的值是0,并且變量#2的值是空時,G00X#1Y#2的執行結果為G00X0。
雙軌跡(雙軌跡控制)的公共變量
對雙軌跡控制,系統為每一軌跡都提供了單獨的宏變量,但是,根據參數N0.6036和6037的設定,某些公共變量可同時用于兩個軌跡。
未定義的變量
當變量值未定義時,這樣的變量成為空變量。變量#0總是空變量。它不能寫,只能讀。
引用
當引用一個未定義的變量時,地址本身也被忽略。
當#1=
當#1=0
G90X100Y#1
G90X100
G90X100Y#1
G90X100Y0
(b)運算
除了用賦值以外,其余情況下與0相同。
當#1=時
當#1=0時
#2=#1
#2=
#2=#1
#2=0
#2=#*5
#2=0
#2=#*5
#2=0
#2=#1+#1
#2=0
#2=#1+#1
#2=0
(c)條件表達式
EQ和NE中的不同于0。
當#1=時
當#1=0時
#1EQ#0成立
#1EQ#0不成立
#1NE#0成立
#1NE#0不成立
#1GE#0成立
#1GE#0不成立
#1GT#0不成立
#1GT#0不成立
限制
程序號,順序號和任選程序段跳轉號不能使用變量。
例:下面情況不能使用變量:
0#1;
/#2G00X100.0;
N#3Y200.0;
二算術和邏輯運算
下面表中列出的運算可以在變量中執行。運算符右邊的表達式可包含常量和或由函數或運算符組成的變量。表達式中的變量#j和#k可以用常數賦值。左邊的變量也可以用表達式賦值。
說明:
角度單位
函數SIN,COS,ASIN,ACOS,TAN和ATAN的角度單位是度。如90°30'表示為90.5度。
ARCSIN#i=ASIN[#j]
(1)取值范圍如下:
當參數(NO.6004#0)NAT位設為0時,270°~90°
當參數(NO.6004#0)NAT位設為1時,-90°~90°
(2)當#j超出-1到1的范圍時,發出P/S報警NO.111.
(3)常數可替代變量#j
ARCCOS#i=ACOS[#j]取值范圍從180°~0°當#j超出-1到1的范圍時,發出P/S報警NO.111.常數可替代變量#j
三程序舉例
銑橢圓:
軌跡:
橢圓程序代碼如下:
N10G54G90G0S1500M03
N12X0Y0Z20.
N14G0Z1
N16G1Z-5.F150.
N18G41D1
N20#1=0
N22#2=34
N24#3=24
N26#4=#2*COS[#1]
N28#5=#3*SIN[#1]
N30#10=#4*COS[45]-#5*SIN[45]
N32#11=#4*SIN[45]+#5*COS[45]
N34G1X#10Y#11
N36#1=#1+1
N38IF[#1LT370]GOTO26
N40G40G1X0Y0
N42G0Z100
N44M30
銑矩形槽:
銑矩形槽代碼如下:
#102=0.
N3#100=0.
#101=0.
#103=200.
#104=400.
G91G28Z0.
G0G90G54X0.Y0.
G43H1Z20.
M3S2000.
N4G0X#100Y#101
G01Z#102F200.
#102=#102-2.
IF[#102EQ-50.]GOTO1
GOTO2
N2
N4X#104F500.
Y#103
X#100
Y#101
#100=#100+10.
#101=#101+10.
#103=#103-10.
#104=#104-10.
IF[#100EQ100.]GOTO3
GOTO4
N3
N1
M5
M9
G91G28Z0.
G28Y0.
M30
銑傾斜3度的面:
軌跡:
銑傾斜3度的面的代碼如下:
O0001
#[#1+1*2]=1
G65P9012L1A0B0.1C4I100J3K0
M30
宏程序O9012代碼如下:
G54G90G00X[#3]Y0Z100
S500M3
G01Z0F300
WHILE[#1LE10]DO1
#7=#1/TAN[#5]+#3
G1Z-#1X#7
#8=#6/2-ROUND[#6/2]
IF[#8EQ0]GOTO10
G1Y0
GOTO20
N10Y#4
N20#1=#1+#2
#6=#6+1
END1
G0
Z100
銑半球:
軌跡:
銑半球代碼如下:
G90G0G54X-10.Y0M3S4500
G43Z50.H1M8
#1=0.5
WHILE[#1LE50.]DO1
#2=50.-#1
#3=SQRT[2500.-[#2*#2]]
G1Z-#1F20
X-#3F500
G2I#3
#1=#1+0.5
END1
G0Z50.M5
M30
銑喇叭:
銑喇叭代碼如下:
M03S500
M06T01
#1=0
#2=0
G0Z15
X150Y0
N11
#2=30*SIN[#1]
#3=30+30*[1-COS[#1]]
G01Z-#2F40
G41X#3D01
G03I-#3
G40G01X150Y0
#1=#1+1
IF[#1LE90]GOTO11
G0Z30
M30