
G代码是数控程序中的指令。一般都称为G指令。使用G代码可以实现快速定位、逆圆插补、顺圆插补、中间点圆弧插补、半径编程、跳转加工。
G00------快速定位
G01------直线插补
G02------顺时针方向圆弧插补
G03------逆时针方向圆弧插补
G04------定时暂停
G05------通过中间点圆弧插补
G06------抛物线插补
G07------Z 样条曲线插补
G08------进给加速
G09------进给减速
G10------数据设置
G16------极坐标编程
G17------加工XY平面
G18------加工XZ平面
G19------加工YZ平面
G20------英制尺寸(法兰克系统)
G21-----公制尺寸(法兰克系统)
G22------半径尺寸编程方式
G220-----系统 *** 作界面绝配上使用
G23------直径尺寸编程方式
G230-----系统 *** 作界面上使用
G24------子程序结束
G25------跳转加工
G26------循环加工
G30------倍率注销
G31------倍率定义
G32------等螺距螺纹切削,英制
G33------等螺距螺纹切削,公制
G34------增螺距螺纹切削
G35------减螺距螺纹切削
G40------刀具补偿/刀具偏置注销
G41------刀具补偿——左
G42------刀具补偿——右
G43------刀具偏置——正
G44------刀具偏置——负
G45------刀具偏置+/+
G46------刀具偏置+/-
G47------刀具偏置-/-
G48------刀具偏置-/+
G49------刀具偏置0/+
G50------刀具偏置0/-
G51------刀具偏置+/0
G52------刀具偏置-/0
G53------直线偏移,注销
G54------设定工件坐标
G55------设定工件坐标二
G56------设定工件坐标三
G57------设定工件坐标四
G58------设定工件坐标五
G59------设定工件坐标六
G60------准确路径方式(精)
G61------准确路径方式(中)
G62------准确路径方式(粗)
G63------攻螺纹
G68------刀具滚如偏置,内角
G69------刀具偏置,外角
G70------英制尺寸 寸 (这个是西门子的,法兰克的是G21)
G71------公制尺寸 毫米
G74------回参考点(机床零点)
G75------返回编程坐标零点
G76------车螺纹复合循环
G80------固定循环注销
G81------外圆固定循环
G331-----螺纹固定循环
G90------绝对尺寸
G91------相对尺寸
G92------预制坐标
G93------时间倒数,进给率
G94------进给率,每分钟进给
G95------进给率,每转进给
G96------恒线速度控制大宏启
G97------取消恒线速度控制
主要以下几点肢念斗历磨问题:
单价使用float price,读取时使用%f,输出时%.2f;
scanf问题:读取时最好不要加字符或\n不然会需要完全匹配间隔符号才能读取到。读取字符串时使用%s,goods[i].name数组名name就是地址不需要地址符 &
scanf("%d%d%s%d%f", &goods[i].gcode, &goods[i].ecode, goods[i].name, &goods[i].num, &goods[i].price)//C语言的写法
scanf_s("%d%d%s%d%f", &goods[i].gcode, &goods[i].ecode, goods[i].name,100, &goods[i].num, &goods[i].price)//C++需要使用_s函数同时紧跟其后标明字符串大小100。
你是要按商品数量排序,函数里面交换的是结构体变量,而不是其中数量一项。tmp定义为结构体变量Goods tmp,下面循高碧环中if语句更正:
请点击输入图片
#include "stdafx.h"
#include <iostream>
using namespace std
typedef struct g
{
int gcode
int ecode
char name[100]
int num
float price
}Goods
Goods goods[100]
int main()
{
int n, i, j// tmp
Goods tmp
printf("请输入商品个数:\n")
scanf_s("%d", &n)
for (i = 0i <ni++)
{
printf("请依次输入商品编号、商品类别编号、商品名称、库存数量、单价,并用空格隔开:\n")
scanf_s("%d%d%s%d%f", &goods[i].gcode, &goods[i].ecode, goods[i].name,100, &goods[i].num, &goods[i].price)
}
for (i = 0i <ni++)
{
for (j = 0j<n - i - 1j++)
{
if (goods[j].num>goods[j + 1].num)
{
//tmp = goods[j].num
//goods[j].num = goods[j + 1].num
//goods[j + 1].num = tmp
tmp = goods[j]
goods[j] = goods[j + 1]
goods[j + 1] = tmp
}
}
}
printf("商品编号\t商品类别\t商品名称\t库存数量\t单价\n")
for (i = 0i <n++i)
{
printf("%d\t\t%d\t\t%s\t\t%d\t\t%.2f\n", goods[i].gcode, goods[i].ecode, goods[i].name, goods[i].num, goods[i].price)
}
system("pause")
return 0
}
什么是G代码?G代码英文名称G-code,又称RS-274或G指令,属于数控编程语言,用于计算机辅助制造,G代码是数控程序的指令,如控制自动机床。铣床、CNC、3D打印机等。移动、进给、启动、停止等。可以实现快速定位、直线运动、弧线运动等。抽象的理解就是各种头(主轴、激光、3D打印等)的几何位置移动、旋转和速度变化都可以通过计算机等数控设备来控制。
学习Gcode的目的。比如说,如果我喜欢DIY,想自己做或买数控和3D打印机,我需要知道什么是G代码,它是如何工作的,它的原理。如何阅读G代码?在学习写作之前,我们首先要学会阅读代码。比如代码的格式,代码的参数以及它们的含义。你可能会看这个标题,问为什么不从第一行开始?
因为我们是通过数字来学习的,G0是代码的名称,后面是几个参数,也就是设定的框架的位置。它可以是单一的X轴,也可以是多个。而G0一般不用于切割。要想快速移动到指定的位置,在使用这个命令之前,你需要考虑直线路径上是否有障碍物。
G0, x0, y0, z0意味着从空间宴巧搭的当前点回宽首到坐标系的原点,在做这个动作之前要确保你没有碰到其他东西,这是快速直线运动。可能会有车祸发生。还有一个问题,你可能会问,这个速度有多快,你怎么设置G0的速度,一般来说,控制器都有配置文件,你可以在配置文件中设置这个值。比如linuxCNC,在软件的ini文件中,[TRAJ]部分的参数MAX_VELOCITY的值定义了最大快速运动速度。在协调运动中,最大快速进给速度可以高于每个轴的MAX_VELOCITY设置。如果轴晌拿的MAX_VELOCITY或轨迹约束限制了它,最大快速运动速率可能比[TRaj]部分的MAX_VELOCITY设置慢。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)