5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 30046|回复: 141
打印 上一主题 下一主题

适用于MACH的基本G代码的一些学习心得 51-52楼演示录像 3楼更新更多实用技巧

  [复制链接]
跳转到指定楼层
楼主
发表于 2011-4-20 15:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
呵呵,DIY了数控铣床已经有好几年了,却因为个人能力的原因一直学不会UG和SW。无奈之下只好手写G代码,自己做一些简单DIY。毫无疑问在复杂的工件上。UG和SW要比手写G代码轻松并且快无数倍。但对于简单的零件手写G代码也是一个不错的选择。

下面我就说说一些我学习到的基本的G代码使用方法。我仅仅能够使用一些基本的常用的代码,如果有不对或者又更简单的方法的地方恳请高手给予指点和批评。谢谢。

第一走直线
G01 X10 Y10 Z10
这个代码的意思就是从当前坐标为起点,走到坐标为X10 Y10 Z10的地方 (XYZ3维坐标系不用复习了吧....)
G01代码 无视平面坐标系,可以在三维空间内任意的走直线。可加F参数,定义走刀速度。例如G01 X10 Y10 Z10 F800 意思就是以800毫米/分钟的速度走刀 X10 Y10 Z10。使用这个命令一定要注意检查起点。

第二走圆弧
G90.1 G17 G2 X100 Y160 Z-2 I15 J19  F800
这个代码的意思是G90.1定义为绝对坐标系,G17选择XY平面 G2顺时针走圆弧(也可以G3逆时针)以当前坐标为起点,以坐标点X15y19为圆心 走一条终点为X100 Y160 Z-2的圆弧。
这条命令仅仅是圆心格式的绝对坐标系工作方式。当然G2 G3命令还有其他的用法 例如半径模式和增量坐标系模式 但是那个使用起来比较复杂。且圆心工作模式可以切整圆,既起点为终点,走一个整体的圆。另外圆心模式还可以定义Z坐标。这样就可以在工件上边切圆边切Z,圆滑的过渡。总体比较我感觉这个用处很大,所以我就一直用这个命令了。
第三挖圆

G90.1 G17 G12 I50
这条代码的意思是以当前坐标为圆心 向X轴正方向走50MM然后跟圆规一样划出一个圆来 然后再从右边回到圆心。
这个命令非常有用。我经常这么干粗糙的活,先用平台和高度尺划线,用样冲冲中心,然后把工件夹道铣床上 边走边试探中心钻,当中心钻钻到样冲坑上的时候。归零 然后写上这么一条。圆就挖出来了。前提得注意铣刀直径啊 可别挖大了啊。

能走直线和能走圆了还有开孔器了 这就意味着普通铣床+回转工作台能干的事情数控铣床可以用简单的代码替代了。接下来继续说真正提高效率降低劳动强度的2个代

[ 本帖最后由 qiongren 于 2011-4-24 23:05 编辑 ]

评分

参与人数 12威望 +24 收起 理由
智能搜寻 + 2 正在学习,感谢分享
sumihehe + 2 不错,整需要!
夜行侠 + 2 诲人不倦,顶
有点笨 + 2 【发贴鼓励】感谢分享,希望继续努力发更多 ...
cooooldog + 2 Q顶你

查看全部评分

欢迎继续阅读楼主其他信息

沙发
 楼主| 发表于 2011-4-20 15:14 | 只看该作者
M98 M99在MACH中的使用方法

M98调用子代码
具体格式为 M98 P1234 L1
意思为 调用编号为1234的子程序 1次

M99为定义子程序
具体格式为
O1234         字母哦1234  定义子程序名字为1234
G01 X 20     子程序内容 我随便写的
G01 Y 20
.........
m99 定义子程序结尾 并返回主程序
M30  注:如果子程序写在程序的最后面 在MACH中使用最好在子程序的最后添加M30参数 不然可能会调用一次后停止运作

M98与M99的综合使用方法

例如 用 36MM面铣刀铣面
G00 X0 Y0           X Y 走到零位
G00 Z0                Z走到零位
g01 Z-0.3 f700   Z走刀-0.3 以F700速度 因为F定义有模态 以后的F    值就是 F700了 包括循环中的走刀 前提是这个下刀的时候不能碰到工件 呵呵
M98 P1234 L1   第一次调用1234号程序
G01 Z-0.6
M98 P1234 L1
G01 Z-0.9
M98 P1234 L1
G01 Z-1.0  F200   最后一次精铣 更改走刀200
M98 P1234 L1  最后一次调用程序
m30  定义整个程序结束
O1234  定义子程序名字为1234
G01 X-200 子程序内容~~~~~铣面
G01 Y-36
G01 X0
G01 Y-72
G01 X-200
G01 Y-108
G01 X0
G01 Y0
m99 定义子程序结束
M30 定义程序结束(其实应该是MACH3强硬的要求程序最终应该有M30代码)

评分

参与人数 1威望 +2 收起 理由
gigahertz + 2 【精品文章】感谢分享希望继续努力发更多更 ...

查看全部评分

3
 楼主| 发表于 2011-4-20 15:14 | 只看该作者
G40 G41 G42 代码

刀具补偿代码绝对是所有代码中能力最强大 最为重要的代码

好多人不知道什么是刀具补偿,其实我也说不明白。我所知道的就是有了刀具补偿,以后就不需要在写代码的时候考虑刀具的问题了。直接按照图纸写代码。图纸上的坐标是10 我就写10 图纸上是20就是20.想换刀容易,直接在刀补里换。这样粗加工和精加工仅仅需要更改一个数字就可以了。

在使用刀补偿之前 请先将MACH刀具库当中的刀具定义。这个简单 1号刀具直径1MM 2号2MM。。。以此类推。
定义为之后就可以正常使用刀具补偿了。
命令式这样的

g01 g42 x20 y20 D8 F800
这个代码的意思是从当前坐标走到 X20 Y20 刀具补偿为8号刀具 补偿方式为左补偿。

大家可以试验一下 G42是刀具左补偿 意思就是 刀具在前进路径的右边。 G41是右补偿。意思是刀具在前进路径的左边。 最终刀具中心并不停留在X20 Y20 而是刀具的边停留在 X20 Y20上。

刀具补偿代码有这样几个需要注意的地方

第一 不可重复补偿,最好补偿一次 记得加一行 G40取消补偿。
第二 补偿前必须有G01 也就是开启补偿的时候必须是在走刀途中。不能使用G02之类的参数开启补偿会导致稀奇古怪的错误。
第三 为了正常使用 最好采用这样的使用方法 先巡边 假如料的左下角为 X0 Y0
g01 x-20 y-20 F800    f800速度走到X-20 Y-20
G01 G42 X0 Y0 D8    当前刀具中心点是X-20 Y-20 启动刀具左补偿,走到 X0 Y0 这样正好刀具的边是靠在料的边上的 呵呵

....................正常写走刀内容 例如 走直线 走弧度 坐标点直接写图纸上的点就行 (要考虑走刀方向的左右啊 不然走的谁都不认识了)。
G40 取消刀具补偿
M30 程序终结


G代码的其他使用技巧
通过上面最常用的G代码,各位兄弟估计对G代码的基本使用有了一些了解。我再继续分享一些更多的G代码应用。

相对坐标模式和绝对坐标模式。
绝对坐标模式的意思是把整个坐标系明确位置,零点就是零点。坐标系里的每个点都有独一无二的坐标。定义绝对坐标模式的代码是 G90.1
而相对坐标模式的意思是以当前点为坐标原点进行走刀。定义相对坐标模式的代码是 G91

例子
G90.1 G01 X0 Y0 启动绝对坐标模式走到坐标系零点 X0 Y0
G01 X25 这个代码的意思就是从零点走到 X=25 Y=0   
G01 X25 因为在上一行代码中已经走到坐标点 X25 Y0 固目前这一行代码不做任何动作。
同样的一行代码
      
G90.1 g01 x0 y0   启动绝对坐标模式走到 X25 Y25的地方
G91 G01 X25 Y25   启动相对坐标模式 走到以目前点(X0 Y0)为坐标原点 目标点坐标为 当前点X+25           当前点Y+25的地方 既X=0+25=25 Y=0+25=25的地方。
G01 X25 Y25       以为上一行已经启动了相对坐标模式。固这一行也是相对坐标模式。这一行的意思就是以当前坐标点(X25 Y25)为起点 走到当前点X+25 当前点 Y+25的地方 既X=25+25=50 Y=25+25=50的地方。
通过这个实际的例子 各位兄弟一定明白了相对坐标和绝对坐标模式的区别。 相对坐标和绝对坐标 同样可应用于走圆弧程序。前面我已经简单介绍了绝对坐标模式下圆心格式的切削命令写法。下面我就详细的讲解一下 走圆弧的各种方法。


半径模式圆弧切削
这个方法简单容易写 还不用计算圆心坐标,与圆心格式用处各有千秋。但此格式 起点和终点不能为同一点。既而不能切削整个圆。具体命令如下:
G90.1 G17 G2 X10 Y15 R20
这条命令的意思是 定义绝对坐标系模式 定义G17平面既XY平面 以顺时针切削圆 起点为当前点 目标点为 X10 Y15 圆弧为R20
G91 G17 G2 X10 Y15 R20
这条命令的意思是 定义相对坐标系模式 定义G17平面既XY平面 以顺时针切削圆 起点为当前点 目标点X为当前点x+10 目标点Y为当前点Y+15  半径为20
圆心格式圆弧切削在 XZ YZ 平面的使用
如果要在 XZ YZ平面上切削圆弧 就需要了解这3个参数 I J K  这是用来定义圆心坐标的 XYZ 坐标的
例如这条命令

G90.1 G17 G2 X10 Y16 I11 J15
这条命令的意思是 定义绝对坐标系 定义XY平面 顺时针切削圆弧 目标点为X10 Y16 圆心为 X11 Y15
G91 X18 G3 X10 Z11 I13 K14
这条命令的意思是 定义相对坐标模式 定义XZ平面 逆时针切削圆弧 目标点为X10 Z11 圆心坐标为X=当前点X+13 z=当前点z+14


极坐标模式
这个坐标模式 是以当前点为圆心 进入一个类似卧式分读盘的模式。 最简单的我经常用这个命令打圆上的等分孔(轴承位螺丝固定孔等等)。
命令格式是这样的
G16 以当前点为圆心进入极坐标模式
G01 X50 Y0  移动到半径为50MM 角度为0度的地方(X轴正方向为0)
G01 X20 Y10 移动到半径为20MM 角度为10度的地方(由X轴正方向 向 Y轴正方向移动 角度为10度)
G15 返回三维坐标系
怎么样这个命令非常简单好用吧。


暂停命令
G4 P1000
这个命令的意思是暂停1000秒(不一定是1000秒 看你具体MACH设置了)这个命令非常有用。可以用来手动换刀。 例如我写了个程序前半段是用8MM刀具切削 后面要用3MM刀具切削。我就可以使用这个命令停上他几万秒。然后慢慢的换刀。换完刀以后点击MACH界面里的继续运行。他就接着运行了。

结束语:其实G代码的功能非常广泛 非常灵活 例如绝对坐标模式 相对坐标模式 极坐标模式 与M代码结合起来更是应用全面,功能很多。无奈我技术有限,只能使用这简单几种。希望以此贴抛砖引玉,能引来更多的对G代码精通的高手给我们讲解实用的技巧。
另此贴内容抄自与我的心得笔记本。写下的时间很长了。难免有疏忽遗漏甚至错误的地方。希望有心的朋友能帮忙测试下(我现在在单位无法测试),我尽快更正。
谢谢。

[ 本帖最后由 qiongren 于 2011-4-24 22:52 编辑 ]

评分

参与人数 5威望 +10 收起 理由
惠民 + 2 感谢分享
鹤山 + 2 【发贴鼓励】感谢分享,希望继续努力发更多 ...
gigahertz + 2 【精品文章】感谢分享希望继续努力发更多更 ...
影忠 + 2 【发贴鼓励】感谢分享,希望继续努力发更多 ...
chunk + 2 【发贴鼓励】感谢分享,希望继续努力发更多 ...

查看全部评分

4
发表于 2011-4-20 15:19 | 只看该作者
多谢楼主  急需科普
5
发表于 2011-4-20 15:32 | 只看该作者
加入收藏:em01:
6
发表于 2011-4-20 15:34 | 只看该作者
我也是手工写程序的,不过是FANUC程序
7
发表于 2011-4-20 15:36 | 只看该作者
不知道mach3有没有像fanuc的宏程序功能,怎么实现

楼主可否发个你的mach3的软件供大家下 载呀,网上有很多版本都不知道怎么分辨了,谢谢:em00:
8
 楼主| 发表于 2011-4-20 15:50 | 只看该作者
原帖由 听涛 于 2011-4-20 15:19 发表
多谢楼主  急需科普

呵呵 都是很基本的知识。互相学习。
9
 楼主| 发表于 2011-4-20 15:52 | 只看该作者
原帖由 pdwabc 于 2011-4-20 15:32 发表
加入收藏:em01:

呵呵 谢谢兄弟 我的MACH是3.1版本还是多少来这 记不大清楚了。但是MACH中的G代码应该没什么变化 按说在所有版本中都应该能用的。明天我去车间拷贝一份过来吧。至于宏。这个东西。我真不懂是什么。按说MACH有的 因为我见菜单上有个宏编程。但是我不会用。。。。。。希望兄弟能讲解下宏。。。。。。。。。。
10
发表于 2011-4-20 16:03 | 只看该作者
咨询一下楼主:M98 P1234 L1   第一次调用1234号程序

L1 是固定的还是可变,例如:L2,L3,是不是指连续调用2次,或者3次,以此类推,呵呵:em21:
11
 楼主| 发表于 2011-4-20 16:06 | 只看该作者
原帖由 chunk 于 2011-4-20 16:03 发表
咨询一下楼主:M98 P1234 L1   第一次调用1234号程序

L1 是固定的还是可变,例如:L2,L3,是不是指连续调用2次,或者3次,以此类推,呵呵:em21:

L1是可变的 按MACH说明是可以多次调用的 但是我一般只调用1次,没有试过多次调用。
12
发表于 2011-4-20 16:07 | 只看该作者
急需MACH3数控车的代码讲解,我觉得还是要用CAD画零件图,再成生刀路G码的方法更适合我,手动编程的话,我连三轴都喜欢搞晕!
13
发表于 2011-4-20 16:09 | 只看该作者
收藏,这个得顶!我的那个圆弧似乎也可以做出来

[ 本帖最后由 愤怒的小蚂蚁 于 2011-4-20 16:21 编辑 ]

3.jpg (44.85 KB, 下载次数: 81)

3.jpg
14
发表于 2011-4-20 16:12 | 只看该作者
原帖由 qiongren 于 2011-4-20 16:06 发表

L1是可变的 按MACH说明是可以多次调用的 但是我一般只调用1次,没有试过多次调用。


主要是拷机用的,所以需要多次全程往返运行
15
发表于 2011-4-20 16:35 | 只看该作者
谢谢Q爷主,很及时啊:em26:
16
发表于 2011-4-20 16:45 | 只看该作者
以前数控中级的时候学过。后来不怎么实际操作,都快忘了

走圆弧还有其他的走法不过那时候是AB和FUNC系统的
17
 楼主| 发表于 2011-4-20 16:45 | 只看该作者
原帖由 liyong77317 于 2011-4-20 16:07 发表
急需MACH3数控车的代码讲解,我觉得还是要用CAD画零件图,再成生刀路G码的方法更适合我,手动编程的话,我连三轴都喜欢搞晕!

朋友你好 因为MACH在车床上糟糕的表现(其实是最早的1位编码器糟糕的车螺纹能力)所以我放弃了MACH车床,使用的是BHCNC车床系统 对于MACH车床我并没有了解
18
 楼主| 发表于 2011-4-20 16:51 | 只看该作者
原帖由 愤怒的小蚂蚁 于 2011-4-20 16:09 发表
收藏,这个得顶!我的那个圆弧似乎也可以做出来

MACH3的圆弧命令还是很强大的 可以 XY XZ YZ平面任意的定义 随便划圆 但是建议手写G代码划比较复杂的弧度的时候 最好先试验好。

评分

参与人数 1威望 +2 收起 理由
thirty + 2 好文

查看全部评分

19
 楼主| 发表于 2011-4-20 16:52 | 只看该作者
原帖由 chunk 于 2011-4-20 16:12 发表


主要是拷机用的,所以需要多次全程往返运行

应该是可以的 你试验下吧
20
 楼主| 发表于 2011-4-20 16:54 | 只看该作者
原帖由 影忠 于 2011-4-20 16:35 发表
谢谢Q爷主,很及时啊:em26:

影忠兄弟,谢谢夸奖。我感觉不会手写代码 确实做一些简单的活的时候不方便,但是像我一样不会SW 做复杂零件就更不方便了,我还得向你和30大哥学习啊 不但得会手写 还得会SW。互相学习,共同牛逼。。。。。。。

评分

参与人数 2威望 +4 收起 理由
xiniuwang + 2 相互学习,共同牛逼! 我顶这句
850525123 + 2 【发贴鼓励】感谢分享,希望继续努力发更多 ...

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表