Обязательное заполнение пользователем информации о системе ЧПУ и станке


Для того чтобы перед началом работы с постпроцессором пользователь обязательно заполнил данные о системе ЧПУ и станке необходимо в текстовом редакторе внести изменения в раздел файла постпроцессора <CommonDefinitions>. Файл постпроцессора *.sppx представляет собой обычный XML-файл. Поэтому его можно отредактировать, например, используя Windows Notepad, а лучше использовать Notepad++ чтобы видеть подсветку синтаксиса.

Обычно данный раздел выглядит следующим образом:

<CommonDefinitions>
<LinearApproxPrecision IsSet="False">0.01</LinearApproxPrecision>
<Circles>
<Support>True</Support>
<HelixSupport>True</HelixSupport>
<Center>Absolute</Center>
<Division>DoNotBreak</Division>
<MaxRadius>10000</MaxRadius>
</Circles>
<XMax>100000</XMax>
<YMax>100000</YMax>
<ZMax>100000</ZMax>
<UpperCaseComments>True</UpperCaseComments>
<Spaces>False</Spaces>
<DecimalSeparator>Point</DecimalSeparator>
<BlocksNumbering>
<Address>N</Address>
<StartValue>100</StartValue>
<StepValue>2</StepValue>
<Frequence>0</Frequence>
</BlocksNumbering>
</CommonDefinitions>

Можно добавить специальный атрибут MakeQuery="True" к любому из узлов. Тогда значение для данного конкретного параметра будет запрошено у пользователя сразу после открытия файла постпроцессора.

Например, при заполнении раздела указанным ниже способом:

<CommonDefinitions>
<LinearApproxPrecision IsSet="False" MakeQuery="True">0.01</LinearApproxPrecision>
<Circles>
<Support MakeQuery="True">True</Support>
<HelixSupport MakeQuery="True">True</HelixSupport>
<Center MakeQuery="True">Absolute</Center>
<Division MakeQuery="True">DoNotBreak</Division>
<MaxRadius MakeQuery="True">10000</MaxRadius>
</Circles>
<XMax MakeQuery="True">100000</XMax>
<YMax MakeQuery="True">100000</YMax>
<ZMax MakeQuery="True">100000</ZMax>
<UpperCaseComments MakeQuery="True">True</UpperCaseComments>
<Spaces MakeQuery="True">False</Spaces>
<DecimalSeparator MakeQuery="True">Point</DecimalSeparator>
<BlocksNumbering>
<Address MakeQuery="True">N</Address>
<StartValue MakeQuery="True">100</StartValue>
<StepValue MakeQuery="True">2</StepValue>
<Frequence MakeQuery="True">0</Frequence>
</BlocksNumbering>
</CommonDefinitions>


Сразу после загрузки файла постпроцессора (включая случай запуска генерации УП напрямую из SprutCAM) появится показанное ниже окно диалога:

images/download/attachments/124267587/image2023-4-18_17-21-56.png

При нажатии Сохранить данные запишутся в файл постпроцессора, и в будущем это окно появляться не будет. Если нажать OK, генерация УП будет произведена с указанными пользователем параметрами, но в файл постпроцессора данные не сохранятся, поэтому при следующем открытии диалог будет показан снова. При отмене файл постпроцессора загружен не будет и УП не сгенерируется.

Ввод дополнительной информации

При необходимости ввода дополнительной информации разработчик постпроцессоров может формировать перечень параметров обязательных для заполнения пользователем. В этом случае в окне запроса информации появится новая группа, в которой отобразится перечень. Параметры могут быть двух видов: выпадающий список и поле для ввода. С каждым параметром связана глобальная переменная постпроцессора. После ввода пользователем параметров каждая такая переменная принимает начальное значение в соответствии с выбранным или введённым параметром.

Для добавления дополнительных параметров в окно запроса информации необходимо в текстовом редакторе внести изменения в раздел файла постпроцессора <InitialQuestions>. Формат раздела:

<InitialQuestions>
<!-- Multiple <Question> nodes possible -->
<Question>
<QuestionSentence>User visible text for the question</QuestionSentence>
<VarID>Name_of_variable</VarID>
<VarType>Type_of_variable</VarType> <!-- vtString, vtReal, vtInteger types available -->
<VarValue>
<![CDATA[Default value of the variable]]>
</VarValue>
<EnumValues>
<!-- None or multiple <EnumValue> nodes are possible -->
<EnumValue>
<Caption>User visible caption of first possible value</Caption>
<Value>
<![CDATA[Variable first possible value]]>
</Value>
</EnumValue>
<EnumValue>
<Caption>User visible caption of second possible value</Caption>
<Value>
<![CDATA[Variable second possible value]]>
</Value>
</EnumValue>
</EnumValues>
</Question>
</InitialQuestions>

Здесь:

  • "User visible text for the question" – Сообщение для пользователя рядом с полем ввода.

  • "Name_of_variable" – Имя глобальной переменной доступной в постпроцессоре (включая произвольно объявленные программистом в обработчике Common переменные).

  • "Type_of_variable" – Тип переменной. Возможно одно из трех значений: vtString для типа String, vtReal для типа Real и vtInteger для типа Integer.

  • "Default value of the variable" – Начальное значение, которое будет присвоено переменной.

  • Если переменная должна принимать только ограниченный набор значений (выпадающий список) то нужно определить непустую секцию "<EnumValues>".

  • "User visible caption of first possible value" – Дружелюбное название для значения переменной.

  • "Variable first possible value" – любое значение, которое должно иметь тот же тип что и глобальная переменная.

  • Текст между "<!--" и "-->" это просто комментарий в корректном для XML синтаксисе.

  • Синтаксическая конструкция, которая начинается с "<!CDATA[" и заканчивается как "]]>" необходима чтобы было возможным вводить любые наборы символов без нарушения корректности синтаксиса XML.

Например, при подобном заполнении раздела:

<InitialQuestions>
<Question>
<QuestionSentence>Input some string Variable1 value</QuestionSentence>
<VarID>Variable1</VarID>
<VarType>vtString</VarType>
<VarValue>
<![CDATA[Default variable 1 value 1]]>
</VarValue>
<EnumValues>
<EnumValue>
<Caption>Value 1</Caption>
<Value>
<![CDATA[Default variable 1 value 1]]>
</Value>
</EnumValue>
<EnumValue>
<Caption>Value 2</Caption>
<Value>
<![CDATA[Default variable 1 value 2]]>
</Value>
</EnumValue>
<EnumValue>
<Caption>Value 3</Caption>
<Value>
<![CDATA[Default variable 1 value 3]]>
</Value>
</EnumValue>
</EnumValues>
</Question>
<Question>
<QuestionSentence>Input some real Variable2 value</QuestionSentence>
<VarID>Variable2</VarID>
<VarType>vtReal</VarType> <!--vtString, vtReal, vtInteger-->
<VarValue>
<![CDATA[10.321]]>
</VarValue>
<EnumValues>
<EnumValue>
<Value>
<![CDATA[9.98]]>
</Value>
</EnumValue>
<EnumValue>
<Value>
<![CDATA[10.321]]>
</Value>
</EnumValue>
<EnumValue>
<Value>
<![CDATA[4.782]]>
</Value>
</EnumValue>
</EnumValues>
</Question>
<Question>
<QuestionSentence>Input some integer Variable3 value</QuestionSentence>
<VarID>Variable3</VarID>
<VarType>vtInteger</VarType>
<VarValue>
<![CDATA[20]]>
</VarValue>
</Question>
</InitialQuestions>

При загрузке файла постпроцессора пользователю будет предложено заполнить следующие данные:

images/download/attachments/124267587/image2020-4-27_11-49-38.png

После заполнения и сохранения данных пользователем раздел в файле постпроцессора принимает следующий вид:

<InitialQuestions>
<Question MakeQuery="False">
<QuestionSentence>Input some string Variable1 value</QuestionSentence>
<VarID>Variable1</VarID>
<VarType>vtString</VarType>
<VarValue>
<![CDATA[Default variable 1 value 2]]>
</VarValue>
<EnumValues>
<EnumValue>
<Caption>Value 1</Caption>
<Value>
<![CDATA[Default variable 1 value 1]]>
</Value>
</EnumValue>
<EnumValue>
<Caption>Value 2</Caption>
<Value>
<![CDATA[Default variable 1 value 2]]>
</Value>
</EnumValue>
<EnumValue>
<Caption>Value 3</Caption>
<Value>
<![CDATA[Default variable 1 value 2]]>
</Value>
</EnumValue>
</EnumValues>
</Question>
<Question MakeQuery="False">
<QuestionSentence>Input some real Variable2 value</QuestionSentence>
<VarID>Variable2</VarID>
<VarType>vtReal</VarType>
<VarValue>
<![CDATA[9.98]]>
</VarValue>
<EnumValues>
<EnumValue>
<Caption>9.98</Caption>
<Value>
<![CDATA[9.98]]>
</Value>
</EnumValue>
<EnumValue>
<Caption>10.321</Caption>
<Value>
<![CDATA[10.321]]>
</Value>
</EnumValue>
<EnumValue>
<Caption>4.782</Caption>
<Value>
<![CDATA[4.782]]>
</Value>
</EnumValue>
</EnumValues>
</Question>
<Question MakeQuery="False">
<QuestionSentence>Input some integer Variable3 value</QuestionSentence>
<VarID>Variable3</VarID>
<VarType>vtInteger</VarType>
<VarValue>
<![CDATA[12345]]>
</VarValue>
<EnumValues/>
</Question>
</InitialQuestions>

Тогда при выполнении переменные буду иметь следующие значения:

  • Variable1 = "Default variable 1 value 2";

  • Variable2 = 9.98;

  • Variable3 = 12345;

Сопутствующие ссылки:

Главное окно