[SUBROUTINE] name = Rolling type = Rolling icon = icons/lathe-surface.png image = images/lathe-surface.png help = Многопроходная проточка цилиндра. order = roll_Z0 roll_X0 roll_safe roll_Z1 roll_X1 roll_rdepth roll_rough_feed roll_allowance roll_pdepth roll_fin_feed [PARAM_roll_safe] name = Safe distance type = float icon = icons/line.png image = images/line.png tool_tip = Безопасное расстояние value = 2 [PARAM_roll_Z1] name = Z1 type = float icon = icons/line.png image = images/line.png tool_tip = Конечная координата Z value = 0 [PARAM_roll_Z0] name = Z0 type = float icon = icons/line.png image = images/line.png tool_tip = Исходная координата Z value = 15 [PARAM_roll_rdepth] name = rdepth type = float icon = icons/line.png image = images/line.png tool_tip = Черновая глубина реза value = 1 [PARAM_roll_fdepth] name = fdepth type = float icon = icons/line.png image = images/line.png tool_tip = Чистовая глубина реза value = 0.5 [PARAM_roll_allowance] name = Finishing allowance type = float icon = icons/line.png image = images/line.png tool_tip = Припуск на чистовую обработку value = 0.2 [PARAM_roll_X0] name = X start type = float icon = icons/line.png image = images/line.png tool_tip = Исходный диаметр обработки value = 11 [PARAM_roll_X1] name = X finish type = float icon = icons/line.png image = images/line.png tool_tip = Конечный диаметр обработки value = 7 [PARAM_roll_fin_feed] name = Finishing feed type = float icon = icons/line.png image = images/line.png tool_tip = Подача резанья при чистовой обработке value = 100 [PARAM_roll_rough_feed] name = Roughing feed type = float icon = icons/line.png image = images/line.png tool_tip = Подача резанья при черновой обработке value = 300 [DEFINITIONS] content = [CALL] content = # = #param_roll_fdepth ; Глубина реза при чистовой обработке # = #param_roll_allowance ; Припуск на чистовую обработку # = #param_roll_x1 ; Чистовая конечная координата по X # = #param_roll_x0 ; Начальная координата по X # = [# + #] ; Черновая конечная по X # = #param_roll_rough_feed ; Подача при черновой обработке # = #param_roll_fin_feed ; Подача при чистовой обработке # = #param_roll_rdepth ; Глубина реза при черновой обработке # = #param_roll_safe ; Безопасное расстояние ; Расчет толщины торца # = [ABS[#param_roll_z1 - #param_roll_z0] + #] ; Длина цилиндра ( 0 15 2 ) ; Расчет колличества проходов при черновой обработке # = ABS[ # + # - # ] # = [[# - [# mod #]] / #] ; Колличество проходов при черновой обработке # = 0 G90 G0 X[#param_roll_x0 + #] Z[#param_roll_z0 + #] G91 G1 X-[#] F[#] Z[-# + #] X[#] G0 Z[# - #] o102 do G91 G1 X-[# + #] F[#] Z[-# + #] X[#] G0 Z[# - #] # = [#+1] o102 while [# LT [#]] ; Последний черновой проход G90 G1 X[# + # ] F[#] G91 G1 Z[-# + #] F[#] X[#] G0 Z[# - #] ; Чистовой проход o103 if [# GT #] (print,Error: Finish cut leather then allowance for finishing!) o103 endif (print,Info: Finishing!) G90 G1 X[#] F[#] G91 G1 Z-[#] F[#] G90 G1 X[#param_roll_x0 + #] G91 G0 Z[#] G90 [BEFORE] content = [AFTER] content =