Добрый день,
В процедуре pparameter$ нужно прочитать параметры использования ENTRY POINT и EXIT POINT далее я создал новую процедуру pcorcomp - для корректировки вывода компенсации, эту процедуру я ввёл в функции движения, быстрого хода, линейного движения и движения по дуге, ну и в процедуре pe_inc_calc нужно вставить !ccomp$
Ну вот что получилось:
use_entry_point : 0 use_exit_point : 0 old_cc_pos : 0
pparameter$ #Read operation parameters if prmcode$ = 12025, rotary_axis2 = rpar(sparameter$, 1)
if prmcode$ = 15222, use_entry_point = rpar(sparameter$, 1) if prmcode$ = 15229, use_exit_point = rpar(sparameter$, 1)
pcorcomp # if use_entry_point, [ if ccomp$, [ old_cc_pos = cc_pos$ cc_pos$ = prv_cc_pos$ ] if prv_ccomp$, cc_pos$ = old_cc_pos ] if use_exit_point, [ if nextccomp$ = 4, cc_pos$ = 0 ]
prapidout #Output to NC of linear movement - rapid pcorcomp
pcan1, pbld, n$, sgplane, `sgcode, sgabsinc, pccdia, pxout, pyout, pzout, pcout, strcantext, scoolant, e$
if rpd_typ$ = 7, pbld, n$, "M00", "(TOOL INSPECTION POINT - POST CUSTOMIZATION REQUIRED)", e$
plinout #Output to NC of linear movement - feed pcorcomp
pcan1, pbld, n$, sgfeed, sgplane, `sgcode, sgabsinc, pccdia, pxout, pyout, pzout, pcout, feed, strcantext, scoolant, e$
if rpd_typ$ = 7, pbld, n$, "M00", "(TOOL INSPECTION POINT - POST CUSTOMIZATION REQUIRED)", e$
pcirout #Output to NC of circular interpolation pcorcomp
pcan1, pbld, n$, `sgfeed, sgplane, sgcode, sgabsinc, pccdia, pxout, pyout, pzout, pcout, parc, feed, strcantext, scoolant, e$
pe_inc_calc #Incremental calculations, end prvcabs = fmtrnd(cabs) #Avoid updating until called explicitly !xia, !yia, !zia, !cia !x$, !y$, !z$, !cc_pos$, !cutpos2$, !ccomp$ |