Александр, хотел бы задать пару вопросов, если не Вас не затруднит...
----------------------------------------------------------------------------- Процедура pmillccb: ... if cutpos2$ = one | (opcode$ = 3 & gcode$ = 81), [ result = newfs(two, cabs) result = newfs(two, cinc) #Cross/Face canned cycle start code if abs(cuttype) = two | (opcode$ = 3 & gcode$ = 81), # Добавленная проверка [ if is_sg112 = 0, # Добавленная проверка [ #Face canned cycle start code, G112 (break ramp) pbld, n$, *sgfeed, "G0", *sg112, is_sg112 = 1, e$ ... Где-нибудь можно прочитать возможные значения переменных cutpos2, opcode? Я так понимаю opcode - код Мастеркамовской операции?
cuttype - в теле поста нашёл, не пойму, как эта переменная меняется, но мне, в принципе, это и не нужно...
----------------------------------------------------------------------------- pmillcca #Cross/Face canned cycle code, after if cutpos2$ = three | (opcode$ = 3 & gcode$ = 80), [ #Cross/Face canned cycle end code if abs(cuttype) = two | (opcode$ = 3 & gcode$ = 80), # Добавленная проверка [ if is_sg112, # Добавленная проверка pbld, n$, *sg113, is_sg112 = 0, e$ #Face ] ... ----------------------------------------------------------------------------- Процедура pdrill0$ #Pre-drill postblock call if gcode$ = 81 & millcc, pmillccb #Только для стандартного цикла сверления? ----------------------------------------------------------------------------- Процедура pcanceldc$ #Cancel drill cycle ... gcode$ = zero ... gcode$ = 80 if millcc, pmillcca gcode$ = zero #Восстанавливаем gcode ----------------------------------------------------------------------------- Процедура pxyzcout #Perform calls for mapping coordinates and shifts if millcc, [ if fmtrnd(cabs) = 360, cabs = zero #Always try to start at zero if (cutpos2$ > zero & cutpos2$ < four) | ((opcode$ = 3 | opcode$ = 16) & is_sg112), # Добавленная проверка [ if abs(cuttype) = two, ppolar_fcyc ]
Вот совместно для этих 5-ти процедур: Зачем в pmillccb, pmillcca нужны проверки на gcode$ и _затем_ на введённую Вами переменную is_sg112? Ведь мы в эти процедуры попадём, только если millcc=1 В процедуре pxyzcout тоже появилась проверка is_sg112...
Почему недостаточно внести: ----------------------------------------------------------------------------- Процедура pdrill0$ #Pre-drill postblock call if millcc, pmillccb Процедура pcanceldc$ #Cancel drill cycle if millcc, pmillcca Процедура pxyzcout #Perform calls for mapping coordinates and shifts if millcc, [ if fmtrnd(cabs) = 360, cabs = zero #Always try to start at zero if (cutpos2$ > zero & cutpos2$ < four) | ((opcode$ = 3 | opcode$ = 16) ), [ if abs(cuttype) = two, ppolar_fcyc ]
Кстати, новый пост замечательно отрабатывает и цикл глубокого сверления G83 [хотя есть проверка "(opcode$ = 3 & gcode$ = 81)"] |