颠覆传统理念__NX1926新功能应用__读取毛坯数据并获取加工坐标系方位,含数学原理详解
大家好,我是闪光蜗牛。受到前面安周版主的帖子启发——
海德汉原生态毛坯输出___NX1926新功能
http://www.ugsnx.com/thread-287704-1-1.html
从而可知NX1926的后置处理已经可以获取毛坯几何体的相关参数,比如长,宽,高以及毛坯在空间内的姿态等。
蜗牛在想我们获取了上述信息之后,再结合已有的工件坐标系(MCS-Machining coordinate system)的相关参数,便可以计算出MCS相对于毛坯的位置关系,从而能更直接的从加工程序中体现工件坐标系的位置。实现这样的目的后,可以降低对于外挂等辅助工具的依赖,方便查看加工坐标,提高调机效率,降低失误风险,缩短加工周期。
那具体应该怎么做呢?跟随蜗牛的思路一点一点看吧——
1. 准备工作
确认使用的NX版本为1926,并且在”实用工具”——“特征开关”中开启 [启用毛坯体或组件的创建]
新建几何体,选择部件,选择毛坯,创建刀轨。
2. 数学过程
2.1计算MCS相对于毛坯中心在绝对坐标系(ACS-Absolute coordinatesystem)中的位置关系
for {set i 0} {$i < 3} {incr i} {
set blank_mcs($i)
}
由此可得到blank_mcs(0),blank_mcs(1) ,blank_mcs(2)即MCS相对毛坯在ACS中的XYZ的向量。
2.2将以上结果投影至MCS,得出工件坐标系原点在MCS中相对于毛坯中心的位置关系
通过矩阵与转置矩阵的乘积即可得出结果:
proc MTX3_vec_multiply {u m w} {
upvar $u ul; upvar $m ml; upvar $w wl
set wl(0)
set wl(1)
set wl(2)
}
使用以上过程可以简化运算部分的代码。没有了解过的读者可以保存这个过程,在进行坐标转换时十分便捷。
MTX3_vec_multiply blank_mcs mom_msys_matrix blank_mcs_center
得到的blank_mcs_center(0),blank_mcs_center(1),blank_mcs_center(2)即工件坐标系原点相对于毛坯中心在MCS中的XYZ向量。
2.3毛坯长宽高除以2,使其2等分
set blank_xx
set blank_yy
set blank_zz
2.4求出毛坯不同方向的偏置值
set blank_x_left
set blank_y_front
set fol_height
2.5Z轴以顶面为参考,减去毛坯高的一半
set blank_mcs_center(2)
2.6对于上述引用的变量的注释:
mom_blank_block_length 毛坯的长
mom_blank_block_width 毛坯的宽
mom_blank_block_height 毛坯的高
mom_blank_block_center 毛坯中心相对于ACS的位置
mom_msys_origin MCS原点相对于ACS的位置
mom_msys_matrix MCS姿态的9值矩阵
3. 输出工件坐标系相对于毛坯的位置
#X位置
if { } {
MOM_output_text "(X分中)"
} elseif {} {
MOM_output_text "(X左端为零)"
} elseif {} {
MOM_output_text "(X右端为零)"
} else {
MOM_output_text "(X分中偏移)"
}
#Y位置
if { } {
MOM_output_text "(Y分中)"
} elseif {} {
MOM_output_text "(Y下端为零)"
} elseif {} {
MOM_output_text "(Y上端为零)"
} else {
MOM_output_text "(Y分中偏移)"
}
#Z位置
if { } {
MOM_output_text "(Z顶面为零)"
} elseif {} {
MOM_output_text "(Z底面为零)"
} else {
MOM_output_text "(Z顶面偏移)"
}
4. 结果展示
程序中的中文是为了有更好的展示效果,如果受机床编码限制,也可用英文表示方位。
以上结果同样可以输出至excel表格程序单,txt或csv格式的文本程序单中。关于这些的做法,后面蜗牛会继续分享。
做一件对行业有贡献的事情。
最后感谢安周版主上期的无私分享,才有了本文的诞生。
同时向版主这样敢为人先,勇于突破桎梏的人们致敬。
按照大师给的代码做了一下,几个极端的点都能输出,但是其他点输出时blank_mcs_center值有问题,应该是“矩阵与转置矩阵的乘积”这个代码有问题,麻烦大概指点下代码的用法,我来看看是格式2有问题还是什么问题 感谢大师分享经验{:victory:} 本帖最后由 安周 于 2020-6-24 20:39 编辑
感谢大师分享经验,需要你这种分享精神会更精彩!! 大师怎么用的,一下复制下后处理去报警 楼主和版主一样强悍:kaixin: 感谢大师分享经验,需要你这种分享精神会更精彩! 感谢大师分享经验,需要你这种分享精神会更精彩!!{:smile:} 感谢大师分享!支持蜗牛哥!