Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000124.doc
Скачиваний:
6
Добавлен:
30.04.2022
Размер:
455.17 Кб
Скачать

Лабораторная работа №6 Проектирование прикладной библиотеки трехмерного моделирования гайки с буртиком для сапр Компас-3d

1. Цель работы: ознакомиться с созданием прикладной библиотеки трехмерного моделирования 3D-модели детали.

2. Указание к выполнению лабораторных работ

К выполнению лабораторной работы следует приступить после изучения основ программирования в среде Borland Delphi и построения твердотельных моделей в “Компас-3D”.

3. Содержание работы

Гайка ГОСТ 8918-69 является стандартной деталью, поэтому представляется целесообразным «зашить» данные о ее геометрических параметрах непосредственно в тело программы, используя массив. Это существенно упрощает программный продукт, не уменьшая его функциональности для конкретного типа стандартных изделий.

3.1 Описание гайки с буртиком и разработка блок-схемы реализации библиотеки

Библиотека служит для получения трехмерной модели гайки с буртиком ГОСТ 8918-69, конструкция которой приведена на рис. 6.1. Реализованы следующий вариант получения гайки: все размеры, указанные на чертеже фиксированы и могут быть выбраны пользователем через диалоговое окно библиотеки. Для повышения степени автоматизации в тело программы введен массив (таблица 6.1), задающий геометрию элементов болта. Блок-схема создания модели представлена на рис. 6.2.

Библиотека параметров гаек

шестигранных c буртиком

ГОСТ 8918-69

// name; // обозначение

// dr; // диаметр резьбы

// s; // размер под ключ

// H; // высота гайки

// D; // диаметр описанной ок-

ружности

// D1; // диаметр основания

// h; // высота основания

// c; // фаска

Рис. 6.1. Чертеж гайки

Таблица 1

name

dr

s

H

D

D1

H

c

(1)

(2)

(3)

(4)

(5)

(6)

(7)

"7003-0301"

06

10

09

11.5

14

2

1.0

"7003-0302"

08

14

12

16.2

18

2

1.6

"7003-0303"

10

17

15

19.6

22

3

1.6

"7003-0304"

12

19

18

21.9

25

3

1.6

"7003-0305"

16

24

24

27.7

30

4

2.0

"7003-0306"

20

30

30

34.6

38

5

2.5

"7003-0307"

24

36

36

41.6

45

5

2.5

Окончание таблицы 2

"7003-0308"

30

46

45

53.1

58

6

3.0

"7003-0309"

36

55

54

63.5

68

7

3.0

"7003-0310"

42

65

63

75.0

80

8

4.0

"7003-0311"

48

75

72

86.5

90

8

4.0

Рис. 6.2 Блок-схема построения 3D-модели болта

3.2 Задаем имя библиотеки:

library Gaika;

Result := РСЬаг('Гайка с буртиком');

1. Создаем диалоговое окно библиотеки и настраиваем свойства созданной формы при помощи Object Inspector, размещаем на форме компоненты, необходимые для реализации интерфейса библиотеки. Форма с диалоговым окном рассматриваемого примера библиотеки приведена на рис. 6.3. Представленный интерфейс целиком создан при помощи стандартных компонент среды Borland Delphi. Пояснительные надписи являются компонентом TLabel, поля ввода - TEdit, кнопка "Построить" - TButton.

Рис. 6.3. Интерфейс

На панели располагаются компоненты TLabel, служащие пояснительной надписью, выпадающий список TComboBox и кнопка типа TButton. TComboBox применяется для выбора из списка определенного значения размера. В библиотеке данный компонент используется для выбора типа гайки по ее резьбе из встроенного массива. Рисунок гайки на форме является компонентом Image вкладки Additional. Переходим в окно редактирования исходного текста модуля формы.

2. Подключаем в секции uses необходимые модули и файлы, в секции var описываем переменные, которые будут доступны для всех процедур модуля. В случае необходимости вводим дополнительные типы и классы.

3. Создаем процедуру построения трехмерной модели детали согласно введенным параметрам.

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

Текст программного модуля библиотеки аналогичен тексту модуля библиотеки болтов, поэтому подробно будут описаны только отличающиеся процедуры и функции.

Первой строкой (iPart:= ksPart(iDocument3D.GetPart(pNew_Part))) создаем новую трехмерную деталь. Отличительная часть библиотеки массив размерностью 11х9, описывающий параметрические размеры гайки.

dr:REAL;

Mas:array[1..11,1..9] of real; i,R:integer;

Элементы массива представляют собой координаты в точек эскизов. Для поиска соответствующего исполнения гайки в массиве применена функция

function FindIndex(dr:real):integer;

var i,R:integer;

begin

R:=1;

for i:=1 to 11 do if((Mas[i,1]=dr)) then R:=i; FindIndex:=R;

end;

с последующим выполнением после перечисления элементов массива Mas[1...11, 1...9] или Mas[i,j]: i:= Findlndex(dr);

Принцип работы функции следующий: при вводе значения dr запускается поиск по строкам от 1-ой по 11-ю. Когда строка найдена из нее забираются все необходимые размеры, соответствующие выбранному dr. Из найденных значений формируются эскизы для гайки (рис. 6.4):

Рис. 6.4. Эскиз

iSketchDocument2D.ksLineSeg(0, Mas[i,1]/2, 0, Mas[i,4]/2, 1);

iSketchDocument2D.ksLineSeg(0, Mas[i,4]/2, Mas[i,3], Mas[i,4]/2, 1); iSketchDocument2D.ksLineSeg(Mas[i,3], Mas[i,4]/2, Mas[i,3], Mas[i,5]/2, 1); iSketchDocument2D.ksLineSeg(Mas[i,3], Mas[i,5]/2, Mas[i,3]+Mas[i,6], Mas[i,5]/2, 1); iSketchDocument2D.ksLineSeg(Mas[i,3]+Mas[i,6], Mas[i,5]/2, Mas[i,3]+Mas[i,6], Mas[i,1]/2, 1); iSketchDocument2D.ksLineSeg(Mas[i,3]+Mas[i,6], Mas[i,1]/2, 0, Mas[i,1]/2, 1); iSketchDocument2D.ksLineSeg(0, 0, Mas[i,3]+Mas[i,6], 0, 3);

Далее следует базовая операция вращения:

iBaseRotatedEntity:= ksEntity(iPart.NewEntity(o3d_baseRotated )); if iBaseRotatedEntity <> nil then begin

iBaseRotatedDef:=ksBaseRotatedDefinition(iBaseRotatedEntity.GetDefinition); // интерфейс базовой операции вращения if iBaseRotatedDef <> nil then begin

iRotatedProperty:=ksRotatedParam (iBaseRotatedDef.RotatedParam);

if iRotatedProperty <> nil then

begin

iRotatedProperty.direction:=dtNormal;

iRotatedProperty.toroidShape:=false;

end;

iBaseRotatedDef.SetSideParam(TRUE, 360);

iBaseRotatedDef.SetSketch( iSketchEntity ); //эскиз операции вращения iBaseRotatedEntity.Create; // создать операцию

Результат выполнения операции представлен на рис. 6.5.

Следующий блок исходного текста модуля отвечает за создание 1-й фаски. Результат представлен на рис. 6.6.

Рис. 6.5. Результат операции Рис. 6.6. Создание фаски

Следующие два блока исходного текста модуля отвечают за создание 2-й и 3-й фасок. Результаты приведены на рис. 6.7 и рис. 6.8, соответственно.

Рис. 6.7 Создание фаски Рис. 6.8 Создание фаски

Эскиз шестигранника:

iSketchDocument2D.ksLineSeg(0, Mas[i,4]/2, -0.866*Mas[i,4]/2, Mas[i,4]/4, 1); iSketchDocument2D.ksLineSeg(-0.866*Mas[i,4]/2, Mas[i,4]/4, -0.866*Mas[i,4]/2, -Mas[i,4]/4, 1);

iSketchDocument2D.ksLineSeg(-0.866*Mas[i,4]/2, -Mas[i,4]/4, 0, -Mas[i,4]/2, 1); iSketchDocument2D.ksLineSeg(0, -Mas[i,4]/2, 0.866*Mas[i,4]/2, -Mas[i,4]/4, 1); iSketchDocument2D.ksLineSeg(0.866*Mas[i,4]/2, -Mas[i,4]/4, 0.866*Mas[i,4]/2, Mas[i,4]/4, 1);

iSketchDocument2D.ksLineSeg(0.866*Mas[i,4]/2, Mas[i,4]/4, 0, Mas[i,4]/2, 1); iSketchDocument2D.ksCircle( 0, 0, Mas[i,5]/2, 1 );

Эскиз представлен на рис. 6.9.

Рис. 6.9. Эскиз

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

iCutExtrusionDef :=ksCutExtrusionDefinition

(iCutExtrusion. GetDefinition);

if iCutExtrusionDef <> nil then

begin

iCutExtrusionDef.SetSketch(iSketch2Entity );

// установим эскиз операции

iCutExtrusionDef.DirectionType :=dtReverse;

ICutExtrusionDef.cut :=true;

iCutExtrusionDef.SetSideParam

(false, etBlind, Mas[i,3], 0, false);

end;

iCutExtrusion.Create; // создадим операцию вырезание выдавливанием

end;

Описанный выше фрагмент программного кода эквивалентен операции вырезания выдавливанием, выполняемой вручную в системе Компас. Результат работы прикладной библиотеки на данном этапе показан на рисунке 6.10.

Рис. 6.10. Результат операции выдавливания

3.3 Компиляция разработанной библиотеки осуществляется выбором команды Run из меню Run или нажатием клавиши F9. Результат сохраняется автоматически в папке с исходными файлами проекта. Готовая библиотека имеет расширение rtw, имя - Gaika.rtw.

Подключение библиотеки к системе компас-SD V7 также аналогично рассмотренному выше.

4. Отчет о работе должен содержать:

1. Цель работы.

2. Краткие теоретические сведения.

3. Подробное описание всех шагов лабораторной работы.

4. Выводы по лабораторной работе.