UG爱好者

标题: 后处理注释问题 [打印本页]

作者: 且行且珍惜、    时间: 2021-10-8 16:55
标题: 后处理注释问题
本帖最后由 且行且珍惜、 于 2021-10-8 22:10 编辑

自己把后处理里添加上了注释功能使用起来方便好多,M00停止后用塞规检测
或者是需要手动串压板什么的都很舒服
不过发现有点小BUG一直不知道怎么改
程序里一旦加上了注释,后期不想要了
或者是加错程序了想取消,怎么弄都不行
希望各位老铁能帮忙看看,应该怎么修改







#=============================================================
proc PB_CMD_ms { } {
#=============================================================
global mom_operation_notes

if { [info exists mom_operation_notes] } {
MOM_do_template end_of_program_5  ;#M05
MOM_do_template auto_tool_change_1 ;#M09
MOM_do_template end_of_program_1;#G91 G28 Z0.0
MOM_force Once G_mode G Y;#强制输出 G Y
MOM_do_template end_of_program_2;#G91 G28 Y0.0
MOM_output_literal "M00"
for {set i 0} {[info exists mom_operation_notes($i)]} {incr i 1} {

MOM_output_literal "($mom_operation_notes($i))"

}
array unset mom_operation_notes

}

}
最后补充一下 如果程序从来没加过注释处理出来都是一切正常的
就是加了注释之后不想要再删除就出现问题了
感觉正常应该是把注释内容删除后,处理出来的效果、应该和从来没加过注释
的效果相同才对


作者: gongxixi    时间: 2021-10-8 17:21
我试了一下也是,搞不定,搞定了告诉我
作者: 菲非尔    时间: 2021-10-8 21:20
用这段代码

global mom_operation_notes

if {[info exists mom_operation_notes]} {

for {set i 0} {[info exists mom_operation_notes($i)]} {incr i 1} {
MOM_output_literal "$mom_operation_notes($i)"
}
array unset mom_operation_notes
}

作者: 且行且珍惜、    时间: 2021-10-8 21:43
菲非尔 发表于 2021-10-8 21:20
用这段代码

global mom_operation_notes

感谢回复 不过你这代码和我那个是一样的 我当初就是用的这个代码的原型修改的
这个代码的问题是注释出来的内容没有括号 感觉还是以带括号的形式出来的注释才比较科学
我那个添加了主轴抬起来后主轴停止退出然后M00暂停 方便换压板什么的
作者: 且行且珍惜、    时间: 2021-10-8 22:18

最后删除了注释内容后应该和第一次一样的效果才对 求大神帮忙看看怎么修改TCL
作者: a12241918    时间: 2021-10-8 22:35
说真的   很少会去看程序里这些东西    你还不如 在刀单里加      真的    而且有些机床根本不显示汉字
作者: 且行且珍惜、    时间: 2021-10-8 22:39
a12241918 发表于 2021-10-8 22:35
说真的   很少会去看程序里这些东西    你还不如 在刀单里加      真的    而且有些机床根本不显示汉字

同意你说的,内容是什么不重要,现在主要是为了要m00 到这个工序需要换压板了 或者有的活中间的位置是靠切边落料的时候必须的m00 要不然下一刀精加工会踩在废料上,或者程序分开生成,那样比较麻烦
作者: a12241918    时间: 2021-10-8 22:42
且行且珍惜、 发表于 2021-10-8 22:39
同意你说的,内容是什么不重要,现在主要是为了要m00 到这个工序需要换压板了 或者有的活中间的位置是靠 ...

程序结束后   机床控制里加不也能达到目的吗   
作者: a12241918    时间: 2021-10-8 22:44
a12241918 发表于 2021-10-8 22:42
程序结束后   机床控制里加不也能达到目的吗

机床控制  结束刀轨事件    stop
作者: 且行且珍惜、    时间: 2021-10-8 22:47
a12241918 发表于 2021-10-8 22:44
机床控制  结束刀轨事件    stop

对对,以前没有后处理时候是那么弄的,不过后来弄后处理了感觉比较方便,其实即使现在不修改用起来也不影响,就是不知道是不干咱们编程都有强迫症,知道了bug能完美希望尽量完美
作者: a12241918    时间: 2021-10-8 22:50
且行且珍惜、 发表于 2021-10-8 22:47
对对,以前没有后处理时候是那么弄的,不过后来弄后处理了感觉比较方便,其实即使现在不修改用起来也不影 ...

了解了      帮不了你了    等论坛大神解答吧
作者: coocool05    时间: 2021-10-8 22:54
global mom_operation_notes

if {[info exists mom_operation_notes]} {

for {set i 0} {[info exists mom_operation_notes($i)]} {incr i 1} {
MOM_output_literal "($mom_operation_notes($i))"
}
array unset mom_operation_notes
}
这样不就有括号了
作者: 且行且珍惜、    时间: 2021-10-8 23:13
coocool05 发表于 2021-10-8 22:54
global mom_operation_notes

if {} {

:liuhan: 现在的问题不是有没有括号的问题,是添加上注释内容后,再删除内容还会输出本不应该输出的问题,希望大神有空时候帮忙看看
作者: 893011376    时间: 2021-10-9 08:13
global mom_operation_notes

if {[info exists mom_operation_notes]} {

for {set i 0} {[info exists mom_operation_notes($i)]} {incr i 1} {




MOM_output_literal "$mom_operation_notes($i)"
}
array unset mom_operation_notes
}



然后在注释里加入括号就行了(哈哈哈哈哈)
作者: coocool05    时间: 2021-10-9 08:27
893011376 发表于 2021-10-9 08:13
global mom_operation_notes

if {} {

有理,呵呵只想到代码加括号,没有想到注释括号
作者: mon19879    时间: 2021-10-9 08:47
定制命令里面不加括号,然后使用的时候在注释框里写的时候把括号写上.你看这样能解决你的问题不?
作者: snowa*    时间: 2021-10-9 09:13
这个注释再什么地方的?
作者: 且行且珍惜、    时间: 2021-10-9 19:35
893011376 发表于 2021-10-9 08:13
global mom_operation_notes

if {} {

思路没毛病 不过现场使用的时候注释内容基本都是忽略或者随便打几个数字 全当是个开关了 现在要的是走到添加注释的程序的时候会自动 M05 M09 G91G28Z0 G91G28Y0 M00 这一套组合代码来了的时候方便自己测量尺寸 或者拆卸倒换压板 注释有内容的时候输出这一套代码 注释内容删除后就应该关闭这套代码才对
作者: 且行且珍惜、    时间: 2021-10-9 19:36
snowa* 发表于 2021-10-9 09:13
这个注释再什么地方的?

我是放在每个工序前面
作者: 且行且珍惜、    时间: 2021-10-9 19:36
mon19879 发表于 2021-10-9 08:47
定制命令里面不加括号,然后使用的时候在注释框里写的时候把括号写上.你看这样能解决你的问题不?

注释不重要 重要的是那套组合代码
作者: 且行且珍惜、    时间: 2021-10-9 19:40
现在有个思路是通过判断输出的字节 字节大于2个的时候正常输出 小于等于2个字节的时候就屏蔽所有内容 可问题是不知道代码是啥怎么写不会
作者: 472751863    时间: 2021-10-10 08:40
本帖最后由 472751863 于 2021-10-10 08:41 编辑

你把中间调用块命令删了,就好啦
global mom_operation_notes

if { [info exists mom_operation_notes] } {
for {set i 0} {[info exists mom_operation_notes($i)]} {incr i 1} {
MOM_output_literal "$mom_operation_notes($i)"
}
array unset mom_operation_notes
}


作者: mon19879    时间: 2021-10-12 10:12
且行且珍惜、 发表于 2021-10-9 19:36
注释不重要 重要的是那套组合代码

注释里面的东西删了  内容就不会输出了啊,只会多一个括号在那里.   这个括号就是你代码里面的,所以 你代码写的时候不加括号,   然后 注释的内容写上括号就行了啊.
作者: 且行且珍惜、    时间: 2021-10-13 11:28
mon19879 发表于 2021-10-12 10:12
注释里面的东西删了  内容就不会输出了啊,只会多一个括号在那里.   这个括号就是你代码里面的,所以 你 ...

是这样的,注释有没有都行,注释功能就相当于一个开关,有注释时候开关是开,没有注释哥把注释内容删除后功能就关,就为了要G91 G28 Z0 然后 M00暂停 方便自己测量公差或者换压板 把主要内容删除注释的意义就没有了
作者: 穿着棉袄洗澡    时间: 2021-10-13 12:38
a12241918 发表于 2021-10-8 22:35
说真的   很少会去看程序里这些东西    你还不如 在刀单里加      真的    而且有些机床根本不显示汉字

马扎克支持汉字
作者: snowa*    时间: 2021-10-13 13:30
楼主的关注不是注释本身,而且取消注释后怎么让后处理同步取消输出。就像没发生一样
作者: mon19879    时间: 2021-10-13 21:27
且行且珍惜、 发表于 2021-10-13 11:28
是这样的,注释有没有都行,注释功能就相当于一个开关,有注释时候开关是开,没有注释哥把注释内容删除后 ...

终于明白意思了,我刚试了一下发现达不到你要的效果..你这个是加在哪个位置在?要是在开头或者结尾可以用  开始事件和结束事件 当成开关用.把开关打开 然后输出 你设置好的 内容.
作者: 且行且珍惜、    时间: 2021-10-13 21:57
mon19879 发表于 2021-10-13 21:27
终于明白意思了,我刚试了一下发现达不到你要的效果..你这个是加在哪个位置在?要是在开头或者结尾可以用 ...

我现在加在每个工序头的位置 然后到哪个工序需要暂停就在哪个程序里加上注释 你说那个关联开始或结束事件也行的 就是不知道 那个变量是什么 如果知道希望指点一下
作者: mon19879    时间: 2021-10-14 09:00
且行且珍惜、 发表于 2021-10-13 21:57
我现在加在每个工序头的位置 然后到哪个工序需要暂停就在哪个程序里加上注释 你说那个关联开始或结束事件 ...

我没有用自带的事件,我是新加了一个.你可以参考下,当选中这个事件,不管里面有没有内容,都是输出你想要的内容.

1.jpg (71.15 KB, 下载次数: 28)

1.jpg

2.jpg (74.06 KB, 下载次数: 24)

2.jpg

作者: 且行且珍惜、    时间: 2021-10-14 22:35
mon19879 发表于 2021-10-14 09:00
我没有用自带的事件,我是新加了一个.你可以参考下,当选中这个事件,不管里面有没有内容,都是输出你想 ...

图1后处理添加好弄  请问下图2是怎么弄的?怎么让自定义可以在工序里出现,不知道怎么在工序里添加自定义
作者: 且行且珍惜、    时间: 2021-10-16 23:54


感谢大家回复 在注释里没解决 不过找到了新替代方法 用机床事件来当开关可以正常保证需要的时候输出不需要的时候取消了
作者: mon19879    时间: 2021-10-18 09:20
且行且珍惜、 发表于 2021-10-14 22:35
图1后处理添加好弄  请问下图2是怎么弄的?怎么让自定义可以在工序里出现,不知道怎么在工序里添加自定义

建后处理的时候把   启用 UDE 勾打上,然后新建你想要的事件.最后会生成一个.cdl文件.把它复制到 user_def_event文件下替换原来的.
作者: 且行且珍惜、    时间: 2021-10-18 12:26
mon19879 发表于 2021-10-18 09:20
建后处理的时候把   启用 UDE 勾打上,然后新建你想要的事件.最后会生成一个.cdl文件.把它复制到 user_de ...

能麻烦说下具体路径吗
作者: mon19879    时间: 2021-10-18 12:36
且行且珍惜、 发表于 2021-10-18 12:26
能麻烦说下具体路径吗

E:\NX 8.5\MACH\resource\user_def_event    我的是8.5,你的根据你的具体安装路径找.
作者: snowa*    时间: 2021-10-20 19:37
且行且珍惜、 发表于 2021-10-16 23:54
感谢大家回复 在注释里没解决 不过找到了新替代方法 用机床事件来当开关可以正常保证需要的时候输出不 ...

怎么我用auxfun删了事件,还会输出代码?
能分享一下具体怎么加吗?
私信给你了,方便的话加个维新
作者: 且行且珍惜、    时间: 2021-10-20 21:22
snowa* 发表于 2021-10-20 19:37
怎么我用auxfun删了事件,还会输出代码?
能分享一下具体怎么加吗?
私信给你了,方便的话加个维新

auxfun不是我自己加的,后处理里原本就有这个,应该是自带的默认的,把里面内容按我发的改一下就可以,需要的时候添加上事件,不用的时候也不用删除,把事件外面有个打勾的地方去掉就不执行事件了
作者: snowa*    时间: 2021-10-26 18:11
且行且珍惜、 发表于 2021-10-20 21:22
auxfun不是我自己加的,后处理里原本就有这个,应该是自带的默认的,把里面内容按我发的改一下就可以,需 ...

摸索出来了,判断值不能用默认的0
用0删了事件还会有代码输出
换其他就好了
作者: 且行且珍惜、    时间: 2021-10-27 06:44
snowa* 发表于 2021-10-26 18:11
摸索出来了,判断值不能用默认的0
用0删了事件还会有代码输出
换其他就好了

这么奇怪吗?我那个不会,不受0的影响
作者: wen123abc    时间: 2022-3-25 20:20
我用是好的删掉括号出来的 就没有
作者: snowa*    时间: 2023-6-11 21:13
global mom_operation_notes

if { [info exists mom_operation_notes] } {
for {set i 0} {[info exists mom_operation_notes($i)]} {incr i 1} {
if {[string length $mom_operation_notes($i)]>0} {
MOM_output_literal "M00"
}
}
array unset mom_operation_notes
}

可以实现
但是同一把刀,带注释的刀路不是第一个的话,识别不到
需要把判断和输出分开放
作者: nxumdy    时间: 2024-1-21 20:57
来学习一下




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