Автор работы: Пользователь скрыл имя, 29 Мая 2012 в 15:00, дипломная работа
Одной из ведущих отраслей современной техники является машиностроение. По уровню развития машиностроения судят о развитии производительных сил в целом.
Прогресс машиностроения в свою очередь определяется созданием новых
высокопроизводительных и надёжных машин. Решение этой важнейшей проблемы основывается на комплексном использовании результатов многих дисциплин и, в первую очередь, теории механизмов и машин.
Введение 4
1. Описание предметной области: теория механизмов и машин 5
1.1 Структура строения механизма 5
1.1.1 Общее понятие механизма 5
1.1.2 Звенья механизмов 5
1.1.3 Кинематические пары 7
1.1.4 Кинематические цепи 10
1.1.5 Виды механизмов и их структурные схемы 11
1.2Механизм и его подвижность 13
1.2.1 Структурная формула 13
1.2.2 Пассивные связи и лишние степени свободы 15
1.3 Закон образования механизмов по Ассуру 16
1.3.1.Сущность закона Ассура 16
1.3.2 Двухзвенные механизмы 17
1.3.3 Группы нулевой подвижности 17
2 Задачи кинематики механизмов и их решение 20
2.1 Теоретические основы и определения 20
2.1.1 Геометрическая модель звеньев и пар пространственного рычажного механизма 20
2.1.2 Геометрическая модель группы 22
2.1.3 Формула Чейза определения направления оси по 2-м углам 23
2.2 Решение прямой задачи о положениях механизма 24
2.2.1 Механизм как набор первичных механизмов и наслоение структурных групп 24
2.2.2 Определения величин, используемых при расчете положения группы 26
2.3 Аналитический подход к расчету положения структурной группы 28
2.3.1 Двухзвенная пространственная группа В-Сп-С 28
2.3.2 Двухзвенная плоская группа В-В-В 29
2.4 Алгоритм построения последовательности расчета положений структурных групп, составляющих механизм 30
3. Конструирование системы моделирования механизмов 31
3.1 Предварительные условия 31
3.1.1 Определение проблемы 31
3.1.2 Выработка требований к будущей программной системе 31
3.2 Проектирование архитектуры 32
3.3 Пользовательский интерфейс программы 34
3.3.1 Окно программы 34
3.3.2 Условные обозначения программы 34
Заключение 35
Литература 36
Приложение 1 37
GeomObject.cs 37
Holder.cs 37
Link.cs 38
Pair.cs 39
MechManager.cs 40
RRRGroup.cs 44
TestMech.cs 45
mCalcPairs = new List<int>();
calculated = false;
}
public void drawMech()
{
if(!calculated)
calculatePositions();
draw();
}
public void calculatePositions()
{
calcHolders();
while (mCalcPairs.Count < mMechPairs.Count)
{
mTriple = findTriple();
if (mTriple != null)
{
mTriple.getMidPair().Value.
}
}
calculated = true;
}
public RRRGroup findTriple()
{
RRRGroup group = null;
int id1 = 0;
int id2 = 0;
int linkId = 0;
for (int i = 0; i < mMechPairs.Count; i++)
{
if
(!mCalcPairs.Contains(
{
List<Link>
links = new List<Link>(Manager.
for (int j = 0; j < links.Count; j++)
{
if
(links.ElementAt(j).
{
linkId = j;
id1 = links.ElementAt(j).
break;
}
}
for (int j = 0; j < links.Count; j++)
{
if
((links.ElementAt(j).
{
id2 = links.ElementAt(j).
break;
}
}
if (!((id1 == 0)||(id2 == 0)))
{
Dictionary<Int32, Pair> triple = new Dictionary<int, Pair>();
triple.Add(id1, Manager.findPairById(id1));
triple.Add(id2, Manager.findPairById(id2));
triple.Add(mMechPairs.
group = new RRRGroup(triple);
mCalcPairs.Add(mMechPairs.
break;
}
}
}
return group;
}
public void calcHolders()
{
for (int i = 0; i < mMechPairs.Count; i++)
{
if
(mMechPairs.ElementAt(i).
{
mCalcPairs.Add(mMechPairs.
if
(mMechPairs.ElementAt(i).
{
List<Link>
links = new List<Link>(MechManager.
for (int j = 0; j < links.Count; j++)
{
Pair
pair = Manager.findPairById(links.
pair.mPos = new Vector3D(links.ElementAt(j).
mCalcPairs.Add(pair.mId);
}
}
}
}
}
override public void draw()
{
for (int i = 0; i < mMechPairs.Count; i++)
mMechPairs.ElementAt(i).Value.
for (int i = 0; i < mMechLinks.Count; i++)
mMechLinks.ElementAt(i).draw()
}
}