Обязательное заполнение пользователем информации о системе ЧПУ и станке
Для того чтобы перед началом работы с постпроцессором пользователь обязательно заполнил данные о системе ЧПУ и станке необходимо в текстовом редакторе внести изменения в раздел файла постпроцессора <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) появится показанное ниже окно диалога:
При нажатии Сохранить данные запишутся в файл постпроцессора, и в будущем это окно появляться не будет. Если нажать 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
>
При загрузке файла постпроцессора пользователю будет предложено заполнить следующие данные:
После заполнения и сохранения данных пользователем раздел в файле постпроцессора принимает следующий вид:
<
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;
Сопутствующие ссылки: