русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Лекции по построению компилятора на Pascal


Дата добавления: 2014-11-27; просмотров: 801; Нарушение авторских прав


1. Создание элементов модели. Общие понятия и терминология

 

Термином «Элемент» в системе обычно называется геометрический объект, который име­ет родителей. Элементы включают в себя все твердые тела, примитивы (типовые тела) и не­которые объекты, представляющие из себя каркас кривых. Геометрия, которая используется для построения элемента, является «родителем» операции. Сама операция считается «дочер­ним» объектом, т.е. зависящим от родителей элементом построения. Между дочерними и ро­дительскими элементами устанавливается ассоциативная связь. Изменение родителей приво­дит к автоматическому обновлению дочерних элементов. Рассмотрим наиболее часто встре­чающиеся термины, используемые при создании элементов:

- тело: совокупность граней и ребер, которые могут замыкать объем либо не замыкать объ­ем, но, тем не менее, являться односвязной областью. Включает в себя как твердые, так и ли­стовые тела;

- твердое тело: совокупность граней и ребер, замыкающих объем. Содержит внутри объе­ма «материал» (solid);

- листовое тело: тело, состоящее из граней и ребер, которые вместе не создают замкнуто­го объема. Его можно считать телом с «нулевой» толщиной;

- грань: часть поверхности тела, отделенная от других поверхностей замкнутой цепочкой ребер;

- кривые сечения: цепочка кривых, которая, перемещаясь, заметает тело;

- направляющие кривые: цепочка кривых, вдоль которой перемещается задающее сечение.

- элемент: любой из ниже перечисленных методов построения твердого тела и связанный с ним геометрический примитив.

Тело может быть создано двумя основными способами:

1. Вытягиванием эскиза или любых кривых. Во время перемещения кривые “заметают” объ­ем, моделируя твердое тело, позволяя сразу получить сложную геометрию. Редактирование тела осуществляется либо изменением параметров самой функции вытягивания, либо редак­тированием эскиза.



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

Создание элементов модели имеет некоторые общие действия и параметры, такие как:

- выбор объектов (работая с твердым телом, вам часто приходится указывать ту или иную геометрию);

- задание точек (все точки, включая концы и середины кривых (ребер) или позицию на экране, задаются в команде «Конструктор точки»);

- определение вектора (все вектора задаются с использованием команды “Конструктор вектора”);

- тело построения (Элемент модели - результат построения, называется ”Телом построе­ния”. Если в модели присутствует только одно тело, то система принимает его по умолчанию. Если тел больше, чем одно, вы должны указать, с каким телом вы собираетесь работать);

- булевы операции (когда вы создаете геометрические примитивы и элементы построения типа заметания, вы можете выбрать логическую операцию объединения, вычитания или пере­сечения, которая может быть применена к только что построенной геометрии и существую­щим в части твердым телам);

- отказ или отмена действий (в любой момент построения вы можете вернуться на шаг на­зад, выполнив команду “Отмена”).

2. Моделирование тел с помощью примитивов

 

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

- выбрать тип примитива, который вы хотите построить (блок, цилиндр, конус, сфера);

- выбрать метод задания примитива;

- задать параметры примитива в соответствии с выбранным методом построения;

- выбрать булевы опции.

Использование примитивов рассмотрим на примере создания следующей детали:

Создайте новый файл. Вызовите диалог создания бло­ка, воспользовавшись иконкой на панели инструментов “Элемент”.

Установите тип задания “Начало и длины ребер”, задайте точку начала блока в начале системы коор­динат (для задания точки откройте диалог “Конструктор точки” - ). В разделе “Размеры” введите значения: длина (ХС) = 60; ширина (YC) = 50; высота (ZC) = 40, и заверши­те построение (ОК). Вновь вызовите диалог создания блока и постройте блок с разме­рами: длина (ХС) = 60; ширина (YC) = 50; высота (ZC) = 40, в точке со смещением от начала системы координат: приращение ХС = 10; приращение YC = 1 0; приращение ZC = 5, в разделе булевых опций установите значение «Вычитание», при этом первый блок будет выбран автоматически, т.к. это единственное твердое тело в части. Если в рабочей части одно тело, то NX на шаге задания булевых опций выберет его автома­тически, если более одного, то вам будет предложено указать необходимое тело. За­вершите операцию (ОК).

Теперь создайте цилиндр ( , установив тип «Ось, диаметр и высота», с размерами: диаметр = 30; высота = 5. Для задания вектора направле­ния оси цилиндра выберите ось Z. C рабочей системы координат, для задания точки вызовите диалоговое окно конструктора точек, выберите в нем тип “Контекстная точ­ка”, установите значения координат по всем осям, равное нулю, в разделе «Смеще­ние» установите значение «Прямоугольный» и введите приращения: ХС = 45; YC = 35 ZC = 5. Подтвердите (ОК) задание точки, в разделе булевых опций установите значе­ние «Объединение» (NX автоматически выбирает основное тело), завершите опера­цию (ОК). Создайте еще один цилиндр с размерами: диаметр = 1 5; высота = 15, по­местив его в центре верхней грани предыдущего цилиндра с направлением оси -ZC и опцией «Вычитание» в разделе булевых операций.

Теперь нам нужно создать гладкое отверстие диаметром 20 мм на боковой вертикальной стенке детали. Для этого соз­дадим еще один цилиндр с параметрами: диаметр = 20; высота = 15, поместив его не наружной грани стенки с направлением оси ХС, смещением от начала системы коор­динат: ХС = 0; YC = 30; ZC = 20. Для создания прямоугольного выреза на другой стенке построим блок с размерами: длина (ХС) = 20; ширина (YC) = 20; высота (ZC) = 20 установив точку привязки блока в координаты: ХС = 20; YC = 0; ZC = 20 и указав оп­цию «Вычитание» для булевой операции.

Вызовите диалог создания радиуса скругления ребра из панели «Элемент» либо из меню Вставить - Конструктивный элемент - Скругление ребра,установите необходимые значения радиусов для ребер, поочередно добавляя их в деталь.

Затем, используя операции Зеркальное тело и Объединение ,придайте детали требуемый вид.

 

Лекции по построению компилятора на Pascal

Автор неизвестен
Оглавление

1. Введение. 5

ВВЕДЕНИЕ.. 5

ОСНОВА.. 7

2. Синтаксический анализ выражений. 10

НАЧАЛО.. 10

ОДИНОЧНЫЕ ЦИФРЫ... 10

ВЫРАЖЕНИЯ С ДВУМЯ ЦИФРАМИ.. 11

ОБЩАЯ ФОРМА ВЫРАЖЕНИЯ.. 13

ИСПОЛЬЗОВАНИЕ СТЕКА.. 13

УМНОЖЕНИЕ И ДЕЛЕНИЕ.. 14

КРУГЛЫЕ СКОБКИ.. 15

УНАРНЫЙ МИНУС.. 16

СЛОВО ОБ ОПТИМИЗАЦИИ.. 17

3. Снова выражения. 19

ВВЕДЕНИЕ.. 19

ПЕРЕМЕННЫЕ.. 19

ФУНКЦИИ.. 20

ПОДРОБНЕЕ ОБ ОБРАБОТКЕ ОШИБОК.. 21

ПРИСВАИВАНИЕ.. 22

МНОГОСИМВОЛЬНЫЕ ТОКЕНЫ. 23

ПРОБЕЛЫ... 24

4. Интерпретаторы.. 30

ВВЕДЕНИЕ.. 30

ИНТЕРПРЕТАТОР. 31

НЕМНОГО ФИЛОСОФИИ.. 34

5. Управляющие конструкции. 39

ВВЕДЕНИЕ.. 39

ПЛАН.. 39

НЕМНОГО ОСНОВ.. 40

ОПЕРАТОР IF. 42

ОПЕРАТОР WHILE.. 44

ОПЕРАТОР LOOP. 45

REPEAT-UNTIL.. 46

ЦИКЛ FOR.. 47

ОПЕРАТОР DO.. 48

ОПЕРАТОР BREAK.. 49

ЗАКЛЮЧЕНИЕ.. 52

6. Булевы выражения. 57

ВВЕДЕНИЕ.. 57

ПЛАН.. 57

ГРАММАТИКА.. 57

ОПЕРАТОРЫ ОТНОШЕНИЙ.. 58

ИСПРАВЛЕНИЕ ГРАММАТИКИ.. 59

СИНТАКСИЧЕСКИЙ АНАЛИЗАТОР. 61

ОБЪЕДИНЕНИЕ С УПРАВЛЯЮЩИМИ КОНСТРУКЦИЯМИ.. 68

ДОБАВЛЕНИЕ ПРИСВАИВАНИЙ.. 68

7. Лексический анализ. 71

ВВЕДЕНИЕ.. 71

ЛЕКСИЧЕСКИЙ АНАЛИЗ. 71

КОНЕЧНЫЕ АВТОМАТЫ И АЛЬТЕРНАТИВЫ... 73

ЭКСПЕРИМЕНТЫ ПО СКАНИРОВАНИЮ... 73

ПРОБЕЛ.. 74

КОНЕЧНЫЕ АВТОМАТЫ... 75

НОВЫЕ СТРОКИ.. 76

ОПЕРАТОРЫ... 77

СПИСКИ, ЗАПЯТЫЕ И КОМАНДНЫЕ СТРОКИ. 78

СТАНОВИТСЯ ИНТЕРЕСНЕЙ.. 79

ВОЗВРАЩЕНИЕ СИМВОЛА.. 83

РАСПРЕДЕЛЕННЫЕ СКАНЕРЫ ПРОТИВ ЦЕНТРАЛИЗОВАННЫХ.. 85

ОБЪЕДИНЕНИЕ СКАНЕРА И ПАРСЕРА.. 85

Пара комментариев: 91

ЗАКЛЮЧЕНИЕ.. 97

8. Немного философии. 99

ВВЕДЕНИЕ.. 99

ДОРОГА ДОМОЙ.. 99

ПОЧЕМУ ЭТО ТАК ПРОСТО?. 100

ЗДЕСЬ НЕТ НИЧЕГО СЛОЖНОГО! 101

ЗАКЛЮЧЕНИЕ.. 105

9. Вид сверху. 106

ВВЕДЕНИЕ.. 106

ВЕРХНИЙ УРОВЕНЬ. 106

СТРУКТУРА ПАСКАЛЯ.. 107

РАСШИРЕНИЕ.. 108

ОБЪЯВЛЕНИЯ.. 109

СТРУКТУРА СИ.. 111

10. Представление "TINY". 116

ВВЕДЕНИЕ.. 116

ПОДГОТОВКА.. 116

ОБЪЯВЛЕНИЯ.. 119

ОБЪЯВЛЕНИЯ И ИДЕНТИФИКАТОРЫ... 120

ИНИЦИАЛИЗАТОРЫ... 121

ТАБЛИЦА ИДЕНТИФИКАТОРОВ.. 123

ВЫПОЛНИМЫЕ УТВЕРЖДЕНИЯ.. 123

БУЛЕВА ЛОГИКА.. 128

УПРАВЛЯЮЩИЕ СТРУКТУРЫ... 132

ЛЕКСИЧЕСКИЙ АНАЛИЗ. 134

МНОГОСИМВОЛЬНЫЕ ИМЕНА ПЕРЕМЕННЫХ.. 138

СНОВА ОПЕРАТОРЫ ОТНОШЕНИЙ.. 140

ВВОД/ВЫВОД.. 141

ЗАКЛЮЧЕНИЕ.. 143

11. Пересмотр лексического анализа. 159

ВВЕДЕНИЕ.. 159

ПРЕДПОСЫЛКА.. 159

ПРОБЛЕМА.. 160

РЕШЕНИЕ.. 161

ИСПРАВЛЕНИЕ КОМПИЛЯТОРА.. 164

ЗАКЛЮЧЕНИЕ.. 166

TINY VERSION 1.1. 166

12. Разное. 179

ВВЕДЕНИЕ.. 179

ТОЧКИ С ЗАПЯТОЙ.. 179

СИНТАКСИЧЕСКИЙ САХАР. 180

РАБОТА С ТОЧКАМИ С ЗАПЯТОЙ.. 181

КОМПРОМИСС.. 184

КОММЕНТАРИИ.. 184

ОДНОСИМВОЛЬНЫЕ РАЗДЕЛИТЕЛИ.. 184

МНОГОСИМВОЛЬНЫЕ РАЗДЕЛИТЕЛИ.. 186

ОДНОСТОРОННИЕ КОММЕНТАРИИ.. 187

ЗАКЛЮЧЕНИЕ.. 188

13. Процедуры.. 189

ВВЕДЕНИЕ.. 189

ПОСЛЕДНЕЕ ОТКЛОНЕНИЕ.. 189

ОСНОВЫ... 190

ОСНОВА ДЛЯ ЭКСПЕРИМЕНТОВ.. 190

ОБЪЯВЛЕНИЕ ПРОЦЕДУРЫ... 195

ВЫЗОВ ПРОЦЕДУРЫ... 199

ПЕРЕДАЧА ПАРАМЕТРОВ.. 200

СЕМАНТИКА ПАРАМЕТРОВ.. 202

ПЕРЕДАЧА ПО ЗНАЧЕНИЮ... 205

ЧТО НЕПРАВИЛЬНО?. 209

ПЕРЕДАЧА ПО ССЫЛКЕ.. 212

ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ.. 213

ЗАКЛЮЧЕНИЕ.. 216

14. Типы.. 218

ВВЕДЕНИЕ.. 218

ЧТО БУДЕТ ДАЛЬШЕ?. 218

ТАБЛИЦА ИДЕНТИФИКАТОРОВ.. 219

ДОБАВЛЕНИЕ ЗАПИСЕЙ.. 223

РАСПРЕДЕЛЕНИЕ ПАМЯТИ.. 224

ОБЪЯВЛЕНИЕ ТИПОВ.. 225

ПРИСВАИВАНИЯ.. 226

ТРУСЛИВЫЙ ВЫХОД.. 229

БОЛЕЕ ПРИЕМЛЕМОЕ РЕШЕНИЕ.. 230

ЛИТЕРАЛЬНЫЕ АРГУМЕНТЫ... 232

АДДИТИВНЫЕ ВЫРАЖЕНИЯ.. 233

ПОЧЕМУ ТАК МНОГО ПРОЦЕДУР?. 236

МУЛЬТИПЛИКАТИВНЫЕ ВЫРАЖЕНИЯ.. 237

УМНОЖЕНИЕ.. 237

ДЕЛЕНИЕ.. 239

ЗАВЕРШЕНИЕ.. 241

ПРИВОДИТЬ ИЛИ НЕ ПРИВОДИТЬ. 242

ЗАКЛЮЧЕНИЕ.. 244

15. Назад в будущее. 245

ВВЕДЕНИЕ.. 245

НОВОЕ НАЧАЛО, СТАРОЕ НАПРАВЛЕНИЕ.. 245

НАЧИНАЕМ ЗАНОВО?. 247

МОДУЛЬ INPUT. 247

МОДУЛЬ OUTPUT. 249

МОДУЛЬ ERROR.. 250

ЛЕКСИЧЕСКИЙ И СИНТАКСИЧЕСКИЙ АНАЛИЗ. 251

МОДУЛЬ SCANNER.. 253

РЕШЕНИЯ, РЕШЕНИЯ.. 255

СИНТАКСИЧЕСКИЙ АНАЛИЗ. 256

ССЫЛКИ.. 259

16. Конструирование модулей. 260

ВВЕДЕНИЕ.. 260

СОВСЕМ КАК КЛАССИЧЕСКИЙ?. 261

РАСШИРЕНИЕ СИНТАКСИЧЕСКОГО АНАЛИЗАТОРА.. 263

ТЕРМЫ И ВЫРАЖЕНИЯ.. 265

ПРИСВАИВАНИЯ.. 268

БУЛЕВА АЛГЕБРА.. 268



<== предыдущая лекция | следующая лекция ==>
Моделирование тел | ВВЕДЕНИЕ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.008 сек.