找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 548|回复: 24

[已解决] PC后处理无法像PB那样获取毛坯大小

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

18

主题

168

回帖

1603

积分

六级士官

积分
1603
发表于 2026-9-1 10:29:12 | 显示全部楼层 |阅读模式
屏幕截图 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获取不到毛坯大小

18

主题

168

回帖

1603

积分

六级士官

积分
1603
 楼主| 发表于 2026-9-1 12:37:33 | 显示全部楼层
白色治愈之风 发表于 2026-9-1 11:24
foreach key [array names ::lib_pretreatment] {
    LIB_GE_message "lib_pretreatment key: $key = $: ...

屏幕截图 2026-09-01 123448.png 屏幕截图 2026-09-01 123525.png 屏幕截图 2026-09-01 123559.png
感谢膜拜大佬  已搞定

18

主题

168

回帖

1603

积分

六级士官

积分
1603
 楼主| 发表于 2026-9-2 10:32:09 | 显示全部楼层
白色治愈之风 发表于 2026-9-1 11:02
好像只能读取这里的数值。

铣的毛坯搞定了    昨天晚上回去研究一晚上车削的毛坯获取    查官方文档   应该是实现不了

13

主题

2076

回帖

6229

积分

上尉

积分
6229
发表于 2026-9-1 10:36:18 | 显示全部楼层

回帖奖励 +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)

13

主题

2076

回帖

6229

积分

上尉

积分
6229
发表于 2026-9-1 11:02:14 | 显示全部楼层
11.png 好像只能读取这里的数值。

18

主题

168

回帖

1603

积分

六级士官

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

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


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

16

主题

922

回帖

2456

积分

少尉

积分
2456
发表于 2026-9-1 11:14:30 | 显示全部楼层

回帖奖励 +1 G币

膜拜大神

1

主题

177

回帖

1131

积分

六级士官

积分
1131
发表于 2026-9-1 11:18:13 | 显示全部楼层

回帖奖励 +1 G币

不懂,帮顶一下!!

13

主题

2076

回帖

6229

积分

上尉

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

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

13

主题

2076

回帖

6229

积分

上尉

积分
6229
发表于 2026-9-1 11:26:36 | 显示全部楼层
1、对应于PB是不是自己画的毛坯也能获得外形尺寸。2、如果是半精铣,毛坯是上一道工序制作的小平面体,PB也可以得到外形尺寸吗?

13

主题

2076

回帖

6229

积分

上尉

积分
6229
发表于 2026-9-1 11:30:59 | 显示全部楼层
123.png PB是不是读取的这里面的值

18

主题

168

回帖

1603

积分

六级士官

积分
1603
 楼主| 发表于 2026-9-1 12:26:02 | 显示全部楼层
白色治愈之风 发表于 2026-9-1 11:26
1、对应于PB是不是自己画的毛坯也能获得外形尺寸。2、如果是半精铣,毛坯是上一道工序制作的小平面体,PB也 ...


---



**问题1:自己画的毛坯(几何体类型)能不能获得外形尺寸?**

不能。经过测试,`mom_blank_block_*` 和 `mom_blank_cylinder_*` 变量**只针对包容块和包容圆柱体两种类型**。

- 几何体(自己画的实体)→ 无毛坯尺寸变量
- 几何体小平面体 → 无毛坯尺寸变量
- 部件偏置 → 无毛坯尺寸变量
- 部件轮廓 → 无毛坯尺寸变量
- 部件凸包 → 无毛坯尺寸变量

这些类型只有 `limit,x/y/z,min/max` 刀轨范围变量,但那是**刀轨的加工范围**,不是毛坯的外形尺寸,两者不等价。

---

**问题2:半精铣,毛坯是上一道工序的IPW(小平面体),能不能得到外形尺寸?**

不能。IPW属于几何体/小平面体类型,没有对应的毛坯包围盒变量。

`mom_blank_block_*` 读取的是 **Workpiece中最初定义的毛坯**,不会随工序间IPW的变化而更新。所以半精铣时即使实际毛坯是上道工序加工后的IPW,后处理读到的仍然是初始毛坯的尺寸(如果初始毛坯是包容块的话)。

---

**补充:目前能自动获取外形尺寸的只有两种毛坯类型:**
1. **包容块** → `mom_blank_block_length/width/height` + `mom_blank_block_center`
2. **包容圆柱体** → `mom_blank_cylinder_diameter/height` + `mom_blank_cylinder_center`

其他类型均无毛坯外形尺寸变量。

---

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-10-18 00:25

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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