UG爱好者

标题: 后处理利用工序名的方式输出M00和强制换刀。 [打印本页]

作者: 暮光追不者    时间: 2023-8-1 01:23
标题: 后处理利用工序名的方式输出M00和强制换刀。
后处理用含有M00的工序名自动判断输出M00实现换压,或者强制换刀,或者实现别的功能。
虽然方法有挺多,个人感觉这种方法比较一目了然。
送上代码跟方法。






下面是代码:
  1. #=============================================================
  2. proc PB_CMD__check_block_stop { } {
  3. #=============================================================
  4. #输出条件
  5. global mom_group_name
  6. if {$mom_group_name != 0} {
  7. return 1
  8. } else {
  9. return 0
  10. }
  11. }
复制代码
  1. #=============================================================
  2. proc PB_CMD_M001 { } {
  3. #=============================================================
  4. #放初始移动
  5. global mom_group_name mom_tool_number mom_next_tool_number
  6. if {[string match {*M00*} $mom_group_name]} {
  7. set mom_group_name 0
  8. }
  9. }
复制代码
  1. #=============================================================
  2. proc PB_CMD_M002 { } {
  3. #=============================================================
  4. #放第一次移动
  5. global mom_group_name mom_tool_number mom_next_tool_number
  6. if {[string match {*M00*} $mom_group_name]} {
  7. MOM_output_literal "M05"
  8. MOM_output_literal "M09"
  9. PB_auto_tool_change            ;#自动换刀块
  10. set mom_group_name 0
  11. }
  12. }
复制代码


测试用的后处理
测试后处理.zip (143.95 KB, 下载次数: 151)

作者: 雾色囚    时间: 2023-8-1 09:02
学到了
作者: enricyx    时间: 2023-8-1 10:16
感谢分享。。。。。。。。。互相学习。。。。。。。
作者: gongxixi    时间: 2023-8-1 10:20
这个方法好,比较清晰明显
作者: mfklngeyc    时间: 2023-8-1 16:43
proc PB_CMD__check_block_stop 放那个位置
作者: gsphzc    时间: 2023-8-1 17:04
感谢分享
作者: 暮光追不者    时间: 2023-8-1 19:56
这个是输出条件,看第一张图那个G91 G28 Y0.和M00,点进去右键——添加输出条件就行了。
作者: why6666133    时间: 2023-8-1 20:55

放法不错
作者: dlc317    时间: 2023-8-1 21:41
666,大佬真6
作者: mfklngeyc    时间: 2023-8-1 22:37
谢谢大佬回复666666
作者: tangdongdong12    时间: 2023-8-2 07:55
谢谢分享  学习一下
作者: snowa*    时间: 2023-8-2 10:21
本帖最后由 snowa* 于 2023-8-2 11:24 编辑

支持楼主,论坛就需要这样分享技术的朋友。
大家一起交流促进,
比起那些加密后卖后处理的强多了。


发现一个BUG
初始移动不应该加判断条件
应该无条件指定 mom_group_name 为0
否则正常程序组或者单个程序会出错


作者: 暮光追不者    时间: 2023-8-2 13:56
本帖最后由 暮光追不者 于 2023-8-2 14:09 编辑

12楼的网友反馈单条输出会报警,而且不支持分组编程的,所以修改了一下代码。后续还有问题可以回复。

2023-8-2

  1. #=============================================================
  2. proc PB_CMD__check_block_stop { } {
  3. #=============================================================
  4. #输出条件
  5. global mom_group_name
  6. if {[string match {*M00*} $mom_group_name]} {
  7. return 1
  8. } else {
  9. return 0
  10. }
  11. }
复制代码
  1. #=============================================================
  2. proc PB_CMD_M001 { } {
  3. #=============================================================
  4. #放初始移动
  5. global mom_group_name
  6. if {[info exists mom_group_name]} {
  7. set mom_group_name 0
  8. if {[string match {*M00*} $mom_group_name]} {
  9. set mom_group_name 0
  10. }
  11. }
  12. }
复制代码
  1. #=============================================================
  2. proc PB_CMD_M002 { } {
  3. #=============================================================
  4. #放第一次移动
  5. global mom_group_name
  6. if {[string match {*M00*} $mom_group_name]} {
  7. MOM_output_literal "M05"
  8. MOM_output_literal "M09"
  9. PB_auto_tool_change            ;#自动换刀块
  10. set mom_group_name 0
  11. }
  12. }
复制代码
2023-8-2测试后处理.zip (147.91 KB, 下载次数: 138)
作者: 暮光追不者    时间: 2023-8-2 14:02
网友反馈单条输出会报警,而且不支持分组编程的,所以修改了一下代码,新代码在13楼。
作者: snowa*    时间: 2023-8-2 21:53
本帖最后由 snowa* 于 2023-8-2 22:24 编辑

我在楼主基础上改了一下

#放在换刀M6之前
global mom_group_name
if {[info exists mom_group_name] && [string match {*M00*} $mom_group_name]} {
MOM_output_literal "G91 G28 Y0.0"
MOM_output_literal "M00"
unset mom_group_name
} else {
MOM_output_literal "M01"
}


#放第一次移动
global mom_group_name
if {![info exists mom_group_name ] } {
set mom_group_name 0
}
if {[string match {*M00*} $mom_group_name] || [string match {*M01*} $mom_group_name] } {
PB_auto_tool_change            ;#自动换刀块
}

加M00可以强制换刀加输出M00。加M01可以强制换刀加输出M01
一举解决了我暂停换压板和同一把刀强制换刀2个问题


作者: mfklngeyc    时间: 2023-8-4 13:16
暮光追不者 发表于 2023-8-2 13:56
12楼的网友反馈单条输出会报警,而且不支持分组编程的,所以修改了一下代码。后续还有问题可以回复。

20 ...

我用2212版本测试你编好的程式M00是正常的,我新编的程式一个M00都不出了
作者: 暮光追不者    时间: 2023-8-4 15:30
mfklngeyc 发表于 2023-8-4 13:16
我用2212版本测试你编好的程式M00是正常的,我新编的程式一个M00都不出了

这个就不太清楚,可能版本不一样,程序组名称“$mom_group_name”这个变量也变了。
作者: 870429034    时间: 2023-8-5 14:10
开始事件不香了吗?
作者: xie76646687*    时间: 2023-8-5 18:42
大佬,这种模式的后处理出来里面没有M00


作者: snowa*    时间: 2023-8-5 19:36
xie76646687* 发表于 2023-8-5 18:42
大佬,这种模式的后处理出来里面没有M00

你把MOO塞到A2-copy里面就好了
作者: 2668915176@qq.c    时间: 2023-8-5 20:34
学习了
作者: 伤_回首--痛ぴ    时间: 2023-8-5 21:40
大佬好人啊,对于我这种菜鸡真的太友好了,收藏了。
作者: xie76646687*    时间: 2023-8-7 08:17
snowa* 发表于 2023-8-5 19:36
你把MOO塞到A2-copy里面就好了

塞进去也没有,分组多的,没有M00,只能一个分组里面带工序,其他分组就M00才可以处理出来
作者: 暮光追不者    时间: 2023-8-7 10:05
xie76646687* 发表于 2023-8-5 18:42
大佬,这种模式的后处理出来里面没有M00

放到A05里面,在G81工序之前。或者把A05改成A05_M00,因为判断条件都是工序开始之前的,你后面没工序的就判断不了。
作者: 870429034    时间: 2023-8-7 11:56
xie76646687* 发表于 2023-8-7 08:17
塞进去也没有,分组多的,没有M00,只能一个分组里面带工序,其他分组就M00才可以处理出来

开始或结束事件不香吗
作者: 南山忘远    时间: 2023-8-7 13:15
感谢分享
作者: 1208025163    时间: 2023-8-7 14:09
学习这个TCL语言,搞这个后处理,看啥教程啊,书籍?
作者: snowa*    时间: 2023-8-7 20:00
870429034 发表于 2023-8-7 11:56
开始或结束事件不香吗

这个直观一点
作者: 870429034    时间: 2023-8-7 20:04
snowa* 发表于 2023-8-7 20:00
这个直观一点

事件也很直观的
作者: wgaamepptt    时间: 2023-8-24 21:16
大佬~支持T刀输出怎么加脚本啊??我用径向槽编程  出来只有刀号 坐标 没有加工程序啊~!!
作者: 覃忠康    时间: 2023-11-11 16:57
G98 G83 X160.431 Y-40.5 Z-16.262 R-11. F100. Q1 请问大神,R-11 有什么办法后处理检测提示 R为负值 小心检查吗
作者: 覃忠康    时间: 2023-11-11 16:58
G98 G83 X160.431 Y-40.5 Z-16.262 R-11. F100. Q1 请问大神,R-11 有什么办法后处理检测提示 R为负值 小心检查吗
作者: 覃忠康    时间: 2023-11-11 17:01
G98 G83 X160.431 Y-40.5 Z-16.262 R-11. F100. Q1 请问大神,R-11 有什么办法后处理检测提示 R为负值 小心检查吗
作者: 覃忠康    时间: 2023-11-11 17:05
G98 G83 X0 Y0 Z-16.R-11. F100. Q1. 请问大神,有什么办法检测R 是负值 提醒小心检查程序吗
作者: 覃忠康    时间: 2023-11-11 17:18
G98 G83 X0 Y0 Z-16.R-11. F100. Q1. 请问大神,有什么办法检测R 是负值 提醒小心检查程序吗
作者: ping3721    时间: 2023-11-11 22:54
870429034 发表于 2023-8-5 14:10
开始事件不香了吗?

在开始事件中加M00一样啊

作者: 火之晨曦    时间: 2023-11-24 09:29
你好,请问一下,输出条件能不能改成工序名为M00的方式输出,比如插入一个铣削控制名字改M00的方式
作者: 寒月伴花痴    时间: 2024-1-3 22:47
snowa* 发表于 2023-8-2 21:53
我在楼主基础上改了一下

#放在换刀M6之前

举一反三,厉害
作者: w475338280    时间: 2024-1-4 03:58
膜拜大佬中。语句好难写。大佬能帮忙写个语句么   我想在设置了rtrcto自动高度的时候不输出安全平面的那个Z值  研究好几天了写不明白
作者: saonian11    时间: 2024-1-6 09:33
感谢分享
作者: 王浩32158    时间: 2024-8-4 12:29
先点个赞。这个不能在四轴联动上用吗,不联动时可以用,当联动时就会后处理报警。
作者: 2009.YE    时间: 2024-8-23 13:21
感谢分享6666




欢迎光临 UG爱好者 (https://www.ugsnx.com/) Powered by Discuz! X3.2