|
楼主 |
发表于 2025-6-24 08:55:28
|
显示全部楼层
已知的 绝对输出的变量是 xabs,yabs,zabs。增量输出的变量是 xinc, yinc, zinc. 现在还在看他的逻辑没发现有太大的差异
- 原版的后处理Z值处理区域
- pzout #Z output
- if absinc$ = zero, zabs, !zinc
- else, zinc, !zabs
复制代码
- 后带的Z值处理区域
- pfzout #强制Z轴输出
- ptox_4axis
- if absinc$ = zero, *zabs, !zinc
- else, *zinc, !zabs
- ptox_4axis_res
- pzout #Z输出
- ptox_4axis
- if absinc$ = zero, zabs, !zinc
- else, zinc, !zabs
- ptox_4axis_res
复制代码- #endregion
- 我在后处理中发现如下旋转指数计算区域,但是他被屏蔽了?不确定是否解除屏蔽后是否对旋转方向有用,但是目前后处理出的B值是我想要的B+值,不敢轻易去动了,不确定是否是之前的朋友屏蔽的还是编写的时候直接屏蔽的
- # 旋转轴旋转/指数计算区域
- pcoutrev #旋转轴公转计算(修改为缠绕)
- # cdelta = csav - prv_csav
- # if cuttype = one & rot_type > zero & not(index) & toolchng = zero & toolchng0 = zero, #Axis sub和signed direction或shortesat direction
- # [
- # cdelta_calc = abs(cdelta)
- # cdelta_calc = fmtrnd(cdelta_calc)
- # if cdelta_calc > 360, #打断圆弧
- # [
- # rev_brkflag = one #每90或360度打断一次(请参阅plin0 $)
- # redo_proc$ #再处理NCI
- # ]
- # ]
- # while abs(cdelta) > ctol, #如果运动超过ctol,请添加发条
- # [
- # if cdelta > zero,
- # [
- # rev = rev - one
- # cdelta = cdelta - 360
- # ]
- # else,
- # [
- # rev = rev + one
- # cdelta = cdelta + 360
- # ]
- # ]
- # if cuttype <> one, cabs = rev * 360 + csav
- # else, cabs = sav_rev * 360 + csav
- # !csav
- # if index <> 1 & rot_type > 0, #有符号绝对输出或最短方向
- # [
- # #保持在0-360之间
- # while cabs < 0 & absinc$ <> 1, cabs = cabs + 360
- # while cabs > 360 & absinc$ <> 1, cabs = cabs - 360
- # # Calc签署了方向。不知道为什么我要放弃(Calc signed direction. Not sure why I need to flop indx_mc)
- # #相移增量10转,检查奇数/偶数
- # if frac(int((cdelta + 3600)/180)/two), indx_mc = zero #indx_mc = 1
- # else, indx_mc = one #indx_mc = 1
- # if cdelta < 0, indx_mc = zero
- # else, indx_mc = one
- # ]
复制代码 |
|