Чертежи и проекты

Разделы АС, АР, КЖ, КМ, КМД и т.д.
Разделы ЭМ, ЭС, ЭО, ЭОМ и т.д.
Разделы ОВ, ОВиК, ТМ, ТС и т.д.
Разделы ПС, ПТ, АПС, ОС, АУПТ и т.д.
Разделы ТХ и т.д.
Разделы ВК, НВК и т.д.
Разделы СС, ВОЛС, СКС и т.д.
Разделы АВТ, АВК, АОВ, КИПиА, АТХ, т.д.
Разделы АД, ГП, ОДД т.д.
Чертежи станков, механизмов, узлов
Базы чертежей, блоки

Подразделы

для студентов всех специальностей

Котлы и котельное оборудование

Главная  Лучшие    Популярные   Список   Добавить
Каталог файлов » Чертежи и проекты. Проектная документация » Курсовые и дипломные
Диплом. Разработки script для САПР CATIA
Разместил: admin Категория: Курсовые и дипломные
Размер: 1.36 MB Раздел:
Дата: 22.02.2017 Скачали: 9
Поделиться

Диплом. Разработки script для САПР CATIAДипломный проект Методика разработки scriptов для САПР CATIA

В рамках данного бакалаврского проекта была разработана методика написания scripts для САПР CATIA на примере написания программного приложения для автоматизации моделирования элементов стопорения (контровочной проволоки) стандартных крепежных элементов, Электронного Макета самолетов семейства RRJ, был проведен сравнительный анализ средств разработки приложений для САПР CATIA и изучено средство разработки Visual Basic for CATIA и входящая в состав CATIA среда работы с ним.

Данное программное приложение (далее script)  выполнено по заказу конструкторского бюро ГСС (гражданские самолеты Сухого – Sukhoi civil aircraft) и предназначено для автоматизации моделирования элементов стопорения (контровочной проволоки)  стандартных крепежных элементов, Электронного Макета самолетов семейства RRJ.



2 Введение

2.1 Наименование

Программа генерации контровочной проволоки

2.2 Область применения

Моделирование в программе CATIA V5

2.3 Основания для разработки

Бакалаврская работа, заказ конструкторского бюро ГСС.

2.4 Назначение разработки

Script предназначен для автоматизации моделирования элементов стопорения (контровочной проволоки) стандартных крепежных элементов, Электронного Макета самолетов семейства RRJ.

3 Содержание

1 Аннотация
2 Введение
2.1 Наименование
2.2 Область применения
2.3 Основания для разработки
2.4 Назначение разработки
3 Содержание
4 Техническое задание
4.1 Задание
4.2 Исходные данные
5 Конструкторская часть
5.1 Постановка задачи
5.2 Приведение постановки задачи к векторной форме
5.2.1 Выбор внутреннего представления отверстия
5.2.2 Выбор внутреннего представления СИ
5.2.3 Анализ вариантов необходимых векторов
5.2.4 Формализация условия минимальной длины проволоки
5.2.5 Постановка задачи для случая трех СИ
5.2.6 Постановка задачи в векторной форме
5.3 Синтез алгоритма выбора отверстий
5.3.1 При соединении двух СИ
5.3.2 При соединении трех СИ
5.4 Анализ вариантов ввода исходных данных
5.4.1 Выбор способа ввода исходных данных
5.4.2 Выбор необходимых данных
5.4.3 Окончательные требования к исходным данным
5.5 Синтез алгоритма получения каркаса контровочной проволоки
5.5.1 Алгоритм построения скрученных частей
5.5.2 Алгоритм построения огибающих участков
5.5.3 Алгоритм построения концевого участка
5.5.4 Алгоритм построения соединительных участков
6 Технологическая часть
6.1 Выбор средства разработки
6.1.1 Анализ предоставляемых средств разработки
6.1.2 Описание среды разработки
6.2 Анализ вариантов получения всех точек отверстий по двум введенным
6.3 Обоснования выбора примитивов построения
6.3.1 Для скрученных частей
6.3.2 Для огибающих участков
6.3.3 Для соединения участков
6.4 Обоснования выбора средств визуализации интерфейса
6.4.1 Для интерфейса
6.4.2 Для выделения выбранных компонент
7 Список литературы

4 Техническое задание

4.1 Задание

Разработать script для программы CATIA V5 на языке Visual basic for CATIA, создающий модель контровочной проволоки, осуществляющей стопорение болтов или гаек (стопоримых изделий (далее СИ)) в количестве 2-3 штук имеющих отверстия под контровочную проволоку в головках. Отверстия в головках должны быть выполнены по исполнению 6 в соответствии с ОСТ 03815-76. Взаимное расположение головок СИ в пространстве - произвольное, на расстоянии от 20 до 100мм. Отверстия под контровочную проволоку соединяются по прямой линии. Диаметр проволоки берется 1.0 мм (по умолчанию и без контроля). Свободный конец проволоки должен иметь 2 варианта исполнения с пломбой на конце и без таковой. (При установке пломбы она добавляется конструктором в сборку без использования script). Свободный конец проволоки должен быть закручен в соответствии с ОСТ. В случае установки пломбы длинна свободного конца увеличивается.

Необходимо обеспечить обработку следующих ошибок (под обработкой понимается вывод соответствующего сообщения об ошибке и удаление всех построений):

• В случае указания конструктором не ребра отверстия - "неправильно введены исходные данные (ребро)"
• В случае указания конструктором не оси - "неправильно введены исходные данные (ось)"
• В случае указания одного и того же ребра как "Дуга1" и "Дуга2" одновременно – " неправильно введены исходные данные (одно ребро указанно дважды)"
• В случае ошибок построения – "Ошибка при построении …" и указывается, где произошла ошибка

4.2 Исходные данные

Определить в процессе написания script. Конструктор должен вводить минимально возможную информацию.

 

5 Конструкторская часть

5.1 Постановка задачи

Необходимо выбрать оптимальный вариант соединения СИ.

Соединение считается оптимальным, если:

• Выполняется следующее правило: соединение должно быть выполнено таким образом, чтобы при затяжке проволоки скручиванием ее концов должен создаваться момент, направленный в сторону завертывания СИ.
• Длина проволоки должна быль минимальной

5.2 Приведение постановки задачи к векторной форме

5.2.1 Выбор внутреннего представления отверстия

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

5.2.2 Выбор внутреннего представления СИ

В качестве представления СИ выберем задание всех отверстий, точки – центра СИ направления его оси. Ось задается конструктором, а центр СИ можно получить как точку – начало оси.

5.2.3 Анализ вариантов необходимых векторов Заранее условимся называть то СИ, одно из отверстий которого мы в данный момент выбираем рассматриваемым СИ, а другое – вторым СИ.

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

Действительно по правилу векторного произведения, вектор vec будет направлен таким образом, что по правилу правого винта момент, вызываемый силой сонаправленной с вектором vec, будет как раз закручивающим. А так как сила натяжения проволоки направлена в сторону второго СИ, вектор vec должен образовывать острый угол с вектором, направленным от центра рассматриваемого СИ к центру второго СИ.

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

Такой вектор vec поставим в соответствие каждой точке отверстия.

Но необходимо еще учитывать тот факт, что проволока, проходящая через данное отверстие, создает силу только в той точке отверстия (а у отверстия их 2), к которой она подходит закрученной частью (далее в точке входа). Таким образом, для выбора необходимо учесть, что из шести (по две на каждое из трех отверстий) точек отверстия только три могут быть точками входа. И для выбора отверстия надо выбрать одну из них.

Этот условие можно формализовать одним из следующих способов:

• Выбирать ту точку отверстия, которая ближе ко второму СИ.

• Ввести вектор, соединяющий рассматриваемую точку отверстия с другой точкой отверстия того же отверстия. Если этот вектор составляет тупой угол с вектором vec данной точки.

В данном случае оптимальным будет выбор второго варианта, т.к. возможны ситуации, когда первый вариант дает неверный результат. Пример такой ситуации проиллюстрирован на рисунке 1:

 

сапр catia уроки

 

Здесь СИ имеют правое направление резьбы, С – центр второго СИ, вектора vec1 и vec2 направлены в сторону закручивающего момента. Для рассматриваемого СИ (слева, на рисунке изображен только его центр и точки отверстий, сами отверстия показаны линиями) закрученная часть проволоки, проходящей через отверстие AB, должна заканчиваться около точки А. Из рисунка видно: если выбирать точки по первому варианту, то закрученная часть проволоки должна заканчиваться около точки В (т.к. длина отрезка АС больше чем отрезка ВС), тогда как на самом деле она должна заканчиваться у точки А.

В то же время, если выбирать точку отверстия по второму варианту, выбрана будет точка А, т.к. вектора vec1 и АВ образуют тупой угол, в то время как вектора vec2 и ВА образуют острый.

5.2.4 Формализация условия минимальной длины проволоки Условие минимальной длины проволоки можно представить в более удобной форме: расстояние от центра второго СИ до точки входа должно быть минимальным. Действительно, общая длина проволоки складывается из длин соединительных частей (часть проволоки, которая соединяет точки входа двух СИ), длин огибающих частей (часть проволоки, которая проходит через отверстие) и длины концевого участка.

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

5.2.5 Постановка задачи для случая трех СИ

В случае соединения трех СИ ситуация с СИ, которое будет соединяться с двумя другими СИ (далее среднее СИ) несколько отличается от ситуации с двумя другими СИ (далее крайними). Вязка трех болтов конструктивно выполняется одной проволокой, и она проходит только через одно отверстие среднего СИ.

Поэтому возможны такие варианты (см. рисунок 2, направление резьбы - левое) расположения СИ, что при прохождении проволоки через любое из трех отверстий среднего СИ, участок проволоки (на рисунке участок 1), соединяющий его (среднее СИ) с одним из крайних СИ (на рисунке СИ 1) будет создавать закручивающий момент, в то время как участок проволоки (на рисунке участок 2), соединяющий его со вторым крайним СИ (на рисунке СИ 2) будет создавать откручивающий момент. В таких случаях натяжение участка 2 (на рисунке сила F2) должно создавать откручивающий момент на среднем СИ, но проволока передает эту нагрузку дальше, на СИ 1, на котором сила F2 уже будет создавать закручивающий момент. То есть сила натяжения на участке 2 (F2) будет компенсироваться силой натяжения на участке 1 (F1).

В результате мы видим: при соединении трех СИ необходимо, чтобы соединение среднего элемента только с одним из крайних создавало затягивающий момент на среднем СИ.

5.2.6 Постановка задачи в векторной форме

Подытожим, Соединение считается оптимальным, если:

• Выполняется следующие правила:
• вектор vec (полученный по формуле 1), соответствующий точке входа должен образовывать тупой угол с вектором, направленным от точки входа к другой точке того же отверстия.
• вектор vec (полученный по формуле 1), соответствующий точке входа должен образовывать острый угол с вектором, направленным от центра рассматриваемого СИ к центру второго СИ.
• Точка входа выбранного отверстия должна находиться на минимально возможном расстоянии от второго СИ.

Эти условия должны выполняться на каждом из соединяемых СИ.

Для случая трех СИ выполнение приведенных выше правил для среднего СИ необходимо только при рассмотрении пары среднего СИ с одним из крайних СИ, а при рассмотрении пары с другим СИ выполнение этих правил необязательно.

5.3 Синтез алгоритма выбора отверстий

5.3.1 При соединении двух СИ

При рассмотрении пары соединяемых СИ мы будем последовательно рассматривать все шесть точек отверстий сначала одного СИ, а потом другого.

При рассмотрении каждой точки рассмотрим три вектора:

• Вектор направления проволоки - вектор, направленный от центра рассматриваемого СИ к центру второго СИ, он не меняется в течение рассмотрения одного СИ
• Вектор vec данной точки отверстия, его для каждой точки получаем по формуле 1 как векторное произведения вектора-оси рассматриваемого СИ и радиус-вектора точки отверстия
• Вектор отверстия – вектор, направленный от рассматриваемой точки отверстия ко второй точке того же отверстия

Условие тупого угла удобно представить как условие отрицательности скалярного произведения, а соответственно условие тупого угла представим как условие положительности скалярного произведения.

Подытожим: для каждой рассматриваемой точки скалярное произведение вектора направления проволоки на вектор vec должно быть положительно, а скалярное произведение вектора отверстия на вектор vec должно быть отрицательно.

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

5.3.2 При соединении трех СИ

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

Потом также рассмотреть пару среднего СИ с другим крайним СИ, но здесь уже ограничиться рассмотрением только крайнего болта.

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

5.4 Анализ вариантов ввода исходных данных

5.4.1 Выбор способа ввода исходных данных

Существуют два варианта ввода исходных данных:

• Копирование вводимых элементов – необходимые элементы указываются непосредственно в part нужного СИ
• Достоинства
 Удобство ввода данных
• Недостатки
 Ненадежность работы при использовании повторяющихся СИ
• Использование контрольной структуры
• Достоинства
 Надежность
 Независимость от типа СИ
• Недостатки
 Дополнительная работа конструктора

Проанализировав приведенные достоинства и недостатки каждого метода, делаем выбор в пользу использования контрольной структуры, т.к. вероятность того, что будет проводиться стопорение одинаковых СИ, очень велика.

5.4.2 Выбор необходимых данных

Поскольку для решения данной задачи нам необходимо знать только расположение отверстий, то вводимые данные должны однозначно описывать эти отверстия. Проблема заключается в том, что на ГСС используются модели СИ без истории, в результате выбрать напрямую отверстия нельзя.

Поэтому для ввода каждого отверстия необходимо ввести 2 точки, точку входа и точку входа. Т.к. в моделях СИ эти точки не присутствуют, их можно получить как центр ребра пересечения отверстия с шестигранником.

Поскольку отверстия осесимметричны относительно оси СИ, то, зная положение одного отверстия и оси СИ можно получить остальные 2.

5.4.3 Окончательные требования к исходным данным

Таким образом, перед запуском script необходимо:

SolidBodies и оси СИ скопировать в Part, в котором после будет построена проволока. При запуске script конструктор должен указать для каждого болта СИ ось шестигранника, и кривые пересечения одного из отверстий с двумя гранями болта СИ, а также оговорить направление резьбы СИ (по умолчанию предлагается правая резьба) и вид концевого участка. Направление резьбы влияет на направление контровки.

Пример ввода исходных данных показан на рис 3:

Пример ввода исходных данных показан на рис 3:

5.5 Синтез алгоритма получения каркаса контровочной проволоки

Рассмотрим проволоку как совокупность следующих ее участков:

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

Все эти участки показаны на рисунке 3

5.5.1 Алгоритм построения скрученных частей

Для построения скрученных частей был выбран графический приметив helix (обоснование выбора см. в пункте 6.2.1).

На рисунке 4 обозначены необходимые для построения объекты.

На рисунке 4 обозначены необходимые для построения объекты.

Необходимые для построения данные получены следующим образом:

Ось обоих винтовых линий – отрезок АВ строится по двум точкам А и В, где А – начальная точка оси, а В – ее конечная точка.

Точки А и В строятся таким образом, что точки Р11 (точка входа первого СИ), Р12 (точка выхода первого СИ) и сама точка А лежали на одной прямой, и чтобы точка Р11 разбивала отрезок АР12 в отношении 1:1. Соотношение подобрано эмпирически так, чтобы вероятность пересечения проволоки и тела СИ была минимальной. Такое построение CATIA позволяет выполнить встроенными средствами построения точки. Точка В строится аналогично.

Шаг винтовой линии подбирается таким образом, чтобы:

• Одна винтовая линия (на рисунке helix 1) и начиналась и заканчивалась ближе к СИ, чем вторая (на рисунке helix 2). Если это условие формализовать, то количество витков должно быть равно n + 0.5, где n – любое натуральное число.

• Величина шага винтовой линии должна быть максимально близкой к 5 мм. Шаг выбирается по формуле:

P = L / ([L / 5] + 0.5), где L – длинна винтовой линии, а P – ее шаг. Длина винтовой линии подбирается из условия:

Ось винтовых линей (АВ на рисунке 5) и отрезок, соединяющий точку входа СИ и ось винтовых линей (Р11С на рисунке 5) должны пересекаться под углом не менее 90 градусов.

Реализовать выполнение этого условия можно с помощью следующего алгоритма: Изначально точка С совпадает с точкой А, т.е. точка С строится как начало отрезка АВ (т.е. как точка, которое делит отрезок АВ в соотношении 1:0). В случае если угол между АВ и Р11С меньше 90 градусов точка С сдвигается по отрезку АВ в сторону точки В на 0.05 длины отрезка (т.е. соотношение, в котором она делит отрезок, увеличивается на 0.05). Этот сдвиг продолжается до тех пор, пока угол между АВ и Р11С не станет больше 90 градусов.

Далее точка через точку С строится нормальная плоскость, которой будут начальные принадлежать точки винтовых линий.

Конечные точки винтовых линий будут принадлежать плоскости, нормальной отрезку АВ и проходящей через точку, которая будет принадлежать отрезку АВ и отстоять от точки В на расстояние, необходимое для выполнения условия описанного выше. Эта точка (точка D) получается, по тому же алгоритму, что и точка С. На рисунке 5 она совпадает с точкой В. Но поскольку для построения helix требуются начальная точка и длина (а не две точки). Поэтому нормальная плоскость через точку D не строится, а только вычисляется длина отрезка CD, которая впоследствии используется как длина винтовых линий.

Ориентация винтовых линий скрученных участков берется следующим образом: на участке, соединяющем СИ1 и СИ2, берется направление против часовой стрелки, а на участке, соединяющем СИ2 и СИ3, в целях повышения надежности берется, наоборот, направление по часовой стрелке (см. пункт 5.6.4).

5.5.2 Алгоритм построения огибающих участков

Огибающие участки в данной задачи бывают трех видов:

• При первом СИ – он соединяется с одной из ветвей скрученного участка и одной из ветвей концевого участка

• При среднем СИ (только для случая трех СИ) – он соединяет по одной из ветвей разных скрученных участков. Бывает двух видов:

• Прямолинейный – для случая, когда проволока огибает средний СИ

• С огибающей – для случая, когда проволока только зацепляется за средний СИ

• При крайнем СИ – он соединяется с разными ветвями скрученного участка

Рассмотрим каждый из них подробно:

Огибающий участок при первом СИ

Огибающий участок при первом СИ

Построение данного участка должно обеспечить корректное положение проволоки в отверстии (в прямолинейном отверстии проволока тоже должна быть прямолинейной) и корректный выход проволоки из отверстия (скругление нужного радиуса). Корректный вход проволоки обеспечивает взаимное расположение ветви скрученного участка и отверстия (см. пункты 5.6.1 и 5.6.4). Пример участка изображен на рисунке 7.

Огибающий участок при первом СИ строится по точкам А-В-С.

• Точка А – точка входа СИ.

• Точка В лежит на оси отверстия и отстает от точки выхода на 5мм

• Точка С лежит на прямой, соединяющей центр СИ и точку выхода и отстает от точки выхода на 5мм.

Значение 5мм получено эмпирически.

Угол при вершине В скругляется по радиусу 1мм.

Прямолинейный огибающий участок при среднем СИ

Прямолинейный огибающий участок при среднем СИ

Построение данного участка должно обеспечить корректное положение проволоки в отверстии (в прямолинейном отверстии проволока тоже должна быть прямолинейной). Корректный вход и выход проволоки обеспечивает взаимное расположение ветвей скрученных участков и отверстия (см. пункты 5.6.1 и 5.6.4). Пример участка изображен на рисунке 8.

Прямолинейный огибающий участок при среднем СИ строится по точкам А-В.

• Точка А – точка входа СИ.

• Точка В - точка выхода

Огибающий участок при среднем СИ с огибающей

 

Огибающий участок при среднем СИ с огибающей

 

Построение данного участка должно обеспечить корректное положение проволоки в отверстии (в прямолинейном отверстии проволока тоже должна быть прямолинейной), корректный выход проволоки из отверстия (скругление нужного радиуса) и отсутствие пересечения проволоки с телом СИ. Корректный вход проволоки обеспечивает взаимное расположение ветви скрученного участка и отверстия (см. пункты 5.6.1 и 5.6.4). Отсутствие пересечения проволоки с телом СИ обеспечивает необходимая удаленность точки С от СИ. Пример участка изображен на рисунке 9.

Огибающий участок при среднем СИ с огибающей строится по точкам А-В-С.

• Точка А – точка входа СИ.

• Точка В лежит на оси отверстия и отстает от точки выхода на 5мм

• Точка С лежит на прямой, соединяющей центр СИ и середины оси отверстия расположена так, что ось отверстия лежит строго посередине между этими двумя точками.

Значение 5мм получено эмпирически.

Угол при вершине В скругляется по радиусу 1мм.

Огибающий участок при крайнем СИ

 

Огибающий участок при крайнем СИ

 

Построение данного участка должно обеспечить корректное положение проволоки в отверстии (в прямолинейном отверстии проволока тоже должна быть прямолинейной), корректный выход проволоки из отверстия (скругление нужного радиуса) и отсутствие пересечения проволоки с телом СИ. Корректный вход проволоки обеспечивает взаимное расположение ветви скрученного участка и отверстия (см. пункты 5.6.1 и 5.6.4). Отсутствие пересечения проволоки с телом СИ обеспечивает необходимая удаленность точки С от СИ. Пример участка изображен на рисунке 10.

Огибающий участок при крайнем СИ строится по точкам А-В-С.

• Точка А – точка входа СИ.

• Точка В лежит на оси отверстия и отстает от точки выхода на 5мм

• Точка С лежит на прямой, соединяющей центр СИ и середины оси отверстия расположена так, что ось отверстия лежит строго посередине между этими двумя точками.

Значение 5мм получено эмпирически.

5.5.3 Алгоритм построения концевого участка

Случай без пломбы

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

На рисунке показан концевой участок "без пломбы".

На рисунке показан концевой участок "без пломбы".

Случай с пломбой

При стопорении СИ проволокой с последующим пломбированием концевых участков, они закручиваются, потом пропускаются через пломбу и потом снова закручиваются. Порядок прохождения проволокой пломбы стандартизован ОСТ 1 10067-71.

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

На рисунке показан концевой участок "под пломбу".

 

На рисунке показан концевой участок "под пломбу".

 

5.5.4 Алгоритм построения соединительных участков

Порядок соединения участков не зависит от исходных данных.

В данном script используются соединения двух видов: соединение helix – polyline и соединение helix – helix.

При соединении двух helix удобно для них взять разную ориентацию. Удобство заключается в следующем: поскольку графический примитив connect, которым осуществляется соединение, представляет собой трехмерный сплайн Безье, который задают касательные к соединяемым объектам (см. пункт 6.2.4), то разная ориентация соединяемых спиралей позволяет уменьшить угол между этими касательными с близкого к 180 градусам до близкого к 0 градусам (см. рисунок)

 

разная ориентация соединяемых спиралей позволяет уменьшить угол между этими касательными с близкого к 180 градусам до близкого к 0 градусам (см. рисунок)

 

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

При соединении helix – polyline необходимо соблюдать следующее условие:

Конец той винтовой линии, которая соединяется с polyline в точке входа СИ, должна находится ближе к СИ, чем конец другой винтовой линии.

Это условие обеспечивает отсутствие самопересечений получаемой проволоки.

6 Технологическая часть

6.1 Выбор средства разработки

6.1.1 Анализ предоставляемых средств разработки

САПР CATIA предоставляет следующие средства для разработки приложений:

• CAA – Multi-Workspace Application Builder (MAB)

• CatVBA – visual basic application for CATIA

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

Остановимся на каждом из них подробнее:

Что такое САА

САА – это мощное средство разработки, которое предоставляет комплексную совместимую среду, которая позволяет компилировать, осуществлять сборку и построение приложений под CATIA V5, используя методы и инструменты, которые разработчики из Dassault Systemes используют для создания своих продуктов. Стандартные промышленные компиляторы и редакторы связей (linkers) для таких языков, как C, C++ и Java используются вместе с совместимыми платформо-независимыми процессами и методами. Благодаря возможности осуществлять многопроектную компиляцию наряду с динамической редакции связей, CAA предоставляет наиболее эффективный механизм обработки зависимостей между отдельными проектами.

Что такое CatVBA

CatVBA – это средство написания алгоритмически несложных приложений (макросов), которое входит в состав стандартного пакета установки практически любого программного пакета (не только САПР), в том числе и CATIA V5.

В состав стандартного пакета установки CATIA V5 входит среда написания приложении на visual basic – Visual basic editor. Эта среда включает в себя редактор оконных интерфейсов (windows forms), удобный текстовый редактор, отладчик и документацию.

CatVBA предоставляет разработчику полный спектр функций. Необходимых для работы со стандартными графическими примитивами CATIA.

Обоснование выбора средства разработки

Поскольку данная задача имеет достаточно невысокую алгоритмическую сложность и не использует ресурсоемких методов, для решения данной задачи будет вполне достаточно возможностей предоставляемых CatVBA.

6.1.2 Описание среды разработки

Visual basic editor включает в себя редактор оконных интерфейсов (windows forms), удобный текстовый редактор, отладчик и документацию.

Редактор оконных интерфейсов (windows forms) - режим Design mode Имеет стандартный для таких приложений интерфейс. И хотя полной функциональности в этой области (как например редактор VisualStudio) но для решения данной задачи предоставляемых возможностей вполне достаточно (на рисунке ниже изображено окно Visual basic editor в режиме редактора оконных интерфейсов (windows forms)).

 

описание среды разработки

 

Рассматриваемый редактор позволяет использовать следующие формы:

• Label
• Edit box
• Combo box
• List box
• Check box
• Radio button
• Toggle button
• Group box
• Command button
• Tab strip
• Multi page
• Scroll bar
• Spin button
• Bitmap

В Visual basic editor так же включен простой генератор кода, например при двойном щелчке на каком либо элементе формы в режиме design mode, в секции кода автоматически создается шаблон обработчика события, связанного с этим элементом.

Текстовый редактор

Предоставляет пользователю подсветку и структурирование кода, динамическую синтаксическую проверку и возможность динамического вызова документации (если выделить название функции и нажать F1, документация открывается в нужном месте). На рисунке ниже изображено окно Visual basic editor в режиме редактора кода.

 

Текстовый редактор

 

Отладчик

Входящий в состав Visual basic editor отладчик имеет стандартный интерфейс, но не имеет полной функциональности, предоставляемой другими отладчиками (например, отладчиком VisualStudio). Тем не менее, некоторая ограниченность функциональности не ограничивает возможности отладчика, а только делает работу с ним менее удобной.

Например, для перехода к участку кода необходимо установить там breakpoint. Так же в рассмотренном отладчике нет режима автоматического просмотра значений используемых переменных, и для просмотра каждой из желаемых переменных необходимо в ручном режиме добавить ее в watch list. На рисунке ниже изображено окно Visual basic editor в режиме отладчика.

Отладчик Входящий в состав Visual basic editor

 

6.2 Анализ вариантов получения всех точек отверстий по двум введенным

Итак, после ввода исходных данных для каждого СИ мы имеем обе точки одного из отверстий и ось СИ. В каждом СИ имеется три осесимметричных отверстия. Каждое из отверстий может быть получено поворотом предыдущего на 120 градусов. По этим данным можно получить точки остальных отверстий двумя способами:

• С помощью операции circular pattern
• Достоинства
 Оставшиеся два отверстия можно получить по введенному за одну операцию
• Недостатки
 Все элементы circular pattern воспринимаются как единое целое
 Для обращения к конкретному элементу необходимо использовать его внутреннее имя
• С помощью операции rotate
• Достоинства
 К каждому объекту, полученному операцией rotate можно обращаться по прямой ссылке, он не зависит от объекта-родителя
• Недостатки
 Для получения каждого элемента необходимо заново обращаться к операции rotate

Проанализировав достоинства и недостатки каждого из приведенных способов выбор был сделан в пользу операции rotate.

Для выполнения операции rotate был использован метод AddNewRotate объекта hybridShapeFactory. В качестве параметров он принимает: • Ссылку на вращаемый объект

• Ссылку на ось вращения
• Значение угла поворота

6.3 Обоснования выбора примитивов построения

6.3.1 Для скрученных частей

Скрученная часть проволоки представляет собой прямолинейную часть, где две ветви проволоки закручены относительно друг друга. Если рассмотреть каждую ветвь проволоки в отдельности, то она представляет собой винтовую линию с прямолинейной осью и постоянными шагом и радиусом витков. Среди графических примитивов, предоставляемых CAD CATIA есть графический приметив helix (винтовая линия, спираль (англ.)). Он представляется наиболее удобным для построения винтовых линий. Винтовую линию можно построить с помощью метода AddNewHelix объекта hybridShapeFactory, который можно получить через соответствующее свойство объекта part, который мы получаем из начальных данных.

В качестве параметров AddNewHelix принимает:

• Ссылку на ось – прямую линию, представленная графическим примитивом line или прямолинейным ребром
• Ссылку на начальную точку винтовой линии, ее удаленность от оси определяет радиус витков
• Шаг винтовой линии
• Начальный угол винтовой линии
• Ориентация винтовой линии
• Угол конуса и его направление, для случая, если необходимо построить коническую винтовую линию

В данном случае, для построения helix требуется

• Ось, задается при известных точках входа и выхода
• Начальную точку винтовой линии
• Шаг винтовой линии
• Ориентация винтовой линии

Ось, задается при известных точках входа и выхода.

Радиус винтовой линии выберем равным 0.52 мм, так как диаметр проволоки равен 1 мм (задано в ТЗ), и радиус витков винтовой линии должен быть не меньше радиуса проволоки потому, что винтовая линия впоследствии будет принята как центроида проволоки. Зазор 0.02 мм гарантирует отсутствие самопересечений (необходимость отсутствия таковых объясняется в пункте 6.2.4).

Шаг винтовой линии был получен методом проб и ошибок, и приблизительно равен 5мм.

Для построения начальной точки винтовой линии – точки расположенной на расстоянии равном радиусу витка винтовой линии от ее оси воспользуемся возможностью построить точку на плоскости по относительным координатам. Это можно сделать с помощью метода AddNewPointOnPlaneWithReference объекта hybridShapeFactory.

В качестве параметров метод AddNewPointOnPlaneWithReference принимает:

• Ссылку на плоскость, на которой будет построена точка
• Ссылку на точку – начало относительных координат
• Относительные координаты этой точки

Для постоения плоскости воспользуемся возможностью построить плоскость, нормальную заданной кривой через заданную точку. Это можно сделать с помощью метода AddNewPlaneNormal объекта hybridShapeFactory.

В качестве параметров метод AddNewPlaneNormal принимает ссылки на кривую и точку на этой кривой.

Для построения точки на кривой воспользуемся возможностью построить точку, на заданной кривой по соотношению, в котором эта точка делит кривую. Это можно сделать с помощью метода AddNewPointOnCurveFromPercent объекта hybridShapeFactory.

В качестве параметров метод AddNewPointOnCurveFromPercent принимает:

• Ссылку на кривую
• Соотношение, в котором эта точка делит кривую
• Ориентацию кривой

Для последующего изменения соотношения, в котором эта точка делит кривую воспользуемся свойством Ratio.Value объекта HybridShapePointOnCurve, который нам возвращает функция AddNewPointOnCurveFromPercent.

6.3.2 Для огибающих участков

Огибающие участки – участки, которые проходят через отверстия. Они представляют собой прямолинейные участки, соединенные участками окружностей. Среди графических примитивов, предоставляемых CAD CATIA, есть графический приметив Polyline. Он представляет собой последовательное соединение набора точек отрезками. Получаемые в результате углы можно скруглить. Он представляется наиболее удобным для построения огибающих участков. Polyline можно построить с помощью метода AddNewPolyline объекта hybridShapeFactory. Этот метод не принимает никаких параметров.

Для того чтобы ввести точки, по которым строится polyline необходимо вызывать метод InsertElement объекта HybridShapePolyline для каждой точки. В качестве параметров он принимает:

• Ссылку на очередную точку
• Порядковый номер этой точки

Для того чтобы скруглить углы необходимо вызывать метод SetRadius объекта HybridShapePolyline для каждой вершины, угол при которой необходимо скруглить. В качестве параметров он принимает:

• Порядковый номер вершины
• Значение радиуса

6.3.3 Для соединения участков

Осуществлять соединение можно двумя способами:

• Обеспечить достаточно близкое подхождение участков друг к другу (в лучшем случае обеспечить соединение) и скруглить углы с помощью графического примитива 3d corner и осуществить последующий curve smooth – операцию сглаживания кривой.
• Соединять, возможно, сильно отстоящие друг от друга участки, с помощью примитива connect. У каждого из перечисленных способов есть свои достоинства и недостатки:

При использования 3d corner and curve smooth:

• Достоинства:
• Радиус скругления задается пользователем
• Предоставляется возможность выбора вариантов
• Недостатки
• Результирующая кривая может получиться недостаточно гладкой для твердотельного построения
• Возможно появление ошибок, которые нельзя обнаружить на первом update, а только после следующих построений
При использовании примитива connect:
• Достоинства
• Необходимая для твердотельных построений гладкость обеспечивается автоматически
• При соединении может объединять примитивы – нет необходимости дальнейшего объединения
• Соединяет даже далеко отстоящие элементы
• Низкая вероятность ошибки
• Недостатки
• Возможности варьирования формы кривой сильно ограничены
• Есть возможность получения слишком большой кривизны, что делает невозможными
твердотельные построения. Уменьшить кривизну возможно только изменяя положения соединяемых элементов

6.4 Обоснования выбора средств визуализации интерфейса

6.4.1 Для интерфейса

Перед интерфейсом стоят следующие задачи:

• Обеспечить выбор part, в котором находится контрольная структура
• Обеспечить выбор направления резьбы (правая или левая)
• Обеспечить выбор типа резьбы (внутренняя или внешняя)
• Обеспечить выбор количества СИ (2 или 3)
• Обеспечить выбор типа концевого участка (с пломбой или без нее)
• Обеспечить возможность закрытия формы и удаления всех промежуточных построений
• Обеспечить возможность выбора компонентов СИ, используемых в качестве исходных данных.
• Обеспечить возможность вызова справки
• Обеспечить возможность запуска script

На рисунке показан интерфейс формы:

интерфейс формы

Поскольку названия parts и их количество заранее неизвестно, выбор этих элементов обеспечим путем последовательного перебора всех parts. Для этого добавим на форму элемент split button, который будет обеспечивать выбор следующего или предыдущего part. Для отображения названия part воспользуемся элементом label. Для ввода признака завершения выбора на форму добавлен button "выбрать".

Для выбора типа и направления резьбы, количества СИ и вида концевого участка используется radio button.

Для выхода, вызова справки и запуска script используются buttons. Для выбора компонент СИ используются buttons объединенные в group box. Group box для СИ 3 становится доступным только при выборе трех СИ. После указания всех необходимых компонентов для каждого СИ в соответствующем ему group box становится активным label "выбран".

Buttons выбора компонент и "строить" становятся активными только после выбора part и количества элементов (нажатия кнопки "выбрать"), тогда же блокируются возможности поменять выбор part и количества СИ. Именно такая ситуация изображена на рисунке.

6.4.2 Для выделения выбранных компонент

Для визуального выделения выбранных компонент у них изменяется цвет и толщина линии. Основные проблемы выделения выбранных компонент:

• Цвет и толщину линий можно менять только у всего объекта, т.е. нельзя изменить цвет только одного ребра solid body (СИ)

• После окончания выбора (начала построения проволоки) выбранные компоненты больше не должны выделяться.

• Конструктор может изменить свой выбор и это должно отображаться

Для решения первой проблемы воспользуемся методом AddNewExtract объекта HybridShapeFactory. Этот метод позволяет выделить какой-либо компонент некоторого solid body, потом его можно будет добавить в body или HybridBody. В качестве параметра этот метод принимает ссылку на выбранный компонент.

Для решения второй проблемы все выделяемые компоненты будем помещать в HybridBody с построениями, который будет скрыт после окончания работы script. Таким образом, визуальное выделение выбранных компонент исчезнет после выполнения script. Для того, чтобы помесить в HybridBody с построениями оси, воспользуемся методами Copy и PasteSpecial объекта Selection. Для решения третьей задачи был использован следующий прием: выбранные компоненты помещались в HybridBody с построениями под оригинальным именем, зависящим только от способа выбора компоненты (например, компонента, выбранная, как "Дуга1" СИ 1 называется arc11). Поскольку всем построениям, объектам в part контрольной структуры имена присваиваются автоматически (автоматически присваиваемое имя состоит из названия типа объекта и порядкового номера объекта данного типа разделенных точкой, например point.12), вероятность наличия в part контрольной структуры другого объекта с тем же именем пренебрежимо мала (это возможно, только, если конструктор сам переименует какой либо из объектов part).

Перед добавлением в HybridBody с построениями новой компоненты, из него удаляется компонента с тем же именем. Это реализует следующий фрагмент кода:

On Error Resume Next
Set extr = hybridShapes1.Item(str)
selection1.Clear
selection1.Add extr
selection1.Delete
где str – строка с именем компоненты
Строка "On Error Resume Next" обеспечивает продолжение исполнения программы (переход к следующему оператору) в случае ошибки метода Item объекта HybridShapes. То есть, если объекта с таким именем в part не было, ничего удаляться не будет.

Для изменения цвета выбранных компонент использован метод SetRealColor объекта Selection.VisProperties.

Для изменения толщины линии выбранных компонент использован метод SetRealWidth объекта Selection.VisProperties. SetRealWidth

На рисунке изображено выделение элементов: 

На рисунке изображено выделение элементов:

Поделиться


Eще из данной категории

Энергетика бойынша курстық жұмыс
Дневник практики сестринское дело
Курсовая Релейная защита ЭЭС
Курсовая работа Проект балочной площадки
Дипломный проект ПГС
Курсовой по металлическим конструкциям производственный цех
Курсовая работа автоматизация навозоудаления коровника
Статический расчёт пространственной рамы средствами САПР NX8.5
Комплексный курсовой проект
Если у вас есть вопросы или критика на материал пишите в комментариях или на форуме
Ваше сообщение будет опубликовано только после проверки и разрешения администратора.
Ваше имя:
Комментарий:
Секретный код:
Секретный код
Повторить:

Добро пожаловать,
Гость

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:
Код:Секретный код
Повторить:

Последние файлы


Электроснабжение модульной котельной Дл… ...

Автоматизация АЗС. Автоматизация техноло… ...

Указания к монтажу   1. Извещател… ...

Экспликация помещений телятника (от 3 до… ...

Содержание технологической карты на монт… ...

Документы

Каталог нормативной документации
Скачать типовые техкарты
Типовые проекты и типовые серии
Типовые проекты и типовые серии