UG爱好者

标题: 如何判断刀轨下一层深度小于上一层深度 [打印本页]

作者: 且行且珍惜、    时间: 2023-8-14 19:01
标题: 如何判断刀轨下一层深度小于上一层深度
本人经常用孔铣来铣孔,有时候就会遇到特征识别错误是反的,然后程序从下往上铣,这样基本是要撞刀了。突发奇想,如果用后处理来提示这个问题是不是就可以避免这个问题呢?但现在遇到了几个问题 1 Z值的变量是什么
2 下一层Z的变量又是什么
3 孔铣的操作在这里又叫什么名字
用中文翻译一下我需要的代码如下
当操作为 孔铣时候
如果  下一层Z的值大于上一层Z的值
则 提示当前操作存在从下往上铣 请检查


这是自己瞎写的 ,放进去不行。来大神帮忙看看

作者: snowa*    时间: 2023-8-14 21:56
本帖最后由 snowa* 于 2023-8-14 22:02 编辑

用坐标轴判断已经可以实现了
global mom_tool_axis
global mom_operation_name
set 4th [ format "%0.6f" $mom_tool_axis(0) ]
set 5th [ format "%0.6f" $mom_tool_axis(1) ]
set 6th [ format "%0.6f" $mom_tool_axis(2) ]
if { $4th !=0 || $5th !=0 || $6th !=1 } {
MOM_output_to_listing_device "程序名称:$mom_operation_name,非三轴刀路"
MOM_output_to_listing_device "请检查刀轴或者坐标系"
set msg [MOM_display_message 程序名称:$mom_operation_name,非三轴刀路 后处理消息: I  中止后处理]
    switch $msg {
        1 {
            MOM_abort 中止
        }
    }
}


作者: 且行且珍惜、    时间: 2023-8-14 22:14
snowa* 发表于 2023-8-14 21:56
用坐标轴判断已经可以实现了
global mom_tool_axis
global mom_operation_name

感谢感谢 明天我试一下 现在弄了一个通过刀轴控制的,也是在网上找的代码,不过有问题 如果方向错误的孔是最后一个孔就可以识别出有错误然后提示 不是最后一个孔就不行 明天试试你这个 再次感谢
作者: (⊙o⊙)*    时间: 2023-8-14 23:31
学习一下
作者: 1123827    时间: 2023-8-15 08:07
snowa* 发表于 2023-8-14 21:56
用坐标轴判断已经可以实现了
global mom_tool_axis
global mom_operation_name

放哪里啊 大佬
作者: topckey    时间: 2023-8-15 08:40
且行且珍惜、 发表于 2023-8-14 22:14
感谢感谢 明天我试一下 现在弄了一个通过刀轴控制的,也是在网上找的代码,不过有问题 如果方向错误的孔 ...

用后处理提示,但是用外挂批量后处理时能提示吗?应该是可以提示的,但是剩下没有问题的程序就会终端处理,, 这样是否不太方便?
作者: 且行且珍惜、    时间: 2023-8-15 09:08
topckey 发表于 2023-8-15 08:40
用后处理提示,但是用外挂批量后处理时能提示吗?应该是可以提示的,但是剩下没有问题的程序就会终端处理,,  ...

不方便也没办法 没有好的思路 另外和安全比起来其他只能放第二位
作者: topckey    时间: 2023-8-15 09:34
且行且珍惜、 发表于 2023-8-15 09:08
不方便也没办法 没有好的思路 另外和安全比起来其他只能放第二位

如果能做成那种类似外挂一键检查的就完美了,每次做完直接按下检查,及时更正
作者: 且行且珍惜、    时间: 2023-8-15 10:15
snowa* 发表于 2023-8-14 21:56
用坐标轴判断已经可以实现了
global mom_tool_axis
global mom_operation_name


失败了 这种类型的检测不出来

作者: snowa*    时间: 2023-8-15 11:29
且行且珍惜、 发表于 2023-8-15 10:15
失败了 这种类型的检测不出来

https://www.ugsnx.com/forum.php?mod=viewthread&tid=327034
看这位大神的办法
作者: 且行且珍惜、    时间: 2023-8-15 15:21




#=============================================================
proc PB_CMD_3A { } {
#=============================================================
global mom_tool_axis
global mom_operation_name
set mta [ format  "%.13f" $mom_tool_axis(0)]
if {$mta != 0 } {

MOM_abort "  \n\n\n温馨提示您:工序:《$mom_operation_name》的刀轴不垂直于ZM,请分析加工面是否是水平面!!! \n\n\n "
}
set mtaa [ format  "%.2f" $mom_tool_axis(2)]
if {$mtaa != 1 } {

MOM_abort "  \n\n\n温馨提示您:工序:《$mom_operation_name》的刀轴不垂直于ZM,如果是孔铣请检查是否有从背面进刀!!! \n\n\n "
}
}

感恩回馈 奉上代码

作者: 罒鋒ㄨゞ仁█    时间: 2023-8-20 21:34
可以了 所以实现报警了

QQ拼音截图20230820213323.png (91.42 KB, 下载次数: 38)

QQ拼音截图20230820213323.png

作者: YBB123456    时间: 2023-8-26 09:15
新人进来学习下!支持一下!感谢楼主 分享!赞赞赞赞赞赞赞!
作者: 这么近    时间: 2023-8-26 23:41
我是通过检查刀轴来判断是否有反向,我的3轴、90°侧铣、万向侧铣后处理都是用5轴后处理改的,就是想得到B轴C轴角度。这种方法就是要牺牲掉4轴5轴联动钻孔、铣孔功能。
下面是我的代码

#放置于===线性移动 圆周移动 快速移动  钻孔循环
#防止同一个NC程序中出现刀轴不一,特别是孔铣中部分孔反向
global mom_out_angle_pos
global mom_operation_name
global ffx_b
global ffx_c
if {[info exists ffx_b]} {         ;# 判断 变量存在时
  if {$mom_out_angle_pos(1) != $ffx_b || $mom_out_angle_pos(0) != $ffx_c} {      ;# 判断当前刀轴不等于初始刀轴
set errmes "\n\n 提示您:工序名称为:$mom_operation_name 的有刀轴反向, 请检查程序!!!\n\n"
    MOM_abort "$errmes"             ;#中止后处理操作并输出操作名称等信息
   }
  } else {                       ;# 否则 变量不存在时
set ffx_b $mom_out_angle_pos(1)   ;# 赋值初始刀轴
set ffx_c $mom_out_angle_pos(0)   ;# 赋值初始刀轴
}
}



#放置于===刀轨结束 ,  删除变量为下一个工序防错做准备
#如果不需要4轴和5轴多面定向加工,以下代码可以全屏蔽,将对整个程序检查刀轴反向
global ffx_b
global ffx_c
unset ffx_b
unset ffx_c
作者: luochen922*    时间: 2023-8-27 23:16
且行且珍惜、 发表于 2023-8-15 15:21
#=============================================================
proc PB_CMD_3A { } {
#===== ...

请教下 如果直接加tcl文件里面  好弄吗
作者: 年轻的勇士    时间: 2023-8-28 01:52
感谢分享,学习一下




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