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