Главная страница

 For english reader

 Новости 

 САПР-ЧПУ/2005

 APTIPP для CAD/CAM

 Верификатор УП

 Постпроцессоры

 Прайс-лист

 Ответы на вопросы

 Небольшие секреты

 Демоверсия

 Рассылка новостей

 Форум о САПР

 Гостевая книга

 Об "Евразии Лтд"

 CAD/CAM портал

 Наша библиотека

 О вебмастере









Наша библиотека

Трухин Н.М., Филиппович К.В.
"Макрорасширения в GrafCAM - путь к наращиванию функциональности"

Макрорасширения. Введение

          Макрорасширения (сокр. макро) - оригинальный механизм, предназначенный для расширения функциональности GrafCAM путем предоставления пользователю универсального языка для описания алгоритмов, как интерактивного взаимодействия, так и расчета геометрии и технологии обработки на станке с ЧПУ.
          Большинство популярных CAD и САМ-систем имеют заранее запрограммированные разработчиками диалоговые окна и жесткие схемы диалогов, прописанные в непосредственно код программы. Этот подход весьма распространенный, но не оптимальный - число управляемых параметров в окнах может достигать нескольких десятков, но все равно это не позволяет достичь ювелирной настройки на потребности заказчика. Более того, какая либо модификация алгоритмов для расчета движения инструмента конечным пользователем часто вообще не предусмотрена.
          В последние годы для расширения функциональности в ряде систем предлагаются API-средства или технология COM/DCOM. Но в среднестатистическом технологическом бюро российского завода специалистов - технологов с такими знаниями попросту "не бывает". Появляются, правда, в прессе фотографии особо одаренных пользователей, но это скорее единичные случаи, чем повсеместная практика. Кроме того, не всякий завод решится оплатить услуги по развитию функциональности дилеру CAD/CAM системы, цены на подобные услуги по-прежнему далеко не дешевы, хотя некая позитивная тенденция в последние годы все же прослеживается (судя по сугубо рекламным публикациям в прессе).
          Макрорасширения GrafCAM позволяют организовать "попереходную" технологию разработки управляющей программы, автоматизируя расчет геометрии движения режущего инструмента и технологии обработки на основе ранее разработанных алгоритмов. Но, в отличие от других САD или САМ-систем, конечный пользователь может самостоятельно расширять функционал GrafCAM, как своими собственными алгоритмами с изменяемым набором параметров, так и описанием интерфейсов для ввода значений этих параметров. Фокус в том, что для этого вовсе не надо знать сложные алгоритмические языки и технологии программирования.

Зачем и для кого написана статья

          Целью данной публикации является весьма краткое, первоначальное знакомство с механизмом макрорасширений GrafCAM версии 7.ХХ на наиболее простом для понимания примере. Без сомнения, статья адресована специалистам, имеющим практический опыт использования аппарата сценариев диалогов в версии GrafCAM 4.ХХ. Изучение материала статьи значительно облегчит практический опыт эксплуатации системы САПР-ЧПУ.
          В рамках статьи мы рассмотрим два уровня - пользователя и администратора в случае использования простейшего макрорасширения "Вектор". Макро "решает" вопросы выдачи в управляющую программу перемещений по координате X и Y с одновременным движением инструмента по третьей координате Z.

Уровни макрорасширения

          Механизм макрорасширений в GrafCAM существует как бы в двух плоскостях - уровень пользователя (верхний) и уровень администратора (нижний).

На верхнем уровне:

пиктограммы для выполнения операций добавления или вставки макрорасширений в блоки (участки), а также процедуры проектов GrafCAM;

средства выбора макрорасширения из списков доступных макро;

визуальные элементы для организации ввода и контроля значений управляющих параметров;

пиктограммы вызова системы контекстно-чувствительной подсказки.


На нижнем уровне:

инструментарий для описания двухуровневой иерархии макрорасширений;

язык кодирования сценариев диалогов (тел макрорасширений);

язык кодирования тексто-графического содержания контекстно-чувствительных подсказок;



Уровень пользователя

          Как вы помните, процедуры в САПР-ЧПУ программах описывают последовательность движения инструмента и технологические команды, а блоки помогают сократить кодирование, за счет многократного вызова в процедурах типовых траекторий (т.н. участков).
         
На верхнем уровне, макрорасширения ассоциируются у пользователя с пиктограммами, доступными во вспомогательном меню работы с блоками и процедурами проекта GrafCAM. Первая из пиктограмм предназначена для добавления макрорасширения в конец, а вторая - для вставки макрорасширения в любое место проектируемого блока (участка) или процедуры.
          Активизация любой из пиктограмм приводит к выводу на экран диалогового окна "макрорешения" (см. рисунок 1) с двумя комбобоксами. В первом перечислены наименования

Рис. 1. Диалоговое окно с иерархией макрорасширений

типов макрорасширений. А во втором перечислены все макросы выбранного типа. Таким образом, становится очевидной двухуровневая древовидная иерархия макрорасширений. Отметим кратко, создание новых типов и структурирование макрорасширений - это круг задач администратора GrafCAM на конкретном предприятии.
          Итак, в нашем примере пользователь выбирает из комбобоксов тип, а затем и конкретное макрорасширение "Спец.обработка / Вектор". После чего активизирует диалог специальной кнопкой "Начать диалог".
          Диалог с пользователем развивается согласно сценарию диалога, предварительно запрограммированному администратором GrafCAM на специальном языке. Каждый сценарий, сохраняется в отдельном текстовом файле. В нашем примере это файл имеет имя "Вектор".
          GrafCAM интерпретирует команды из выбранного файла сценария - диалога, выдавая на

Рис. 2. Скриншоты процесса ввода координат движения инструмента

экран серии вопросов и ожидает получения на них ответов от пользователя. Для организации диалога служат визуальные элементы - поля ввода (редактирования) и комбобоксы. Ответы пользователя - символьные строки (или индексы комбобоксов) и являются управляющими параметрами, изменяющими в последствии суть алгоритма работы выбранного макрорасширения. На рисунке 2 (слева) приведена серия скриншотов, иллюстрирующих этот процесс для макро "Вектор".
          В процессе диалога пользователь последовательно вводит три числа, которые являются координатами точки в 3D пространстве. Именно в эту точку и должен переместится режущий инструмент (фреза). Конечным результатом рассматриваемого нами сценария диалога является автоматически сформированная строка вызова макропроцедуры "Вектор" с конкретными

Рис. 3. Сформирован вызов макро "Вектор"

параметрами "#VEKT(X0=100;Y0=50;Z0=10);" Эта макропроцедура (см. рис.3) вызывает выдачу в управляющую программу кадра с движением инструмента одновременно по трем координатам.
          Автоматически сформированная строка вставляется (добавляется) в текущий проект GrafCAM,

Рис. 4. Вызов макро "Вектор" в дереве проекта

визуализируется в дереве проекта (см. рис.4) и, возможно, визуализируется на экране дисплея, в поле чертежа.
          Вне всяких сомнений то, что пользователь не в состоянии запомнить назначение каждого параметра конкретного макрорасширения. Поэтому так возрастает роль грамотно написанной контекстно-чувствительной подсказки. Для ее получения пользователю достаточно сделать клик по пиктограмме "Вопрос".
          Подводя итог, отметим, что конечный пользователь оперирует простыми средствами для выбора и активизации диалога макрорешения, а также вводит данные, используя элементарные поля ввода, комбобоксы и систему помощи. На данном уровне это позволяет максимально упростить саму процедуру, избежать ошибок и снизить квалификационные требования к персоналу.

Уровень администратора

          В задачи администрирования механизма работы с макрорасширениями в GrafCAM входят:

ведения описателя двухуровневой иерархии макрорасширений

написание файлов сценариев-диалогов

написание файлов для справочной системы

написание тел макрорасширений


Кратко остановимся на каждой из них, акцентируем внимание на наиболее существенные моменты.
          Иерархия макрорасширений описывается в двух текстовых файлах. На примере, приведенном ниже, видны пять типов макрорасширений, сохраняемые в текстовом файле Grfacam_MainMenu.men. Этот файл "описывает" первый уровень в иерархии макрорасширений.

1,СПЕЦ. ОБРАБОТКА
2,МАКРОПРОЦЕДУРЫ ФРЕЗЕРНЫЕ
3,МАКРОПРОЦЕДУРЫ ТОКАРНЫЕ
4,МАКРОПРОЦЕДУРЫ СВИ-7
5,СПЕЦ. ТЕХКОМАНДЫ

         Допускается не более 50 типов макрорешений.
         В свою очередь список всех доступных макрорасширений (второй уровень в иерархии макрорасширений) сохраняется в текстовом файле Grafcam_SecondMenu.men". В нашем примере макро "Вектор" принадлежит первому элементу дерева иерархии "СПЕЦ. ОБРАБОТКА". А соответствующий ему сценарий диалога хранится в файле "Вектор".

1,ВЕКТОР,Вектор
1,ЭВИДИСТАНТА,Эквид
1,СПИРАЛЬ АРХИМЕДА,Спираль

1,ВЫБРАТЬ ЗОНУ,Выборка

5,КОРРЕКЦИЯ НА РАДИУС,Коррад
5,НУМЕРАЦИЯ КАДРОВ УП,Нумкадр
5,КОММЕНТАРИЙ В УП,Комент

         Всего допускается не более 250 макрорешений.
         В отличие версии от DOS-16 версии 4.ХХ GrafCAM, сценарии диалогов теперь хранятся в разных файлах, то существенно упрощает отладку отдельного макрорешения, но несколько "утяжеляет" номенклатуру файлов GrafCAM.
         Сценарии - диалогов по-прежнему кодируются на специализированном языке кодирования сценариев диалогов разработанном еще в 1994 году. Безусловно, сохранена преемственность "сверху - вниз", попутно расширено число ячеек памяти: теперь можно использовать по 500 идентификаторов для сохранения числовых данных и 500 идентификаторов для хранения строк символов.
         В нашем примере текст сценария диалога "Вектор" уместился в 5 строчек:

ЗПС='#VEKT(';
%S45='0'; ХРК=Значение орта Х:,%S45,8,Q,'X0=%S45;';
%S45='0'; ХРК=Значение орта Y:,%S45,8,Q,'Y0=%S45;';
%S45='0'; ХРК=Значение орта Z:,%S45,8,Q,'Z0=%S45;';
КМ;
$

          Кратко расшифруем фразы языка. Оператор ЗПС записывает - имя макропроцедуры в итоговую строку. Далее следуют три однотипных конструкции. Обнуление символьной ячейки %S45 и выдача вопроса пользователю. Введенное пользователем значение подставляется справа от фразы "XO=" и также записываются в итоговую строку. Такое действие повторяется трижды. Макро заканчивается фразами конец макро (KM;) и конец файла ($). В нашем примере, после ввода пользователем данных (100, 50,10), итоговая строка получилась такой #VEKT(X0=100;Y0=50;Z0=10);
          Файлы справочной системы создаются на языке кодирования подсказок, который является усеченном диалектом языка HTML(разметки страниц). Для подключения файла к сценарию диалога нужно использовать оператор HELP=имя файла. Для нашего случая это выглядит примерно так:

HELP=вектор;
ЗПС='#VEKT(';
...
$


          Вот и пример "тела" файла подсказки для макрорасширения "вектор":







          А в таком виде пользователь увидит текст подсказки на экране дисплея










"Тела" макрорасширений

          В предыдущем разделе мы ознакомились с механизмами описания иерархии макрорасширений (для динамического построения меню) и технологией описания сценариев-диалогов (для планирования процедуры интерактивного взаимодействия с пользователем). Итогом любого сценария диалога служит фраза (в простейшем случае N/200) или вызов макро (в нашем случае #VEKT(X0=100;Y0=50;Z0=10); ).
          Именно макро и является тем средством, которое позволяет пользователю создавать новые алгоритмы для генерации движения инструмента или использования технологических команд. Макро - процедура, написанная на мощном языке программирования системы САПР-ЧПУ. Кратко напомним, что данный язык позволяет описать параметрическую модель обработки типового перехода или даже типовой детали. Среди возможностей языка не только способы задания геометрии, участков (блоков) и процедур обхода, но и арифметические и тригонометрические функции, операторы условия, циклы, работа с файлами и многое другое.

Несколько слов в заключение

          Итак, на конкретном примере мы рассмотрели (правда, весьма бегло) реализацию механизма макрорасширений в новой, седьмой версии GrafCAM. Как видно из рассмотренного выше примера, текущая реализация механизма обладает следующими свойствами:

Совместимостью по языку кодирования сценариев диалогов с предыдущей версией, что упрощает перенос ранее созданных сценариев

Новой идеологией двухуровневой иерархии макрорасширений, что позволяет администратору структурировать макрорасширения.

Существенным расширением числа макрорешений (до 250) и одновременно - снятием каких либо ограничений на длину файла отдельно взятого сценария диалога.

Более мощной системой контекстно-чувствительной подсказки, с возможностью изменения атрибутов фона и шрифта, а также использования в одном документе неограниченного числа картинок в более удобных формате, чем *.bmp.

Более удобными для пользователя средствами диалога (комбобоксы и поля редактирования), решенными в стиле Windows.


          Без сомнения у пользователей DOS-версии GrafCAM появился серьезный повод для того, что бы приобрести новую версию описываемой подсистемы графического проектирования управляющих программ. В следующих статьях мы опишем особенности реализации более подробно, в том числе остановимся на программировании интерфейсах диалога с конечным пользователем и языке кодирования подсказок. Январь 2006г.


Об авторах статьи

Трухин Николай Михайлович, главный конструктор проекта САПР ЧПУ. Стаж работы автора статьи в области САПР для ЧПУ - 35 лет.

Филиппович Константин Вадимович, руководитель отдела программных проектов компании "ООО "Евразия Лимитед". Стаж работы автора статьи в области САПР для ЧПУ - 20 лет.

Для связи с авторами используйте e-mail admin@sapr2000.ru или телефон +7 (342) 2442854