Разработка прикладной библиотеки автоматизированного проектирования сборочной модели переходника

Автор работы: Пользователь скрыл имя, 05 Февраля 2015 в 18:11, курсовая работа

Краткое описание

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

Прикрепленные файлы: 1 файл

dip.doc

— 1.74 Мб (Скачать документ)

FeatureSigns Positiv = FeatureSigns.Positive;

FeatureSigns Negative = FeatureSigns.Negative;

body2 = round(taper_angle1, arc1_centerpt1, arc1_start_ang1, arc1_end_ang1, arc1_rad1,

startheight1, height1, matrix1, ref_pt_extrude1, direction_extrude1, Negative, body1);

 

 

Рисунок 4.2 – Построение эскиза

 

На следующем этапе произведем выдавливание окружности, как показано на рисунке 4.3.

FeatureSigns Operaciy_rect = FeatureSigns.Nullsign;

 

body1 = rectangl(point_A, point_B, point_C, point_D, startheight_rect, height_rect, taper_angle,

ref_pt_extrude0, direction_extrude0, Operaciy_rect);

 //круг1

string taper_angle1 = "0.0";

double[] arc1_centerpt1 = { 82, 82, 0 };

double arc1_start_ang1 = 0.0;

double arc1_end_ang1 = 3.14159265358979324 * 2;

double arc1_rad1 = 30;

double startheight1 = 0;

double height1 = 18;

double[] matrix1 = { 1, 0, 0, 0, 1, 0, 0, 0, -1 };

double[] ref_pt_extrude1 = { 0.0, 0.0, 0.0 };

double[] direction_extrude1 = { 0.0, 0.0, 1.0 };

FeatureSigns Positiv = FeatureSigns.Positive;

FeatureSigns Negative = FeatureSigns.Negative;

body2 = round(taper_angle1, arc1_centerpt1, arc1_start_ang1, arc1_end_ang1, arc1_rad1,

startheight1, height1, matrix1, ref_pt_extrude1, direction_extrude1, Negative, body1);

 

 

 

Рисунок 4.3 – Результат операций «Выдавливание»

 

Следующим этапом произведем построение отверстий под крепежные элементы, как показано на рисунке 4.4.

 double height2 = 30;

double arc1_rad3 = 15.4;

double[] arc1_centerpt3 = { 19.5, 19.5, 0 };

body3 = round(taper_angle1, arc1_centerpt3, arc1_start_ang1, arc1_end_ang1, arc1_rad3,

startheight1, height2, matrix1, ref_pt_extrude1, direction_extrude1, Negative, body2);

double[] arc1_centerpt4 = { 144.5, 19.5, 0 };

body4 = round(taper_angle1, arc1_centerpt4, arc1_start_ang1, arc1_end_ang1, arc1_rad3,

startheight1, height2, matrix1, ref_pt_extrude1, direction_extrude1, Negative, body3);

double[] arc1_centerpt5 = { 19.5, 144.5, 0 };

body5 = round(taper_angle1, arc1_centerpt5, arc1_start_ang1, arc1_end_ang1, arc1_rad3,

startheight1, height2, matrix1, ref_pt_extrude1, direction_extrude1, Negative, body4);

double[] arc1_centerpt6 = { 144.5, 144.5, 0 };

body6 = round(taper_angle1, arc1_centerpt6, arc1_start_ang1, arc1_end_ang1, arc1_rad3,

startheight1, height2, matrix1, ref_pt_extrude1, direction_extrude1, Negative, body5);

 

 

 

Рисунок 4.4 – Результат построения

 

Дальше необходимо построить эскиз определенной геометрии и провращать его вокруг оси X, как показано на рисунке 4.5.

 double arc1_rad8 = 40;

double startheight8 = 0;

double height8 = length;

double[] direction_extrude8 = { 0.0, 0.0, -1.0 };

body8 = round(taper_angle1, arc1_centerpt1, arc1_start_ang1, arc1_end_ang1, arc1_rad8,

startheight8, height8, matrix1, ref_pt_extrude1, direction_extrude8, Positiv, body7);

double arc1_rad9 = 24;

body9 = round(taper_angle1, arc1_centerpt1, arc1_start_ang1, arc1_end_ang1, arc1_rad9,

startheight8, height8, matrix1, ref_pt_extrude1, direction_extrude8, Negative, body8);

 

 

 

Рисунок 4.5 – Результат операции вытягивания цилиндрического отверстия

 

На пятом этапе построения необходимо построить фаски и скругления, как показано на рисунке 4.6.

 for (int ii = 0; ii < edgeCount; ii++)// Перебор ребер детали:

{

Tag edge;

theUfSession.Modl.AskListItem(edgeArray1, ii, out edge);

if ((ii == 1) || (ii == 2) || (ii == 3) || (ii == 4))

{

arrList1.Add(edge);

}

if ((ii == 0))

{

arrList3.Add(edge);

}

if ((ii == 25))

{

arrList2.Add(edge);

}

}

list1 = (Tag[])arrList1.ToArray(typeof(Tag));

list2 = (Tag[])arrList2.ToArray(typeof(Tag));

list3 = (Tag[])arrList3.ToArray(typeof(Tag));

// Параметры фаски:

string offset1 = "1";

string offset2 = "1";

string ang = "45";

// Создание фаски.

theUfSession.Modl.CreateChamfer(3, offset1, offset2, ang, list2, out obj_id_camf);

int allow_smooth = 0;

int allow_cliff = 0;

int allow_notch = 0;

double vrb_tol = 0.0;

theUfSession.Modl.CreateBlend("9", list1, allow_smooth, allow_cliff, allow_notch, vrb_tol, out obj_id_camf);

theUfSession.Modl.CreateBlend("4", list3, allow_smooth, allow_cliff, allow_notch, vrb_tol, out obj_id_camf);

 

theSession.DisplayManager.HideByType(DisplayManager.ShowHideType.Curves, DisplayManager.ShowHideScope.AnyInAssembly);

 

 

Рисунок 4.6 – Результат операций фаска и скругление ребер

 

По аналогии строим заглушку и вырезаем центральное отверстие, как показано на рисунке 4.7.

     //круг1

            string taper_angle1 = "0.0";

            double[] arc1_centerpt1 = { 0, 0, 0 };

            double arc1_start_ang1 = 0.0;

            double arc1_end_ang1 = 3.14159265358979324 * 2;

            double arc1_rad1 = 70;

            double startheight1 = 0;

            double height1 = 20;

            double[] matrix1 = { 1, 0, 0, 0, 1, 0, 0, 0, -1 };

            double[] ref_pt_extrude1 = { 0.0, 0.0, 0.0 };

            double[] direction_extrude1 = { 0.0, 0.0, 1.0 };

            FeatureSigns Nullsing = FeatureSigns.Nullsign;

            FeatureSigns Negative = FeatureSigns.Negative;

 

            round2(taper_angle1, arc1_centerpt1, arc1_start_ang1, arc1_end_ang1, arc1_rad1,

            startheight1, height1, matrix1, ref_pt_extrude1, direction_extrude1, Nullsing);

 

        double arc1_rad2 = 28;

            double startheight2 = 14;

            round2(taper_angle1, arc1_centerpt1, arc1_start_ang1, arc1_end_ang1, arc1_rad2,

            startheight2, height1, matrix1, ref_pt_extrude1, direction_extrude1, Negative);

 

 

Рисунок 4.7 – Результат построения отверстия

 

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

round2(taper_angle1, arc1_centerpt1, arc1_start_ang1, arc1_end_ang1, arc1_rad1,

startheight1, height1, matrix1, ref_pt_extrude1, direction_extrude1, Nullsing);

 

double arc1_rad2 = 28;

double startheight2 = 14;

round2(taper_angle1, arc1_centerpt1, arc1_start_ang1, arc1_end_ang1, arc1_rad2,

startheight2, height1, matrix1, ref_pt_extrude1, direction_extrude1, Negative);

 

double arc1_rad3 = 13.2;

double[] arc1_centerpt3 = { 50, 0, 0 };

round2(taper_angle1, arc1_centerpt3, arc1_start_ang1, arc1_end_ang1, arc1_rad3,

startheight1, height1, matrix1, ref_pt_extrude1, direction_extrude1, Negative);

double[] arc1_centerpt4 = { -50, 0, 0 };

round2(taper_angle1, arc1_centerpt4, arc1_start_ang1, arc1_end_ang1, arc1_rad3,

startheight1, height1, matrix1, ref_pt_extrude1, direction_extrude1, Negative);

double[] arc1_centerpt5 = { 0, 50, 0 };

round2(taper_angle1, arc1_centerpt5, arc1_start_ang1, arc1_end_ang1, arc1_rad3,

startheight1, height1, matrix1, ref_pt_extrude1, direction_extrude1, Negative);

double[] arc1_centerpt6 = { 0, -50, 0 };

round2(taper_angle1, arc1_centerpt6, arc1_start_ang1, arc1_end_ang1, arc1_rad3,

startheight1, height1, matrix1, ref_pt_extrude1, direction_extrude1, Negative);

 

 

Рисунок 4.8 – Модель заглушки

 

Выполним построение очередного элемента сборки – цилиндра. По эскизу, представленному на рисунке 4.9, реализуем выдавливание окружности с удалением материала (рисунок 4.10).

            Tag squares1;

            string name1 = "cylk";

            int units1 = 1;

            theUfSession.Part.New(name1, units1, out squares1);

            //круг1

            string taper_angle1 = "0.0";

            double[] arc1_centerpt1 = { 0, 0, 0 };

            double arc1_start_ang1 = 0.0;

            double arc1_end_ang1 = 3.14159265358979324 * 2;

            double arc1_rad1 = 30;

            double startheight1 = 0;

            double height1 = length;

            double[] matrix1 = { 1, 0, 0, 0, 1, 0, 0, 0, -1 };

            double[] ref_pt_extrude1 = { 0.0, 0.0, 0.0 };

            double[] direction_extrude1 = { 0.0, 0.0, 1.0 };

            FeatureSigns Nullsing = FeatureSigns.Nullsign;

            FeatureSigns Negative = FeatureSigns.Negative;

            round2(taper_angle1, arc1_centerpt1, arc1_start_ang1, arc1_end_ang1, arc1_rad1,

            startheight1, height1, matrix1, ref_pt_extrude1, direction_extrude1, Nullsing);

 

 

Рисунок 4.9 – Результат выдавливания

 

double arc1_rad2 = 25;

 

round2(taper_angle1, arc1_centerpt1, arc1_start_ang1, arc1_end_ang1, arc1_rad2,

startheight1, height1, matrix1, ref_pt_extrude1, direction_extrude1, Negative);

 

if (comboBox1.Text == "2")

{

double arc1_rad3 = 17;

double[] arc1_centerpt3 = { 0, length/2, 0 };

double[] matrix3 = { 1, 0, 0, 0, 0, 1, 0, 1, 0 };

double[] direction_extrude3 = { 0.0, 1.0, 0.0 };

round2(taper_angle1, arc1_centerpt3, arc1_start_ang1, arc1_end_ang1, arc1_rad3,

startheight1, height1, matrix3, ref_pt_extrude1, direction_extrude3, Negative);

 

 

 

Рисунок 4.10 – Винт

 

На следующем шаге произведем сборку, как показано на рисунке 4.11

           flanec(lengthflanec);

procladka_niz();

osnovan_niz();

cylk(lengthcylk);

osnovan_verh();

procladka_verh();

zaglush();

bolt1();

gayka();

gayka2();

Tag squares1;

string name1 = "sborka";

int units1 = 1;

theUfSession.Part.New(name1, units1, out squares1);

 

Tag parent_part = theUfSession.Part.AskDisplayPart();

Tag instance;

UFPart.LoadStatus error_status;

theUfSession.Assem.AddPartToAssembly(parent_part, "flanec", null, null, origin1, matrix1, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "procladka_niz", null, null, origin2, matrix1, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "osnovan_niz", null, null, origin3, matrix2, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "cylk", null, null, origin4, matrix1, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "osnovan_verh", null, null, origin5, matrix2, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "procladka_verh", null, null, origin6, matrix1, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "zaglush", null, null, origin7, matrix2, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt1", null, null, origin8, matrix3, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt1", null, null, origin9, matrix3, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt1", null, null, origin10, matrix3, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt1", null, null, origin11, matrix3, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "gayka", null, null, origin12, matrix4, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "gayka", null, null, origin13, matrix4, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "gayka", null, null, origin14, matrix4, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "gayka", null, null, origin15, matrix4, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "gayka2", null, null, origin16, matrix4, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "gayka2", null, null, origin17, matrix4, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "gayka2", null, null, origin18, matrix4, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "gayka2", null, null, origin19, matrix4, 0, out instance, out error_status);

if (comboBox1.Text == "3")

{

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt2", null, null, origin28, matrix3, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt2", null, null, origin29, matrix3, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt2", null, null, origin30, matrix3, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt2", null, null, origin31, matrix3, 0, out instance, out error_status);

}

if (comboBox1.Text == "1")

{

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt2", null, null, origin20, matrix3, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt2", null, null, origin21, matrix3, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt2", null, null, origin22, matrix3, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt2", null, null, origin23, matrix3, 0, out instance, out error_status);

 

}

if (comboBox1.Text == "2")

{

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt3", null, null, origin24, matrix3, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt3", null, null, origin25, matrix3, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt3", null, null, origin26, matrix3, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "bolt3", null, null, origin27, matrix3, 0, out instance, out error_status);

}

theSession.DisplayManager.HideByType(DisplayManager.ShowHideType.Curves, DisplayManager.ShowHideScope.AnyInAssembly);

 

 

Рисунок 4.11 – Результат построения

 

 

4.2 Разработка интерфейса библиотеки

 

Среда разработки Visual Studio Integrated Development Environment (IDE) - интегрированная среда разработки) включает набор инструментов и не зависит от используемых языков программирования, представленных в Visual Studio. Visual Studio можно использовать для создания кода и на различных языках программирования: управляемый C++ - Manadged C++, Visual Basic.NET, Java.NET, C#. Согласно рекомендациям компании Siemens остановим свой выбор на C#.

  1. Создаем проект: Тип проекта – Visual C#, Установленные шаблоны Visual Studio – Приложение Windows Forms, имя решения – Sborka_per. Как показано на рисунке  4.12.

 

 

Рисунок 4.12 – Окно создания проекта

 

  1. Создался проект, содержащий форму Form1. В окне «Обозреватель решений» нажимаем правую кнопку мыши на объекте «Program.cs» и нажимаем команду «Удалить», как показано на рисунке  4.13.

 

 

Рисунок 4.13 – Обозреватель решений

 

  1. Выбираем пункт меню Проект → Свойства проекта. Открывается следующее окно, как показано на рисунке 4.14

 

 

Рисунок 4.14 – Окно свойств проекта

 

На вкладке Приложение выбираем Целевую рабочую среду - .NET Framework 4.5, Тип выходных данных – Библиотека классов.

  1. Двойным щелчком левой кнопкой мыши или нажимаем правой кнопкой мыши в области формы и выбираем команду «Перейти к коду». Открывается окно Form.cs*. В разделе using прописываем строки, показанные на рисунке 4.15.

 

 

Рисунок 4.15 – Главная форма библиотеки

 

  1. Сохраняем проект, строим решение. При запуске данной библиотеки через NX появляется пустая форма как на рисунке 4.16).

 

 

Рисунок 4.16 – Пустая форма библиотеки

 

  1. Для отображения данных на форме необходимо поместить компонент ComboBox (выпадающий список), компонент pictureBox для отображения эскиза втулки, как показано на рисунке  4.12.

 

 

Рисунок 4.12 – Основные компоненты формы

 

5 Тестирование программного средства

 

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

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

Тестирование – процесс выполнения программ с целью обнаружения факта наличия ошибок. Это классическое определение тестирования, принадлежащее Гленфорду Майерсу. Обратим внимание, в определении указан лишь один способ проведения тестирования. Существуют и методы ручного тестирования (например, инспекции и сквозные просмотры программ).

Информация о работе Разработка прикладной библиотеки автоматизированного проектирования сборочной модели переходника