找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 49|回复: 7

[求助] PC后处理无法像PB那样获取毛坯大小

[复制链接]
47 G币 回复本帖可获得 1 G币奖励! 每人限 1 次

18

主题

160

回帖

1542

积分

六级士官

积分
1542
发表于 1 小时前 | 显示全部楼层 |阅读模式
屏幕截图 2026-09-01 102604.png
上图是用PB后处理输出的程序头
下面是实现代码
#============================================================# 声明变量#============================================================global mom_blank_block_lengthglobal mom_blank_block_widthglobal mom_blank_block_heightglobal mom_blank_block_centerglobal mom_msys_originglobal mom_msys_matrix#============================================================# 1.计算MCS原点相对毛坯中心在ACS中的向量#============================================================for {set i 0} {$i < 3} {incr i} {    set blank_mcs($i) [expr $mom_msys_origin($i) - $mom_blank_block_center($i)]}#============================================================# 2.矩阵×向量:将ACS向量投影到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#============================================================# 3.毛坯半尺寸#============================================================set blank_xx [expr $mom_blank_block_length / 2.0]set blank_yy [expr $mom_blank_block_width / 2.0]set blank_zz [expr $mom_blank_block_height / 2.0]set blank_x_left [expr -1.0 * $blank_xx]set blank_y_front [expr -1.0 * $blank_yy]set fol_height [expr -1.0 * $mom_blank_block_height]# Z修正:把参考点从毛坯中心移到毛坯顶面set blank_mcs_center(2) [expr $blank_mcs_center(2) - $blank_zz]#============================================================# 4.输出工件尺寸#============================================================MOM_output_literal "(工件尺寸: X[format "%.2f" $mom_blank_block_length]*Y[format "%.2f" $mom_blank_block_width]*Z[format "%.2f" $mom_blank_block_height])"#============================================================# 5.X位置判断#============================================================if {[EQ_is_zero $blank_mcs_center(0)]} {    MOM_output_literal "(工件X设定: 分中 )"} elseif {[EQ_is_equal $blank_mcs_center(0) $blank_x_left]} {    MOM_output_literal "(工件X设定: 左端为0 )"} elseif {[EQ_is_equal $blank_mcs_center(0) $blank_xx]} {    MOM_output_literal "(工件X设定: 右端为0 )"} else {    MOM_output_literal "(工件X设定: 分中偏移[format "%.2f" $blank_mcs_center(0)] )"}#============================================================# 6.Y位置判断#============================================================if {[EQ_is_zero $blank_mcs_center(1)]} {    MOM_output_literal "(工件Y设定: 分中 )"} elseif {[EQ_is_equal $blank_mcs_center(1) $blank_y_front]} {    MOM_output_literal "(工件Y设定: 下端为0 )"} elseif {[EQ_is_equal $blank_mcs_center(1) $blank_yy]} {    MOM_output_literal "(工件Y设定: 上端为0 )"} else {    MOM_output_literal "(工件Y设定: 分中偏移[format "%.2f" $blank_mcs_center(1)] )"}#============================================================# 7.Z位置判断#============================================================if {[EQ_is_zero $blank_mcs_center(2)]} {    MOM_output_literal "(工件Z设定: 顶部为0 )"} elseif {[EQ_is_equal $blank_mcs_center(2) $fol_height]} {    MOM_output_literal "(工件Z设定: 底部为0 )"} else {    MOM_output_literal "(工件Z设定: 顶部偏移[format "%.2f" $blank_mcs_center(2)] )"}



我想移植到PC后处理上   死活搞不定    有大神会吗     PC获取不到毛坯大小

12

主题

1794

回帖

5582

积分

上尉

积分
5582
发表于 半小时前 | 显示全部楼层

回帖奖励 +1 G币

(LIB_PRETREATMENT KEY: 202466,MOM_BLANK_BLOCK_WIDTH = 100.0)
(LIB_PRETREATMENT KEY: 202466,MOM_BLANK_BLOCK_LENGTH = 100.0)
(LIB_PRETREATMENT KEY: 202466,MOM_BLANK_BLOCK_HEIGHT = 50.0)
(LIB_PRETREATMENT KEY: 202466,MOM_BLANK_BLOCK_CENTER,0 = 50.0)
(LIB_PRETREATMENT KEY: 202466,MOM_BLANK_BLOCK_CENTER,1 = 49.999999999999986)
(LIB_PRETREATMENT KEY: 202466,MOM_BLANK_BLOCK_CENTER,2 = 25.0)

12

主题

1794

回帖

5582

积分

上尉

积分
5582
发表于 27 分钟前 | 显示全部楼层
11.png 好像只能读取这里的数值。

18

主题

160

回帖

1542

积分

六级士官

积分
1542
 楼主| 发表于 16 分钟前 | 显示全部楼层
本帖最后由 0小刚/tp 于 2026-9-1 11:15 编辑
白色治愈之风 发表于 2026-9-1 11:02
好像只能读取这里的数值。

先膜拜一下大神   看大神搞出来了  我还在研究   


毛坯变量是怎么注册的?(LIB_SPF_pretreatment_add_var 放在哪个事件?)
是怎么获取的?(LIB_SPF_get_pretreatment 的具体用法?)
那个遍历所有预处理变量的调试代码是怎么写的?

9

主题

403

回帖

1470

积分

六级士官

积分
1470
发表于 14 分钟前 | 显示全部楼层

回帖奖励 +1 G币

膜拜大神

1

主题

155

回帖

947

积分

五级士官

积分
947
发表于 11 分钟前 | 显示全部楼层

回帖奖励 +1 G币

不懂,帮顶一下!!

12

主题

1794

回帖

5582

积分

上尉

积分
5582
发表于 4 分钟前 | 显示全部楼层
0小刚/tp 发表于 2026-9-1 11:12
先膜拜一下大神   看大神搞出来了  我还在研究   

foreach key [array names ::lib_pretreatment] {
    LIB_GE_message "lib_pretreatment key: $key = $::lib_pretreatment($key)"
}这个是遍历,但是如果你的程序里面没有包含所有预处理变量,那么不会输出。
我现在上不去官网了。有些参数记不清,你需要自己去查,这个毛坯的变量没有用到增加变量的指令。

12

主题

1794

回帖

5582

积分

上尉

积分
5582
发表于 2 分钟前 | 显示全部楼层
1、对应于PB是不是自己画的毛坯也能获得外形尺寸。2、如果是半精铣,毛坯是上一道工序制作的小平面体,PB也可以得到外形尺寸吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-9-1 11:29

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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