Внимание!
Предложения и заявки заказчиков

Размещение рекламных материалов

коммерческая реализация изобретений - ООО 'Адвансед Девелопмент Проджект' смотреть>>>

Требуются разработки по средствам контроля и ограничения по количеству дисковых операций производимых одним пользователемдля хостинг провайдера. смотреть>>>

Требуются разработки по использованию низкопотенциальной энергии смотреть >>>

Методика ускоренного синтеза графических элементов интерфейса программных средств

При разработке программных средств (ПС) систем автоматизированного проектирования технологических процессов металлообработки (на сегодня) обязательно решается задача создания интерфейса для интерактивного ввода входных параметров. Например, при разработке ПО проектирования точения необходимо ввести определенное количество значений параметров технологической системы.. Интерактивное введение параметров выполняется в режиме диалога. Наиболее удобным при этом для пользователя является диалог, обеспеченный графикой, характерной для технологических эскизов. Однако непосредственное программирование графики, например, в среде Delphi, как показала практика учебного процесса, является слишком трудоёмким. В то же время имеющиеся графические редакторы AutoCAD, КОМПАС, Catia, SolidWork и другие благоприятно обеспечивают построение нужного изображения. Важно только, чтобы имеющийся редактор обеспечивал возможность сохранения результата построения в формате обмена - файле с расширением DXF. Методика ускоренного синтеза графических элементов интерфейса программных средств основывается на использовании ПС "P_Eskiz_4". С его помощью выполняется конвертация смыслового содержания файла обмена в код алгоритмического языка.

Методика ускоренного синтеза графических элементов интерфейса программных средствМетодика ускоренного синтеза графических элементов интерфейса программных средств  

Введение

При разработке программных средств (ПС) систем автоматизированного проектирования технологических процессов металлообработки (на сегодня) обязательно решается задача создания интерфейса для интерактивного ввода входных параметров, определяющих условия проектирования. При этом формируется информационная модель соответствующей технологической системы. Например, при разработке ПО проектирования точения необходимо ввести определенное количество значений параметров технологической системы. Среди них важное значение имеют размерные параметры (диаметр поверхности, диаметр заготовки, требования точности и шероховатости, длина поверхности ..). Интерактивное введение параметров выполняется в режиме диалога. Наиболее удобным при этом для пользователя является диалог, обеспеченный графикой, характерной для технологических эскизов. Современные алгоритмические языки имеют операторы, обеспечивающие вывод на экран линий, кругов, дуг, эллипсов, выполнение надписей в графическом режиме. Однако непосредственное программирование графики, например, в среде Delphi, как показала практика учебного процесса, является слишком трудоёмким.

Концепция
В то же время имеющиеся графические редакторы AutoCAD, КОМПАС, Catia, SolidWork и другие благоприятно обеспечивают построение нужного изображения. Важно только, чтобы имеющийся редактор обеспечивал возможность сохранения результата построения в формате обмена - файле с расширением DXF. Методика ускоренного синтеза графических элементов интерфейса программных средств основывается на использовании ПС "P_Eskiz_4". ПС "P_Eskiz_4" является составной частью Программного продукта "Программный комплекс Sapr-100-W" *. Программное средство "P_Eskiz_4" при последовательном взаимодействии с имеющимся графическим редактором, например AutoCAD, обеспечивает автоматизированный синтез графических фрагментов Delphi-программ, предназначенных для формирования информационных моделей технических систем.
     
Рис.1 Копия экрана в начале работы ПО "P_Eskiz_4"

  Использование ПС "P_Eskiz_4" позволяет: - автоматизировать разработку графических Delphi-программ, предназначенных для формирования информационных моделей технических систем. - Пересмотреть результат синтеза Delphi-программы; - редактировать синтезированную Delphi-программу; - ускорить доработку программы путем применения соответствующих специализированных процедур, входящих в синтезированный код. На первом этапе разработки программы используется интерактивный графический редактор для синтеза нужного эскиза соответствующего, например технологическом перехода, или типовой поверхности. Кроме графических примитивов на изображении выполняются специальные надписи в местах последующего (при использовании) ввод нужной информации (например, размеров). При завершении разработки эскиза формируется соответствующий ему "файл обмена". На втором этапе разработки программы используется ПС "P_Eskiz_4". Название нужного «файла обмена» выбирается из меню. В синтезированную программу включаются модернизированные процедуры алгоритмического языка, обеспечивающие соответствующее графическое изображение (линии, дуги, окружности, размерные линии по правилам машиностроительного черчения, необходимые надписи). В программу автоматизировано включаются также процедуры заполнения замкнутых контуров, как заменитель «штриховки» . Кроме элементов базового алгоритмического языка в программу включаются процедуры для обеспечения ускоренного изменения положения изображения на экране ПЭВМ и габаритов его формы. Также обеспечивается автоматизированное расположение компонентов типа Edit в местах ввода значений реквизитов типового объекта.
 

Процедуры синтезированного файла
Общая структура синтезированного текста включает: процедуры вывода на экран текста - Print_Str, целых чисел - Print_Wd, действительных чисел - Print_Rl, подготовки к заполнению замкнутой области - SetFillStyle, управление цветом вывода - SetColor и процедуре с названием Eskiz, где размещаются операторы построения изображения. В свою очередь процедура Eskiz также включает некоторые процедуры редактирования изображения: процедура указания на заполнение замкнутой зоны (имитация штриховки) - FloodFill, построения линии - Line, дуги - Arc_D, круги - Circle, управление выводом линий - SetLineStyle, Интерфейсная часть процедуры Eskiz - ( Delta_X, Delta_Y: integer; Color: byte) позволяет программно задавать смещение по осям X и Y, а также цвет построения эскиза. Кроме соответствующего набора из вищеподаних процедур, например: SetColor (Color); SetLineStyle (2,0,1); Line (95,148,507,148); Circle (421,338,72);, процедура Eskiz может иметь указания к размещению на экране (форме) компонентов Edit : например: Edit2.Left: = 462 + Delta_X; Edit2.Top: = 250 + Delta_Y; и указания к программному установление габаритов формы и ее расположения на экране, например: Form1.Left: = 0; Form1.Top: = 0; Form1.Width: = 709; Form1.Height: = 489;.
 

Procedure Print_Str (Text: string; X, Y: integer; Kolir, Fon: byte) - предназначена для вывода на экран необходимого текста. В начале работы процедуры выполняется очистки зоны экрана, необходимой для вывода заданного текста и заполнения ее цветом, который был задан переменной Fon. Далее текст выводится в эту зону с цветом, заданным переменной Kolir. Коды цветов переменных Kolir и Fon отвечают 0 : clBlack; 4 : clRed; 8 : clNavy; 12 :clPurple; 16 :clBtnFace. 1 : clBlue; 5 : clOlive; 9 : clBlack; 13 :clAqua; 2 : clGreen; 6 : clMaroon; 10 :clLime; 14 :clYellow; 3 : clAqua; 7 : clGray; 11 :clAqua; 15 :clWhite; Внимание! Представленные коды цвета действительны и в других процедурах. Например, при необходимости вывода текста 'Пример' желтым (14) цветом на синем фоне, начиная с точки с координатами X = 100 и Y = 200, следует указать: Print_Str ( 'Пример', 100,200,14,1);.
Procedure Print_Wd (IBR: word; Cil: byte; X, Y: word; Kolir, Fon: byte) предназначена для вывода на экран значений переменных целого типа. Маска вывода (количество символов числа) задается переменной Cil. Координаты размещения - переменными X и Y. Цвета вывода - переменными Kolir и Fon. Например, при необходимости вывода значения переменной D, величина которой не превышает четырех-значного числа, желтым (14) цветом, начиная с точки с координатами X = 100 и Y = 200, на синем фоне, следует указать: Print_Wd (D, 4,100,200, 14,1);.
Procedure Print_Rl (IBR: real; Cil, Drb: byte; X, Y: word; Kolir, Fon: byte;) предназначена для вывода на экран значений переменных действительного типа. Маска вывода (количество символов) задается переменными Cil для целой части числа и - Drb для дробно части. Координаты размещения - переменными X и Y. Цвета вывода - переменными Kolir и Fon. Например, при необходимости вывода значения переменной L, величина которой не превышает четырех-значного числа и при необходимой точности вывода до третьего знака после запятой, желтым (14) цветом, начиная с точки с координатами X = 100 и Y = 200, на синем фоне следует указать: Print_Rl (L, 4,3,100,200,14,1);.
Procedure SetFillStyle (Tip, Kolir: byte) используется при применении заполнения заданной зоны нужным "заполнением" (аналог штриховки). Вид заполнения устанавливается байтов переменной Tip в соответствии со следующими кодами: 0: bsClear; 3: bsBDiagonal; 8: bsDiagCross; 1: bsSolid; 6: bsFDiagonal; 2: bsVertical; 7: bsCross;
Процедура FloodFill (X, Y: word; Kolir : byte) непосредственно обеспечивает "штриховки". X и Y соответствуют координатам точки внутри замкнутой зоны. Параметр Kolir тут должен точно соответствовать цвету линий, дуг и т.д. , служащих пределами замкнутой зоны. Внимание! Для обеспечения размещения в синтезированном ПС "штриховки" необходимо при построении изображения графическим редактором использовать команду выполнения надписей. Внутри замкнутой (это обязательно) зоны следует написать: Н3 (для штриховки вправо - bsBDiagonal), или Н6 (для штриховки влево - bsFDiagonal) и т. п. в соответствии с приведенными выше значениями кодов от 0 до 8.
Процедура SetColor (Kolir: byte) используется при установке необходимого цвета при построении линий, кругов и дуг.
Процедура SetLineStyle (Tip, X, Width: byte) позволяет устанавливать тип и толщину линий. Возможные типы: сплошная (0), штриховая (1) и штрихпунктирная (2). Толщина может быть обычной (1) и утолщенной (3). Код "2" в Delphi не отрабатывает. Procedure SetLineStyle (Tip, X, Width: byte); Begin / / SetLineStyle case Tip of0: Form1.Canvas.Pen.Style: = psSolid; 1: Form1.Canvas.Pen.Style: = psDot; 2: Form1.Canvas . Pen.Style: = psDashDot; end; / / case Tip case Width of 1: Form1.Canvas.Pen.Width: = 1; 2: Form1.Canvas.Pen.Width: = 2; 3: Form1.Canvas.Pen . Width: = 3; end; / / case WidthEnd; / / SetLineStyle
Процедура Line (x1, y1, x2, y2: word) используется для построения линий. Параметры x1, y1, x2, y2 соответствуют координатам начала и конца линии. При работе в графическом редакторе можно также пользоваться построением "Полилиния". Далее это построение будет автоматически разделено на составляющие полилинию отрезки. К сожалению "Сплайны" в Delphi не предусмотрены!
Процедура Arc_D (xc,yc,Start,Finish,R:word) используется для построения дуг. Параметры xc,yc,Start,Finish,R соответствуют координатам центра, углам начала и финиша дуги (в градусах ), а также радиусу дуги.
Процедура Circle(X,Y,Radius:word) используется для построения окружности. Параметры X,Y,Radius соответствуют координатам центра и радиуса окружности.

Постановка размеров
Процедура Line автоматически используется и для конвертации проставляемых размеров. Правда, есть ограничения. Возможна простановка только горизонтальных и вертикальных размеров. При простановке горизонтальных размеров следует придерживаться правила: первая и вторая точки обязательно должны быть на одной горизонтали ! Иначе, после конвертации размер будет расположен не горизонтально, а под кутом. При простановке вертикальных размеров первые две точки должны быть на одной вертикали ! При этом первая точка должна быть выше второй! Фрагмент листинга, описывающего очередной размер, начинается заголовком { Dimension }. Далее следуют восемь строк.{ Dimension } Line(349,178,349,242); Line(262,178,262,242); Line(349,240,262,240); Line(349,240,338,241); Line(349,240,338,239); Line(262,240,273,241); Line(262,240,273,239); Canvas.TextOut(305,237,' ');Описываются размерная линия, две выносные линии и четыре отрезка – элементы двух стрелок. Последняя строка выводит текст размера. Чаще эта строка излишняя. И её можно удалить, чтобы экономить ресурсы. В то же время координаты, указанные в ней могут быть полезными для размещения компонентов Delphi.
 

Автоматизированное размещение компонентов вводу
В синтезированном ПС как правило используются компоненты Edit1, Edit2 и т.д. для ввода значений необходимых параметров. Для автоматического размещения их в заданных местах изображения, необходимо при работе в графическом редакторе использовать команду редактора для нанесения надписей. В заданных местах необходимо записать: Е1 (для Edit1), Е2 (для Edit2) и т.д. Тогда в конвертированном листинге будут указания типа: Edit1.Left := 295+Delta_X; Edit1.Top := 230+Delta_Y; Edit2.Left := 318+Delta_X; Edit2.Top := 84+Delta_Y;Где Left та Top служат горизонтальной та вертикальной координатами положения соответствующего компонента.
 

Использование редактора AutoCAD
При роботе с графическими редакторами следует учитывать, что нуль системы координат редактора расположен в левом нижнем углу экрана, а нуль системы координат модуля Graphics среды Delphi расположен в левом верхнем углу экрана. Также следует учитывать возможности дисплея, с точки зрения согласования размеров поля, которое обеспечивает модуль Graphics. Так, например, на дисплеях типу SVGA максимально возможное поле имеет размеры 800х553 пикселей, типа VGA устанавливается поле размером 640x480 пикселей, типу EGA - 640х350, типу Hercules - 720x348 и т.п . В начале работы с новым проектом в Delphi габаритные размеры формы по умолчанию устанавливаются в пределах 870х500 пикселей. При роботе с Р_Eskiz_4 размеры формы будут установлены автоматически по габаритам изображения. Однако перед работой в AutoCad лучше определиться с необходимыми размерами изображения и задать их командой Limits. Так, при необходимости иметь габаритные размеры изображения 650х500 пикселей, следует провести следующий диалог:
 

Command:
 
Lіmіts
 
< Enter >
 
Specify lower left corner <0.0000,0.0000>:
 
  < Enter >
 
Specify lower rіght corner <420.0000,297.0000>:
 
650,500
 
< Enter >
 

Лучше, для удобства дальнейшего построения изображения, временно обвести нужную зону линиями. Например, для зоны 0,150-325,479 следующие команды настроят экран на построение зону для ескіза:
Command:
 

Zoom
 

< Enter >
 
All/......./Wіndow/.....
 
W
 
< Enter >
 
Fіrst corner
 
0,150
 
< Enter >
 
Other corner
 
325,479
 
< Enter >
 

Можно также воспользоваться для выделения необходимой зоны соответствующей кнопкой .Далее, имея предварительно подготовленный макет экрана (в идеале, разработанный на миллиметровой бумаге с указанием координат опорных точек), и, используя команды Line, Circle, Arc, Dim , Text или Dtext , выполняется построение желаемого изображения. Внимание, другие команды закладки Draw редактора AutoCad конвертором Р_Eskiz_4 , пока что, не предусмотрены !!!При построении изображения рекомендуется при построении очередного его фрагмента выполнять надписи с названием фрагмента. Например, «патрон», «резец» и т.п. Далее, при окончательном редактировании в Delphi, эти надписи нужно будет закрыть комментарием. Но они помогут найти нужные линии и т.п. для установки желаемого цвета, типа и толщины. Команды набираются с клавиатуры, выбираются из меню, или инициируются соответствующими кнопками:Line ( кнопка ) – команда построения отрезка линии по двум точкам;Circle ( кнопка ) – команда построения окружности. Система AutoCAD предлагает четыре способа построения окружности:1) по трём точкам;2) по трём точкам – концами диаметра окружности;3) як окружность заданного диаметра, который касается двух ранее построенных объектов;4) по центру и радиусу.Arc (кнопка ) – команда построения дуги по трём точкам. Остальные варианты построения дуги возможны при выборе команды из меню.Dіm – команда нанесення розмірів.При использовании команд Lіne, Cіrcle, Arc, Dіm , лучше использовать приёмы точного построения. Прежде всего рекомендуется применять построение изображений по координатам в абсолютной системе координат, в приращениях или в полярной системе. Следующие три примера соответствуют этим методам:
From poіnt:
 
100,200
 
< Enter >
 
to poіnt:
 
@20,30
 
< Enter >
 
to poіnt:
 
@120<45
 
< Enter >
 

Требуется предварительная подготовка до использования компьютера, но далее затраченное время на подготовку восполнится с избытком.Также следует применять команды “привязки”, команду зеркального отображения Mіrror и команды редактирования: Trіm, Break, Erase.Команды “привязки” активизируются кнопками на панели “Объектная привязка”. Можно задать такие режимы привязки :
ENDpoint
 
- до конца линии;
 
MIDpoint
 
- до середины линии, дуги;
 
INTersec
 
- до пересечения линий, дуг;
 
Appi Appint
 
- до пересечения;
 
CENter
 
- до центра дуги, окружности;
 
QUAdrant
 
- до ближайшего квадранта (0, 90, 180, 270 градусов);
 
TANgent
 
- по касательной;
 
PERpend
 
- до основания перпендикуляра;
 
INSert
 
- до точки вставки блока;
 
NODe
 
- до ближайшего объекта;
 
NEArest
 
- до ближайшей точки;
 
QUIck
 
- до первой найденной точки.
 

Типы линий, и их толщина задаются в Delphi-программе специальной процедурой SetLineStyle (она будет синтезирована Р_Eskiz_4) : Использовать команду штриховки Hatch не рекомендуется, потому что в Delphi нет полного аналога. Но можно воспользоваться «заполнением замкнутой зоны. С этой целью Р_Eskiz_4 синтезирует процедуры SetFillStyle и FloodFill. Для этого в графическом редакторе необходимо в нужных точках изображения выполнить надписи, начинающиеся с литеры «Н» (от «Hatch» ). Например, для выполнения надписей «Н3» и «Н6» необходимо выбрать из меню группы DRAW команду DTEXT и провести диалог:Command: DTEXT Start point or Align/Center/Fit/Middle/Right/Style: . перемещение в заданную точку Heigt <10.0>: . Rotation angle <0.0>: Text : . Н3 Text : . Command: . DTEXT Start point or Align/Center/Fit/Middle/Right/Style: . переміщення в задану точку Heigt <5.0>: . Rotation angle <0.0>: . Text : . Н6 .

Пример последовательности синтеза графического фрагмента Delphi программы

Дальше рассматривается пример синтеза графического фрагмента Delphi программы при использовании редактора AutoCAD та программного средства P_Eskiz_4. В начале роботы желательно создать новую папку и скопировать в неё ПС P_Eskiz_4 , или создать в ней ярлык, ориентированный на запись именно в эту папку.1. Разработать необходимый эскиз в редакторе AutoCAD. Рис 2. Создание эскиза в графическом редакторе Сохранить эскиз в файле с произвольным названием, но в формате DXF.Увага ! Далее обязательно необходимо „отключить” файл от редактора AutoCAD. Не выйти из редактора (чтобы не терять время на его новую загрузку, ибо эти операции, как правило, приходится повторять несколько раз, проверяя соответствие результата желаемому), а только „отключиться”!2. Загрузить ПС P_Eskiz_4. Выбрать команду Select a File*.dxf. Из появившегося меню файлов выбрать требуемый и «дважды клацнуть левой клавишей мыши». Или нажать клавишу “Открыть” в меню «Открытие фала» (OpenDialog ) . Рис. 3. Заставка ПЗ P_Eskiz_4 и меню наличных в папке файлов с расширением DXF Рассмотреть контрольное изображение , появившееся на экране. Оценить соответствие его заданному.При достижении желаемого результата можно переходить к работе в Delphi. Иначе следует вернуться в редактор, внести изменения и повторить конвертацию. Чаще не устраивает масштаб изображения, или его положение на экране. Помогают команды Skale и Move Рис.4. Контрольное изображение после конвертації “Натиснути” клавіші Next та Exit.

  1. После этого в папке появится текстовий файл с названием, как у файла эскиза, но с расширением txt . Это расширение обеспечивает автоматизированное (не автоматическое) размещение файла в Delphi программу.

  2. Загрузить комплекс Delphi. В меню File инициировать команду New Application.

  3. Разместить на форме (можно в произвольных местах) требуемое количество компонентов Edit.

  4. В меню Object Inspector выбрать закладку Events, и в ней команду OnPaint и дважды „клацнуть левой клавишей мыши” в этом окошке. После этого появится код модуля Unit1.pas и “заготовка” процедуры OnPaint :

procedure TForm1.FormPaint(Sender: TObject);begin end;

  1. Между служебными словами begin та end; дать указание на выполнение процедуры Eskiz , задав в её интерфейсной части смещения по X и Y, а также цифровой код цвета изображения. Наприклад Eskiz(0,0,1); Так будет задано нулевое смещение по обеим координатам, а также задано синий цвет изображения (коды поданы ранее).

  2. Между заголовком процедуры и словом begin “вставить” синтезированный текст, используя “команды работы с блоками”. Для этого нажать клавиши Ctrl/K/R.

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

  4. При необходимости внести изменения положения эскиза на экране, цвета изображения, изменить тип, цвет или толщину отдельных линий и т. п


Рис.5. Изображение после интерактивного редактирования при использовании процедур SetLineStyle, SetColor, SetFillStyle та FloodFill * Свідоцтво про реєстрацію авторського права на твір № 7456. МОНУ. Київ, 2003. Бюлетень. ”Авторське право та суміжні права” №3.

Комментарии   

 
#3 Kriskov Oleg 21.06.2010 20:01
Методика, предложенная Войтенко В.И. не только полезная, но, на мой взгляд, просто необходимая, особенно если искусственно не разделять вузовский курс технологии машиностроения (основные теоретические положения которого написаны в начале прошлого века) и курс САПР ТП (которому от роду лет 20-30).
Теоретические основы технологии машиностроения (ТОТМ) в дальнейшем развиваться отдельно от САПР ТП, по моему мнению, не могут, ибо многие положения ТОТМ могут быть доказательно и наглядно (а не умозрительно), проилюстрирован ы с помощью современных методик программированн ого решения технологических задач в том числе и с использованием графических возможностей современных языков программирования.
В этом смысле работа Владимира Ивановича Войтенко, заслуживает всяческой похвалы и поддержки, как один из возможных способов решения задачи организации эффективного и интуитивно понятного интерейса технолог – программный продукт (ПК), который может быть использован при разработке сначала учебных программных продуктов (а далее по мере развития подсистем) и их производственны х аналогов.
В этом же смысле обращает на себя внимание один из новых учебников (Проектирование технологии машиностроения на ЭВМ.: Учебник для вузов/ О.В. Таратынов, Б.М Базров, В.В. Клепиков и др. Под ред. Таратынов. – М.: МГИУ 2006. – 519 с. _ - возможно есть и другие, аналогичные; просьба назвать их в полемике) первая часть которого есть стандартный вузовский курс технологии машиностроения, а вторая - своеобразная иллюстрация его теоретических положений методами программированн ого решения технологических задач. Можно спорить о конкретной методике, изложенной в учебнике, но…
“Лед тронулся, господа присяжные заседатели!”
Разработка Войтенко В.И. нужная, для автора достаточно трудоемкая, одна из первых ласточек в вузах ее следует, по моему мнению, поддержать, и, по возможности, сотрудничать с автором.
Цитировать
 
 
#2 Кошин Анатолий 18.06.2010 07:16
Разработка весьма полезна для учебного процесса в курсе САПР, в разделе "Интерфейс САПР". Можно применить при организации практикума. В ЮУрГУ в магистратуре на каф. технологии машиностроения есть курс "Технология разработки ППП", для него,по-моему, можно рассмотреть вопрос применения описанной методики на практических занятиях и в курсовой работе. Давайте обсудим этот вопрос после завершения этого учебного года.
Цитировать
 
 
#1 Vladimir Frolov 16.06.2010 19:57
Методика действительно представляется полезной при работе с графическими элементами различных графических редакторов и может быть, на мой взгляд, использована как при обучении работе с редакторами, так и при их использовании для реального проектирования.
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Комментарии