求数控编程高手编个简单的程序,铣一个正方形出来,边长是40*40,求整个程序的流程。不用太复杂,我是新手

求数控编程高手编个简单的程序,铣一个正方形出来,边长是40*40,求整个程序的流程。不用太复杂,我是新手,第1张

==============================

假设程序号为001,

TI刀具双刃立铣刀直径为16,

T2钻头,

正方形深度为10,

T1长补号为H1,半径补偿号为D2,

T2长补号为H2

==============================

O001;(程序号)

G0 G90 G54 G17;(工件坐标系G54,选择XY平面)

G40 G80;(取消径补,取消循环)

N01;(程序段,方便区分与呼叫)

G0 G91 G30 X0 Y0 Z0;(换刀点)

T1;(选刀)

M6;(换刀)

S1200 M3;(转速+正转)

G0 X-15 Y15;(安全点)

G43 Z-10 H1;(快速下刀到加工深度)

M8;(冷却液开)

G1 G41 X0 Y0 D2 F50;(G1到第一点)

X40;(第二点)

Y-40;(第三点)

X0;(第四点)

Y0;(回到第一点)

G0 G40 X-15 Y15;(取消半径补偿并快速回到安全点)

G0 Z100;(提刀)

N02;

G0 G91 G30 X0 Y0 Z0;(换刀点)

T2;(选刀)

M6;(换刀)

S1200 M3;

G0 X20 Y-20;

G43 Z1 H2;

M8;(冷却液开)

G99 G81 Z-10 R1 F80;(钻孔)

G0 G80 Z100;(取消循环并提刀)

M9;(冷却液关)

M30;(结束)

准备材料

windows电脑、VC++(DEV_C++)

1打开桌面上的DEV_C++,进入如下界面:

2快捷键“CTRL+N”建立新源代码。

3输入源代码,下面给出最简单的Hello,world源代码:

#include <stdioh>

int main( ){

printf("Hello,World\n");

return 0;

}

4按下F11编译并且运行源代码,得到运行结果:

5点击任意键返回源代码编辑界面可以继续进行开发,接下来就是C语言语法的学习了。

这种运算比较麻烦,不过4种运算符号优先级相同应该简单写,我这里有个算法,能进行简单的四则运算,delphi的,供参考

Function Math_Evaluate(S0:string):Extended;

Function Evaluate(S0:String):Extended;Forward;

Procedure CleanUp(var s0:string);

Var

I:integer;

Begin

S0:=LowerCase(s0);

I:=Pos(' ',s0);

While I>0 Do

Begin

Delete(S0,I,1);

I:=Pos(' ',S0);

End;

End;

Function GetFirstOpp(Tot:Integer;S0:String):Integer;

Const

Sopps:String=('+-/^');

Var

I:Integer;

Begin

If Tot=0 Then Tot:=Length(S0);

For I:=1 To 5 Do

Begin

Result:=Pos(Sopps[i],S0);

If ((I<3) And (Result>0)) Then

If ((Result=1) Or (Pos(S0[Result-1],Sopps)>0)) Then

Result:=0;

If Result>0 Then

If Result<Tot Then

Exit;

End;

If Result>Tot Then

Result:=0;

End;

Function SpecialF(P1:Integer;S0:String):Extended;

Var

Operstr:String;

Arg:Extended;

Begin

Result:=0;

Operstr:=Copy(S0,1,P1-1);

If S0[Length(S0)]<>')' Then

Exit;

Operstr:=LowerCase(Operstr);

Arg:=Evaluate(Copy(S0,P1+1,Length(S0)-P1-1));

if Operstr ='sin' Then

Result:=Sin(Arg)

Else if Operstr ='cos' Then

Result:=Cos(Arg)

Else if Operstr ='tan' Then

Result:=Sin(Arg)/Cos(Arg)

Else if Operstr ='arctan' Then

Result:=Arctan(Arg)

Else if Operstr ='log' Then

Result:=Ln(Arg)/Ln(10)

Else if Operstr ='ln' Then

Result:=Ln(Arg)

Else if Operstr ='exp' Then

Result:=Exp(Arg)

Else if Operstr ='sqrt' Then

Result:=Sqrt(Arg)

{enter additional functions here}

Else Exit;

End;

Function GetValue(S0:String):Extended;

Begin

Result:=0;

If Length(S0)<1 Then Exit;

If Length(S0)=1 Then

Result:=StrToFloat(S0)

Else

Case s0[1] Of

'x':Result:=1;

'y':Result:=1;

'z':Result:=1;

Else Result:=StrToFloat(S0);

End;

End;

Procedure MatchBracket(Var I:Integer;S0:String);

Var

J,Len:Integer;

Begin

J:=1;

Len:=Length(S0);

Repeat Inc(I);

If I>Len Then Exit;

If S0[I]='(' Then Inc(J);

If S0[I]=')' Then Dec(J);

If J<0 Then Exit;

Until J=0;

End;

Function Calculate(P1:Integer;S0:String):Extended;

Var

V1,V2:Extended;

Begin

Result:=0;

V1:=Evaluate(Copy(S0,1,P1-1));

V2:=Evaluate(Copy(S0,P1+1,Length(s0)-P1));

Case S0[P1] Of

'+': Result:=V1+V2;

'-': Result:=V1-V2;

'/': Result:=V1/V2;

'': Result:=V1V2;

'^': Result:=Exp(V2Ln(V1));

Else Exit;

End;

End;

Function Evaluate(S0:string):Extended;

Var

P1,P2,Q1:Integer;

Begin

P1:=Pos('(',S0);

P2:=P1;

If P2>0 Then

MatchBracket(P2,S0);

If P1=1 Then

Begin

If P2=Length(S0) Then

Begin

Delete(S0,P2,1);

Delete(S0,1,1);

Result:=Evaluate(S0);

End Else

Result:=Calculate(P2+1,S0);

Exit;

End;

Q1:=GetFirstOpp(P1,S0);

If (P1+Q1=0) Then

Begin

Result:=GetValue(S0);

Exit;

End;

If Q1<>0 Then

Result:=Calculate(Q1,S0)

Else If Length(S0)>P2 Then

Result:=Calculate(P2+1,S0)

Else

Result:=SpecialF(P1,S0);

End;

Begin

Try

CleanUp(S0);

Result:=Evaluate(S0);

Except

Result:=0;

End;

End;

#include<stdioh>

#include<stdlibh>

#include<timeh>

int main()

{

    int count[9]={0};//1,2,3,8面

int i,randvalue,maxcount,maxflag;

srand(time(NULL));

for(i=1;i<=10000;i++)

{

randvalue = rand()%8+1;

count[randvalue]++;

}

    maxcount=count[1];

maxflag=1;

for(i=1;i<=8;i++)

{

if(maxcount<count[i])

{

maxcount = count[i];

maxflag =i;

}

}

printf("%d %d\n",maxflag,maxcount);

return 0;

}

你没有注明用什么语言写,不过看你问题估计是用C语言。

以下是代码:

/你可以以固定的顺序来显示币值,那样比较容易些/

#include <stdioh>

int main(void)

{

int cnt25,cnt10,cnt5; //三个整形变量分别表示对应硬币的个数

int total; //总值

printf("请输入25美分的硬币个数,按回车结束输入:");

scanf("%d",&cnt25);

printf("请输入10美分的硬币个数,按回车结束输入:");

scanf("%d",&cnt10);

printf("请输入5美分的硬币个数,按回车结束输入:");

scanf("%d",&cnt5);

/经过上面三次输入后,cnt25,cnt10,cnt5均已经有了对应的个数了,下面就可以来计算了/

total = (25 cnt25) + (10 cnt10) + (5 cnt5);

printf("总共为 %d 美分。\n",total);

return 0;

}

补充:程序中提示是以中文写的,这样容易看些。

不要以为很多,其实很简单的,你可以变换一些数字代入运行,就会进一步了解了。

#include <malloch>

#include <stdioh>

#include <stdlibh>

#define LEN sizeof(struct scorenode)

#define DEBUG

#include <stringh>

struct scorenode

{int number;/学号/

char name[10];/姓名/

float yuwen;/语文成绩/

float yingyu;/英语成绩/

float shuxue;/数学成绩 /

struct scorenode next;

};

typedef struct scorenode score;

int n,k;/n,k为全局变量,本程序中的函数均可以使用它/

/==============================================================================================/

score creat2311(void)

/函数creat2311,功能:创建链表,此函数带回一个指向链表头的指针/

{

scorehead;

score p1,p2,p3,max;

int i,j;

float fen;

char t[10];

n=0;

p1=p2=p3=(score )malloc(LEN);head=p3; /开辟一个新单元/

printf("请输入学生资料,输0退出!\n");

repeat1: printf("请输入学生学号(学号应大于0):");/输入学号,学号应大于0/

scanf("%d",&p1->number);

while(p1->number<0)

{getchar();

printf("输入错误,请重新输入学生学号:");

scanf("%d",&p1->number);}

/输入学号为字符或小于0时,程序报错,提示重新输入学号/

if(p1->number==0)

goto end;/当输入的学号为0时,转到末尾,结束创建链表/

else

{

p3=head;

if(n>0)

{for(i=0;i<n;i++)

{if(p1->number!=p3->number)

p3=p3->next;

else

{printf("学号重复,请重输!\n");

goto repeat1;

/当输入的学号已经存在,程序报错,返回前面重新输入/

}

}

}

}

printf("请输入学生姓名:");

scanf("%s",&p1->name);/输入学生姓名/

printf("请输入语文成绩(0~100):");/输入语文成绩,成绩应在0-100/

scanf("%f",&p1->yuwen);

while(p1->yuwen<0||p1->yuwen>100)

{getchar();

printf("输入错误,请重新输入语文成绩");/输入错误,重新输入语文成绩直到正确为止/

scanf("%f",&p1->yuwen);}

printf("请输入英语成绩(0~100):");/输入英语成绩,成绩应在0-100/

scanf("%f",&p1->yingyu);

while(p1->yingyu<0||p1->yingyu>100)

{getchar();

printf("输入错误,请重新输入英语成绩");/输入错误,重新输入英语成绩直到正确为止/

scanf("%f",&p1->yingyu);}

printf("请输入数学成绩(0~100):");/输入数学成绩,成绩应在0-100/

scanf("%f",&p1->shuxue);

while(p1->shuxue<0||p1->shuxue>100)

{getchar();

printf("输入错误,请重新输入数学成绩");

scanf("%f",&p1->shuxue);}/输入错误,重新输入数学成绩直到正确为止/

head=NULL;

while(p1->number!=0)

{

n=n+1;

if(n==1)

head=p1;

else

p2->next=p1;

p2=p1;

p1=(score )malloc(LEN);

printf("请输入学生资料,输0退出!\n");

repeat2:printf("请输入学生学号(学号应大于0):");

scanf("%d",&p1->number);/输入学号,学号应大于0/

while(p1->number<0)

{getchar();

printf("输入错误,请重新输入学生学号:");

scanf("%d",&p1->number);}

/输入学号为字符或小于0时,程序报错,提示重新输入学号/

if(p1->number==0)

goto end;/当输入的学号为0时,转到末尾,结束创建链表/

else

{

p3=head;

if(n>0)

{for(i=0;i<n;i++)

{if(p1->number!=p3->number)

p3=p3->next;

else

{printf("学号重复,请重输!\n");

goto repeat2;

/当输入的学号已经存在,程序报错,返回前面重新输入/

}

}

}

}

printf("请输入学生姓名:");

scanf("%s",&p1->name);/输入学生姓名/

printf("请输入语文成绩(0~100):");

scanf("%f",&p1->yuwen);/输入语文成绩,成绩应在0-100/

while(p1->yuwen<0||p1->yuwen>100)

{getchar();

printf("输入错误,请重新输入语文成绩");

scanf("%f",&p1->yuwen);}/输入错误,重新输入语文成绩直到正确为止/

printf("请输入英语成绩(0~100):");

scanf("%f",&p1->yingyu);/输入英语成绩,成绩应在0-100/

while(p1->yingyu<0||p1->yingyu>100)

{getchar();

printf("输入错误,请重新输入英语成绩");

scanf("%f",&p1->yingyu);}/输入错误,重新输入英语成绩直到正确为止/

printf("请输入数学成绩(0~100):");

scanf("%f",&p1->shuxue);/输入数学成绩,成绩应在0-100/

while(p1->shuxue<0||p1->shuxue>100)

{getchar();

printf("输入错误,请重新输入数学成绩");

scanf("%f",&p1->shuxue);}/输入错误,重新输入数学成绩直到正确为止/

}

本文来自: 乘风原创程序(>

以上就是关于求数控编程高手编个简单的程序,铣一个正方形出来,边长是40*40,求整个程序的流程。不用太复杂,我是新手全部的内容,包括:求数控编程高手编个简单的程序,铣一个正方形出来,边长是40*40,求整个程序的流程。不用太复杂,我是新手、C语言程序编程、怎样编程简单的计算器程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9759691.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存