Автор работы: Пользователь скрыл имя, 05 Февраля 2015 в 18:11, курсовая работа
На настоящий момент САПР становятся обязательной частью любой производственной экономической деятельности. Они помогают обеспечить жизнеспособность фирмы и дают ей возможность развиваться в нынешних условиях жесткой рыночной конкуренции. Основной вклад подобных систем состоит в следующем:
- повышение качества продукции за счет сокращения ошибок в конструкторских и технологических расчетах, удобства внесения инженерных изменений и контроля качества;
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(
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(
list2 = (Tag[])arrList2.ToArray(
list3 = (Tag[])arrList3.ToArray(
// Параметры фаски:
string offset1 = "1";
string offset2 = "1";
string ang = "45";
// Создание фаски.
theUfSession.Modl.
int allow_smooth = 0;
int allow_cliff = 0;
int allow_notch = 0;
double vrb_tol = 0.0;
theUfSession.Modl.CreateBlend(
theUfSession.Modl.CreateBlend(
theSession.DisplayManager.
Рисунок 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.
Tag instance;
UFPart.LoadStatus error_status;
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
if (comboBox1.Text == "3")
{
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
}
if (comboBox1.Text == "1")
{
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
}
if (comboBox1.Text == "2")
{
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
theUfSession.Assem.
}
theSession.DisplayManager.
Рисунок 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#.
Рисунок 4.12 – Окно создания проекта
Рисунок 4.13 – Обозреватель решений
Рисунок 4.14 – Окно свойств проекта
На вкладке Приложение выбираем Целевую рабочую среду - .NET Framework 4.5, Тип выходных данных – Библиотека классов.
Рисунок 4.15 – Главная форма библиотеки
Рисунок 4.16 – Пустая форма библиотеки
Рисунок 4.12 – Основные компоненты формы
5 Тестирование программного
На данном этапе определяется план работ по обеспечению надежности информационной системы и ее тестирования. Для любых проектов целесообразным является привлечение тестеров на ранних этапах разработки, в частности на этапе анализа и проектирования. Если проектное решение оказалось неудачным и это обнаружено слишком поздно – на этапе разработки или, что еще хуже, на этапе внедрения в эксплуатацию, – то исправление ошибки проектирования может обойтись очень дорого. Чем раньше группы тестирования выявляют ошибки в информационной системе, тем ниже стоимость сопровождения системы. Время на тестирование системы и на исправление обнаруженных ошибок следует предусматривать не только на этапе разработки, но и на этапе проектирования.
Для автоматизации тестирования следует использовать системы отслеживания ошибок (bug tracking). Это позволяет иметь единое хранилище ошибок, отслеживать их повторное появление, контролировать скорость и эффективность исправления ошибок, видеть наиболее нестабильные компоненты системы, а также поддерживать связь между группой разработчиков и группой тестирования. Чем больше проект, тем сильнее потребность в bug tracking.
Тестирование – процесс выполнения программ с целью обнаружения факта наличия ошибок. Это классическое определение тестирования, принадлежащее Гленфорду Майерсу. Обратим внимание, в определении указан лишь один способ проведения тестирования. Существуют и методы ручного тестирования (например, инспекции и сквозные просмотры программ).