⑴ 請問,操作加工中心必須要學習手編程和GM代碼嗎
那要看具體的情況了,如果只是做一個普工的話,大可以不必學,別人給了程式調試好你只要裝夾工件按啟動就可以了,如果是做技術性強的工作如製作樣品或要獨立操作的話,那就必須要知道手編程,熟悉各個G、M令並能應用!
⑵ 如何用C語言編程 掃雷!~
俄羅斯方快http://topic.csdn.net/t/20051201/01/4429905.html
掃雷
#include<stdio.h>
#include<graphics.h>
#include<stdlib.h>
struct list
{
int x;
int y;
int num;
int bomb;
int wa;
};
struct list di[10][10];
int currentx=210;
int currenty=130;
void initxy(void)
{
int i,j;
for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
{
di[j].x=i*20+200;
di[j].y=j*20+120;
di[j].wa=0;
di[j].bomb=0;
}
}
void initmu(void)
{
int i,j;
setcolor(2);
rectangle(200,120,400,320);
rectangle(190,110,410,330);
setfillstyle(8,14);
floodfill(191,111,2);
for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
rectangle(di[j].x,di[j].y,di[j].x+19,di[j].y+19);
outtextxy(450,200,"press 'enter' to kick");
outtextxy(450,250,"press '\' to mark");
}
void randbomb(void)
{
int k;
int i,j;
randomize();
for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
{
k=random(5);
if(k==2)
di[j].bomb=1;
}
}
void jisuan(void)
{
int k=0;
int i,j;
for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
{
if(i&&j&&di[i-1][j-1].bomb)
k=k+1;
if(i&&di[i-1][j].bomb)
k=k+1;
if(j&&di[j-1].bomb)
k=k+1;
if(i<=8&&di[i+1][j].bomb)
k=k+1;
if(j<=8&&di[j+1].bomb)
k=k+1;
if(i<=8&&j<=8&&di[i+1][j+1].bomb)
k=k+1;
if(i&&j<=8&&di[i-1][j+1].bomb)
k=k+1;
if(i<=8&&j&&di[i+1][j-1].bomb)
k=k+1;
di[j].num=k;
k=0;
}
}
void xianbomb(void)
{
int i,j;
char biaoji[2];
char znum[2];
biaoji[0]=1;
biaoji[1]=NULL;
for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
{
if(di[j].bomb==1)
outtextxy(di[j].x+2,di[j].y+2,biaoji);
else
{
itoa(di[j].num,znum,10);
setfillstyle(1,0);
bar(i*20+202,j*20+122,i*20+218,j*20+138);
outtextxy(i*20+202,j*20+122,znum);
}
}
}
void move(void)
{
int key;
key=bioskey(1);
if(key)
key=bioskey(0);
if(key==0x4800)
{
if(currenty>130)
{
setcolor(0);
circle(currentx,currenty,5);
currenty-=20;
setcolor(4);
circle(currentx,currenty,5);
}
else
{
setcolor(0);
circle(currentx,currenty,5);
currenty=310;
setcolor(4);
circle(currentx,currenty,5);
}
}
if(key==0x4b00)
{
if(currentx>210)
{
setcolor(0);
circle(currentx,currenty,5);
currentx-=20;
setcolor(4);
circle(currentx,currenty,5);
}
else
{
setcolor(0);
circle(currentx,currenty,5);
currentx=390;
setcolor(4);
circle(currentx,currenty,5);
}
}
if(key==0x4d00)
{
if(currentx<390)
{
setcolor(0);
circle(currentx,currenty,5);
currentx+=20;
setcolor(4);
circle(currentx,currenty,5);
}
else
{
setcolor(0);
circle(currentx,currenty,5);
currentx=210;
setcolor(4);
circle(currentx,currenty,5);
}
}
if(key==0x5000)
{
if(currenty<310)
{
setcolor(0);
circle(currentx,currenty,5);
currenty+=20;
setcolor(4);
circle(currentx,currenty,5);
}
else
{
setcolor(0);
circle(currentx,currenty,5);
currenty=130;
setcolor(4);
circle(currentx,currenty,5);
}
}
if(key==0x1c0d)
{
int i,j;
char snum[2];
snum[0]=NULL;
snum[1]=NULL;
i=(currentx-210)/20;
j=(currenty-130)/20;
if(di[j].bomb==1)
{
outtextxy(100,100,"game over");
xianbomb();
sleep(2);
exit(0);
}
if(di[j].bomb==0)
{
di[j].wa=1;
setfillstyle(1,0);
bar(currentx-8,currenty-8,currentx+8,currenty+8);
setcolor(15);
itoa(di[j].num,snum,10);
outtextxy(currentx-8,currenty-8,snum);
setcolor(4);
circle(currentx,currenty,5);
}
}
if(key==0x2b5c)
{
char biaoji[2];
biaoji[0]=1;
biaoji[1]=NULL;
setcolor(0);
bar(currentx-8,currenty-8,currentx+8,currenty+8);
setcolor(4);
outtextxy(currentx-8,currenty-8,biaoji);
circle(currentx,currenty,5);
}
}
void success(void)
{
int k=1;
int i,j;
for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
if(di[j].bomb==0&&di[j].wa==0)
k=0;
if(k==1)
{
outtextxy(100,100,"success good");
xianbomb();
sleep(2);
exit(0);
}
}
void main(void)
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"");
initxy();
initmu();
randbomb();
jisuan();
setcolor(4);
circle(210,130,5);
while(1)
{
move();
success();
}
}
⑶ 用matlab編程灰色預測模型(1,1)
定義函數:
function pre = GM11(x)
%x,建模數據序列x = [x(1),x(2),...,x(n)]
% pre,由GM11模型得到的預測值,即由x估計出的x(n+1)
n = length(x);
x1 = cumsum(x);
z1 = (x1(1:n-1)+x1(2:n))/2;
Y = x(2:length(x))';
B = [-z1',ones(n-1,1)];
A = (B'*B)\B'*Y;%GM(1,1)模型的a,b參數組成的向量.
beta = A(2)/(1+.5*A(1));
alpha = A(1)/(1+.5*A(1));
%初始序列x0(k)模擬後的隨時間t變化的序列
f = @(t)(beta-(alpha)*x(1))*exp(-(A(1)*(t-2)));
pre = f(n+1);
調用
x=[1879 2208 2948 2852 2774 2926 4680 3691];
GM11(x)
⑷ 數控編程代碼
CNC編程代碼很多 說些實用常見的吧 如G00快速定位
G01直線切削
G02順時針方向圓弧切削
G03逆時針方向圓弧切削
G04暫停指令 (有的系統為延時)
G09正確停止檢測
G10補正設定
G12順時針方向圓周切削
G13逆時針方向圓周切削
G15極座標系統取消
G16極座標系統設定
G17XY平面設定
G18XZ平面設定
G19YZ平面設定
G20英制單位設定
G21公制單位設定
G22軟體極限設定
G23軟體極限設定取消
G27機械原點復歸檢測
G28自動經中間點復歸機械原點
G29自動從參考點復歸
G30自動復歸到第二原點
G40刀具半徑補正取消
G41刀具半徑偏左補正
G42刀具半徑偏右補正
G43刀具長度沿正向補正
G44刀具長度沿負向補正
G49刀具長度補正取消
G45刀具位置補正增加
G46刀具位置補正減少
G47刀具位置補正兩倍增加
G48刀具位置補正兩倍減少
G50比例功能取消OFF
G51比例功能設定ON
G52回復到基本座標系統
G53回復到機械座標系統
G54第一工件座標系統
G55第二工件座標系統
G56第三工件座標系統
G57第四工件座標系統
G58第五工件座標系統
G59第六工件座標系統
G60 外部補正
G70圓周等分段 循環
G71圓周分段 循環
G72直線分段 循環
G73高速喙鑽循環
G74左旋牙切削循環G76精搪孔循環
G77反面搪孔循環
G80固定循環取消
G81鑽孔循環
G82沉頭孔加工循環
G83啄鑽循環
G84右旋牙切削循環
G85搪孔循環
G86搪孔循環
G87搪孔循環
G88搪孔循環
G89搪孔循環
G90絕對指令座標值設定
G91增量指令座標值設定
G92絕對程式零點設定
G94每分鍾進給量設定mm/min
G95每轉進給給設定mm/rev
G98固定循環,刀具復歸到起始點
G99固定循環,刀具復歸到R點 M03主軸正轉
M04主軸逆時針旋轉 (通常不會用到反轉)
M05主軸停止
M06刀具交換
M07霧化冷卻液開啟
M08冷卻液開啟
M09冷卻液關啟
M10工作台(B軸)鎖住
M11工作台(B軸)松開
M13主軸順時針轉動及加切削液
M14主軸逆時針轉動及加切削液
M15正方向運動
M16負方向運動
M19主軸定位
M30程式結束記憶體回歸 M98子程序調用m99子程序取消 如上面的你都看懂了 那就真正起到作用了 望能幫到您!