Я создаю инструмент смены инструмента для перьевого плоттера, который выполняет смену инструмента только каждый раз, когда исходный файл перемещается для чтения данных из нового слоя (внутри inkscape).Этот сценарий внедряет определенный фрагмент GCODE (код, который необходим компьютеру с ЧПУ, чтобы знать, что он должен делать) при каждом изменении слоя.
У меня уже есть все переменные, и мне нужно только знать, как их видеть.сколько времени номер слоя остается «1», пока он не изменится на «2», чтобы скрипт знал, когда нужно вводить «код изменения инструмента».
После нескольких часов поиска возможных решений мне не удалосьчтобы это заработало.Я попробовал некоторые операторы while, но все они провалились, я даже несколько раз приводил к сбою программного обеспечения.Я дошел до того, что теперь удаляю все данные слоя из его символов с помощью re.sub и создаю переменную «номер слоя», которая содержит «1», «2» или «3» (должна иметь возможностьрасширять до 9 или более).
try :
self.last_used_tool == None
except :
self.last_used_tool = None
print_("working on curve")
print_(curve)
if tool != self.last_used_tool :
layernumber = re.sub('[^0-9]','', layer.get(inkex.addNS('label','inkscape')))
g += ("Layer %s" % layernumber + "\n;(Change tool to %s)\n" % re.sub("\"'\(\)\\\\"," ",tool["name"]) ) + tool["tool change gcode"] + "\n"
Этот сценарий работает, но в этом сценарии self.last_used_tool больше нигде не существует, поэтому я считаю, что это фиктивный код.
Прямо сейчас оператор if выводит gcode смены инструмента каждый раз, когда он начинает работать по новому пути, вызывая несколько смен инструмента одного и того же инструмента в одном слое.Мне нужно, чтобы смена инструмента происходила только при первом его перемещении на новый слой.
Я ищу способ, чтобы оператор if мог видеть, увеличился или уменьшился номер слоя, и соответственно изменить инструменттолько в этом случае.Позже я мог бы не проверять номер слоя, но номер инструмента, однако, сейчас, так как я работаю, мне было более понятно использовать номер слоя, так как этот номер в любом случае соответствует номеру инструмента иИнтуитивно мне стало понятнее делать это таким образом.
Спасибо за ваше время и усилия, я надеюсь, что кто-то сможет помочь мне найти решение.Когда сценарий будет завершен, я опубликую его в Интернете, чтобы другие тоже могли его использовать.Сценарий, над которым я работаю, - это старый проект с открытым исходным кодом, который был заброшен и явно лишен какой-либо функциональности.Я уже исправил большую часть расширения (включая язык), но смена инструмента никогда не работала.