Пространственные механизмы

Автор работы: Пользователь скрыл имя, 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

Вложенные файлы: 1 файл

диплом.doc

— 1.73 Мб (Скачать файл)

            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.mPos = Manager.getMiddlePoint(mTriple);

                }

            }

            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(mMechPairs.ElementAt(i).Key))

                {

                    List<Link> links = new List<Link>(Manager.getLinksForPair(mMechPairs.ElementAt(i).Key));

                    for (int j = 0; j < links.Count; j++)

                    {

                        if (links.ElementAt(j).isLinkedWith(mCalcPairs))

                        {

                            linkId = j;

                            id1 = links.ElementAt(j).getSecondPairId(mMechPairs.ElementAt(i).Key);

                            break;

                        }

                    }

                    for (int j = 0; j < links.Count; j++)

                    {

                        if ((links.ElementAt(j).isLinkedWith(mCalcPairs))&&(j != linkId))

                        {

                            id2 = links.ElementAt(j).getSecondPairId(mMechPairs.ElementAt(i).Key);

                            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.ElementAt(i).Key, mMechPairs.ElementAt(i).Value);

                        group = new RRRGroup(triple);

                        mCalcPairs.Add(mMechPairs.ElementAt(i).Key);

                        break;

                    }

                }

            }

            return group;

        }

 

        public void calcHolders()

        {

            for (int i = 0; i < mMechPairs.Count; i++)

            {

                if (mMechPairs.ElementAt(i).Value.isHolded)

                {

                    mCalcPairs.Add(mMechPairs.ElementAt(i).Key);

                    if (mMechPairs.ElementAt(i).Value.mType == Pair.TYPE_MAIN)

                    {

                        List<Link> links = new List<Link>(MechManager.getInstance().getLinksForPair(mMechPairs.ElementAt(i).Key));

                        for (int j = 0; j < links.Count; j++)

                        {

                            Pair pair = Manager.findPairById(links.ElementAt(j).getSecondPairId(mMechPairs.ElementAt(i).Key));

                            pair.mPos = new Vector3D(links.ElementAt(j).mEnd);

                            mCalcPairs.Add(pair.mId);

                        }

                    }

                }

            }

        }

 

        override public void draw()

        {

            for (int i = 0; i < mMechPairs.Count; i++)

                mMechPairs.ElementAt(i).Value.draw();

            for (int i = 0; i < mMechLinks.Count; i++)

                mMechLinks.ElementAt(i).draw();

        }

    }


Информация о работе Пространственные механизмы