找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 695|回复: 9

[求助] 这个命令怎么写?自己搞一直报错

[复制链接]

1

主题

19

回帖

4315

积分

中尉

积分
4315
发表于 2024-8-29 17:29:11 | 显示全部楼层 |阅读模式
从而可知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) [expr $mom_msys_origin($i)-$mom_blank_block_center($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) [expr ($ul(0) * $ml(0) + $ul(1) *$ml(1) + $ul(2) *$ml(2))]

    set wl(1) [expr ($ul(0) * $ml(3) + $ul(1) *$ml(4) + $ul(2) *$ml(5))]

    set wl(2) [expr ($ul(0) * $ml(6) + $ul(1) *$ml(7) + $ul(2) *$ml(8))]

}

使用以上过程可以简化运算部分的代码。没有了解过的读者可以保存这个过程,在进行坐标转换时十分便捷。

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 [expr $mom_blank_block_length /2]

set blank_yy [expr $mom_blank_block_width /2]

set blank_zz [expr $mom_blank_block_height /2]



2.4求出毛坯不同方向的偏置值

set blank_x_left [expr -1*$blank_xx]

set blank_y_front [expr -1*$blank_yy]

set fol_height [expr -1*$mom_blank_block_height]



2.5Z轴以顶面为参考,减去毛坯高的一半

set blank_mcs_center(2) [expr $blank_mcs_center(2) - $blank_zz]



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 { [EQ_is_zero $blank_mcs_center(0)] } {

    MOM_output_text "(X分中)"

} elseif {[EQ_is_equal $blank_mcs_center(0) $blank_x_left]} {

    MOM_output_text "(X左端为零)"

} elseif {[EQ_is_equal $blank_mcs_center(0) $blank_xx]} {

    MOM_output_text "(X右端为零)"

} else {

    MOM_output_text "(X分中偏移[format%0.2f $blank_mcs_center(0)])"

}



#Y位置

if { [EQ_is_zero $blank_mcs_center(1)] } {

       MOM_output_text "(Y分中)"

} elseif {[EQ_is_equal $blank_mcs_center(1) $blank_y_front]} {

    MOM_output_text "(Y下端为零)"

} elseif {[EQ_is_equal $blank_mcs_center(1) $blank_yy]} {

    MOM_output_text "(Y上端为零)"

} else {

    MOM_output_text "(Y分中偏移[format%0.2f $blank_mcs_center(1)])"

}



#Z位置

if { [EQ_is_zero $blank_mcs_center(2)] } {

    MOM_output_text "(Z顶面为零)"

} elseif {[EQ_is_equal $blank_mcs_center(2) $fol_height]} {

    MOM_output_text "(Z底面为零)"

} else {

    MOM_output_text "(Z顶面偏移[format%0.2f $blank_mcs_center(2)])"

}


4.   结果展示






17

主题

204

回帖

4865

积分

中尉

积分
4865
发表于 2024-8-29 19:31:24 | 显示全部楼层
看的一脸懵逼

81

主题

1570

回帖

1万

积分

上校

积分
13613
发表于 2024-8-29 20:07:26 | 显示全部楼层
看的一脸懵逼

64

主题

3902

回帖

3万

积分

上将

积分
33041

论坛元老

发表于 2024-8-30 08:14:03 | 显示全部楼层
看完,一脸懵{}

24

主题

412

回帖

2948

积分

少尉

积分
2948
发表于 2024-8-30 15:05:40 | 显示全部楼层

看的一脸懵逼,但你字多,赞一个{:}

6

主题

726

回帖

1万

积分

中校

积分
12908
发表于 2024-8-30 16:42:35 | 显示全部楼层
看的一脸懵逼

61

主题

1130

回帖

6747

积分

上尉

积分
6747
发表于 2024-8-30 20:34:39 | 显示全部楼层
这个值得点赞

1

主题

46

回帖

1010

积分

六级士官

积分
1010
发表于 2024-9-23 10:25:55 | 显示全部楼层
看的一脸懵逼{:titter:}{:titter:}{:titter:}

8

主题

56

回帖

2308

积分

少尉

积分
2308
发表于 2024-9-24 08:47:38 | 显示全部楼层
这个是求助还是分享啊

2

主题

42

回帖

3730

积分

中尉

积分
3730
发表于 2024-9-24 14:57:38 | 显示全部楼层
看的一脸懵逼
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

咨询QQ:1359218528|发帖须知!|Archiver|手机版|小黑屋|UG爱好者论坛 ( 京ICP备10217105号-2 )

GMT+8, 2024-12-22 13:47

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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