75921872 发表于 2023-9-25 11:26:16

关于后处理刀具列表获取Z值

教大家关于后处理获取最大最小Z深度。顺便把更新的后处理上传。
Buffer 缓冲。使用缓冲,需要读取和写入。直接示例:


min_z$   : 99999      后处理自身定义 最小min_z$
max_z$: -99999   后处理自身定义 最大max_z$
rc1       :2   
wc1   :1   
size1   :0   


b1_t          : 0   缓冲记录刀号
b1_h         :0    缓冲记录H
b1_d         : 0   缓冲记录直径
b1_maxz   : 0   缓冲记录最大Z
b1_minz   : 0   缓冲记录最小Z
rbuf 1 0 5 0 0

定义一个刀具比较缓冲2
fmt "T"4b2_t
rc2         : 1
wc2      : 1
size62    : 0
fbuf 2 0 1 0 0


t_xu         : 0   缓冲传递,刀号
h_xu          : 0   缓冲传递,H
d_xu          : 0   缓冲传递,直径
maxz_xu    : 0   缓冲传递,Z最大
minz_xu    : 0   缓冲传递,Z最小


定义刀具列表要输出的注释(以上5个)
fmt"T"            4my_t
fmt"H"         4my_h
fmt"D"         2my_d
fmt"MAX_Z"2my_maxz
fmt"MIN_Z"   2my_minz


写入缓冲区1
pwritbuf1   命名缓冲区1 写入参数
            b1_t = t_xu
            b1_h = h_xu
            b1_d = d_xu
            b1_minz = min_z$
            b1_maxz = max_z$
            b1_t = wbuf(1 ,wc1)   执行列表写入
            
            获取写入
            t_xu = t$
            h_xu = tldia$
            d_xu = tlngno$


读取缓冲区1
preadbuf1   命名缓冲区1 读入参数
                size1 = rbuf(1,0)
                rc1 = 1
                my_maxz = -99999
                my_minz = 99999
                while rc1 <= size1,
                   [
                  b1_t = rbuf(1,rc1)
                  if b2_t = b1_t,
                  [
                  if b1_minz < my_minz, my_minz = b1_minz
                  if b1_maxz < my_maxz, my_maxz = b1_maxz
                  my_t = b2_t
                  my_h = b1_h
                  my_d = b1_d                   ]
                  ]
             下面可以输出注释了
            "(", *my_t, *my_h, *my_d, *my_maxz, *my_minz, ")", e$


pwrrt$ 此处为NCI预先读取区
            pwritbuf1   写入缓冲放到后面
         # ................., ptooltable 此处原刀具列表屏蔽掉


psof
可不加,pwritbuf1   如果注释读取不对,此处再加一个写入缓冲
            preadbuf1 直接放在 psof 文件开始位置下面


差不多就这些步骤,可根据需要添加注释,论坛也有相关MP后处理说明,可以看下 buffer缓冲说明,添加或减少注释,需要注意下 rbuf 一行的数字要对上
侧铣头后处理 增加了 "崴立侧铣头C0-360自动侧头,侧卧头转换",未传,需要可联系。



stories2 发表于 2023-9-25 11:33:43

大神666看不懂

流浪在水一方 发表于 2023-9-25 12:54:27

緩衝區對我太難一直不理解其原理不能實際去運用...看了老哥這篇 還是不太懂
rbuf10500 fbuf20100....這些是什麼作用 數字代表什麼 ?
size1 = rbuf(1,0)   b1_t = rbuf(1,rc1)....這個也是不懂原理

75921872 发表于 2023-9-25 14:23:20

流浪在水一方 发表于 2023-9-25 12:54
緩衝區對我太難一直不理解其原理不能實際去運用...看了老哥這篇 還是不太懂
rbuf10500 fbuf20100... ...
fbuf n a b c d

5个数

n : 缓冲区编号1-10

a : 使用此标志当后处理完成后将缓冲区保存到文本文件。设置为 1 则保存文件,为 0 则不保存。设置为 2,保存缓冲区,即使它是空的。

b : 缓冲区的大小。对于数字缓冲区,这是每条记录的值数(最大值50)。 对于字符串缓冲区,它是字符串中的字符数。

c : 指示是否从预先存在的 ASCII 文本文件初始化缓冲区。设置为 1 进行初始化,设置为 0 省略初始化

d: 缓冲区类型的代码。0 = 数字,1 = 字符串。如果省略此值,则 0 为假设。
------------------------------------------------------------------------------------------------------
size1 = rbuf(1,0)   是读取缓冲区大小
b1_t = rbuf(1,rc1) ,b1_t位于列第一位,这里读取b1_t所在列

流浪在水一方 发表于 2023-9-25 15:29:16

75921872 发表于 2023-9-25 14:23
fbuf n a b c d

5个数


謝謝老哥說明{:handshake:}    ...果然太難了 看來要消化很久...

gsphzc 发表于 2023-9-25 19:53:06

谢谢分享!

nms981 发表于 2023-9-25 20:18:13

感谢分享,帮顶!

邮寄爱好者 发表于 2023-9-25 22:46:23

感谢分享,帮顶!

564650752 发表于 2023-9-26 08:19:52

感谢分享,帮大师顶个贴!
页: [1]
查看完整版本: 关于后处理刀具列表获取Z值