Оглавление 1. Автоматизированное проектирование в системе T-FLEX....... 1 1.1. Параметрическое проектирование в T-FLEX...
59 downloads
329 Views
8MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Оглавление 1. Автоматизированное проектирование в системе T-FLEX....... 1 1.1. Параметрическое проектирование в T-FLEX................. 4 1.1.1.Выполнение расчетной части проекта............................. 4 Работа с базами данных в T-FLEX ....................................... 4 Использование переменных в T-FLEX................................. 8 Выражения в T-FLEX ......................................................... 19 Некоторые итоги ................................................................. 23 1.1.2. Разработка параметрической модели............................ 24 Понятия модели и моделирования ..................................... 24 Основные понятия и приемы 3D-моделирования .............. 27 Моделирование деталей...................................................... 35 Построение 3D профилей ................................................... 41 Моделирование сборок ....................................................... 44 Некоторые итоги ................................................................. 46 1.1.3.Формирование интерфейса системы ............................. 46 Контроль исходной информации в редакторе переменных46 Проектирование интерфейса средствами T-FLEX............. 47 1.1.4. Оформление выходной документации ......................... 51 Формирование чертежей..................................................... 52 Формирование спецификаций ............................................ 54 1.1.5. Пример автоматизированного проектирования прессформы............................................................................ 57 1.1.6. Пример автоматизированного проектирования муфты 66 Некоторые итоги ................................................................. 74 1.2. Автоматизированное проектирование в T-FLEX с использованием технологии OLE Automation......................... 75 1.2.1. Общие принципы проектирования с использованием технологии OLE Automation ......................................... 75 1.2.2. Функции ActiveX, доступные в T-FLEX....................... 76 1.2.3. Использование Delphi для автоматизации проектирования в T-FLEX ............................................ 79 Оглавление ................................................................................... 1
1. Автоматизированное проектирование с использованием T-FLEX CAD 3D Система T-FLEX CAD 3D (далее T-FLEX) сочетает в себе мощную функциональность параметрического твердотельного 3D моделирования с полным набором инструментов параметрического двумерного проектирования и черчения. Она обеспечивает уникальную параметрическую технологию для проектирования, объединенную с известным и отлично себя зарекомендовавшим ядром Parasolid фирмы UGS. Помимо широкой функциональности в области трехмерного моделирования T-FLEX содержит в себе полный набор средств оформления конструкторской документации в соответствии с российскими и международными стандартами. T-FLEX разработан для операционных сред Microsoft Windows 9х/ME/NT/2000/XP/Wista и распространяется на нескольких языках по всему миру. Система имеет большой набор дополнительных приложений, которые полностью интегрированы с ней. Такие системы, в частности, позволяют: автоматизировать инженерные расчеты; автоматизировать проектирование технологических процессов изготовления и сборки (T-FLEX Технология); автоматизировать подготовку управляющих программ для станков с ЧПУ (T-FLEX ЧПУ); автоматизировать проектирование штампов и пресс-форм; упорядочить документооборот (T-FLEX DOCs) и многое другое. Приведенные далее примеры были выполнены в учебной версии T-FLEX, которая распространяется бесплатно и может быть использована исключительно в ознакомительных и учебных целях. Отличия учебной версии от коммерческой состоят в следующем: сохраненные в учебной версии модели и чертежи не будут открываться в коммерческой версии; вывод на плоттер (принтер) только в формате А4 с указанием на полях про подготовку в учебной версии (вывести GRS – файл, созданный в учебной версии, на плоттер любого формата можно с помощью университетской версии T-FLEX, поставляемой в учебные заведения в рамках программы поддержки учебных заведений с конца 2001 года); не доступен экспорт в некоторые форматы; отключена подсистема автоматизированной подготовки спецификаций. Дополнительную информацию можно получить на официальном сайте АО “Топ Системы” www.topsystems.ru., либо на
сайте представительства АО “Топ Системы” в Украине – компании “Топ Системы – Украина” www.topsystems.kiev.ua. Рассматривая систему T-FLEX, как базовый инструмент автоматизированного проектирования, можно выделить три уровня автоматизации: начальный уровень, на котором используются базовые возможности системы по созданию моделей ( в том числе 3D) и оформлению конструкторской документации без параметрической связи между элементами; средний уровень, на котором активно используется уникальный механизм параметризации T-FLEX, внутренние функции, поддерживается работа с внутренними и/или внешними базами данных; высокий уровень, на котором в дополнение к предыдущим возможностям, используется технология взаимодействия между приложениями OLE Automation. Начальный уровень автоматизации проектирования на сегодняшний день не представляет особого интереса, хотя T-FLEX и здесь имеет интересные решения, способные облегчить труд конструктора. Поэтому данный уровень автоматизации проектирования здесь рассматриваться не будет. Средний уровень – наиболее развитая и мощная составляющая T-FLEX. В этой системе параметризировать можно почти все, причем эта работа не требует от проектировщика специальных знаний в области программирования, а только лишь правильного в структуре и последовательности формирования связей между элементами. Причем формирование таких связей сделано предельно простым. По простоте использования механизма параметризации можно сравнить T-FLEX и Microsoft Excel, однако, первая, кроме всего прочего, позволяет быстро и эффективно установить связи между рассчитанными значениями и геометрическими элементами модели. Использование даже этого, среднего уровня автоматизации позволяет решать большинство задач. Исключения составляют задачи, при решении которых используются сложные вычислительные алгоритмы, например, циклические и итерационные вычисления, численные методы. Высокий уровень – наиболее перспективная часть дальнейшего развития T-FLEX. Сегодня она находится на этапе становления и постоянного развития. Использование технологии OLE Automation позволяет получать исходные данные из модели, обрабатывать их, используя современные среды объектного программирования,
передавать результаты обработки обратно в модель. Сегодня количество функций, доступных для использования через механизм OLE Automation, является явно недостаточным для решения самых сложных задач, однако, оно постоянно увеличивается и позволяет создавать высокоинтегрированные, высококачественные с точки зрения взаимодействия между программами, приложения. Свое основное внимание мы сосредоточим на использовании возможностей автоматизации на среднем и высоком уровнях.
1.1. Параметрическое проектирование в T-FLEX В параметрическом проектировании не существует жестких правил, определяющих порядок такого проектирования. Имеется возможность многократно возвращаться к пройденным этапам, добавлять что-то новое, исправлять ошибки. Однако рациональнее проводить разработку в такой последовательности: 1) выполнение расчетной части проекта; 2) разработка параметрической модели; 3) формирование интерфейса системы; 4) оформление выходной документации. Такая последовательность действий позволит максимально быстро и с наименьшим количеством ошибок реализовать проект. Рассмотрим более детально содержательную часть каждого этапа, с примером в конце.
1.1.1.Выполнение расчетной части проекта Выполнение расчетной части выполняется в два или один этап, в зависимости от того, имеется необходимость в использовании баз данных или нет. В большинстве проектных задач все-таки следует использовать базу данных, иногда даже несколько. В таком случае удобно сначала подготовить необходимые базы данных, а затем сформировать переменные и произвести необходимые расчеты. Рассмотрим, каким образом в системе T-FLEX осуществляется работа с базами данных. Работа с базами данных в T-FLEX Система T-FLEX имеет средства для создания и работы как с внутренними базами данных, которые хранятся в файле чертежа, так и внешними базами данных, созданными, например, в Microsoft Access. Для разработки относительно простых систем лучше подойдут внутренние базы данных, а при решении более сложных задач (в
первую очередь требующих использования сложных баз данных), скорее всего, придется использовать внешние базы данных либо их комбинацию с внутренними. Напомним, что база данных – это способ упорядоченного хранения данных. База данных представляет собой набор строк (записей). Каждая запись состоит из отдельных колонок (полей). Каждое поле идентифицируется своим именем. При создании баз данных важно правильно определить необходимое их количество и структуру. Особое внимание следует обратить на то, что внутренние базы данных T-FLEX не допускают наличия объединенных ячеек и не позволяют напрямую указывать диапазон возможных значений. В таком случае исходную таблицу преобразовать к виду, в котором объединенные ячейки разделяются на отдельные, а информация в них дублируется. Для задания диапазона следует ввести два поля, в одном из которых будет указано минимальное, а в другом – максимальное значение. Дополнительную сложность представляют таблицы, в которых имеются ячейки с неуказанными значениями. В этом случае их следует заполнить какимлибо, несовпадающим с другими, значением, например нулями, с последующей обработкой такого значения. Создание базы данных поясним на примере передних углов резьбонарезных инструментов1. Исходная таблица имеет следующий вид. Обрабатываемый материал Мягкая сталь Сталь средней твердости Твердая сталь Чугун и бронза Латунь Легкие сплавы Автоматная сталь Легированная сталь Инструментальная сталь Ковкий чугун
1
Метчики 10 – 12 8 – 10 5 0–5 10 16 – 25 10 5 8
Круглые плашки
Круглые гребенки
20 – 25 15 – 20
Тангенциальные гребенки 25 20 10 25
10 – 12 20 25 25
30 25
25 12 20
20 15 20
Справочник технолога-машиностроителя. В 2-х т. Т. 2 / Под ред. А. Г. Косиловой и Р. К. Мещерякова.– 4-е изд., перераб. и доп.– М.: Машиностроение, 1985.– 496 с. (табл. 148, С. 231)
В таком виде она не может быть представлена в реляционной базе данных, поскольку, во-первых, имеет объединенные как по вертикали, так и по горизонтали ячейки, во-вторых, имеет диапазоны значений, которые в представленной записи могут восприниматься только как текст. На первом этапе эту таблицу преобразовать. Преобразованная таблица. Обрабатываемый материал Мягкая сталь Сталь средней твердости Твердая сталь Чугун и бронза Латунь Легкие сплавы Автоматная сталь Легированная сталь Инструментальная сталь Ковкий чугун
Метчики Min 10 8 5 0 10 16 10 10 5 8
Max 12 10 5 5 10 25 10 10 5 8
Круглые плашки Min Max 20 25 15 20 10 12 10 12 20 20 25 25 25 25 25 25 12 12 20 20
Круглые гребенки 25 25 20 10 25 25 25 25 15 20
Тангенциальные гребенки 25 25 20 10 25 30 25 20 15 20
В таком виде таблицу можно переносить во внутреннюю базу данных T-FLEX. Каждая база данных имеет свое имя. Внутри базы данных каждое поле (столбец таблицы) также имеет свое уникальное имя. Каждая запись (строка таблицы) имеет свой номер, который формируется автоматически. Отметим, что имена базам данных и полям необходимо делать предельно краткими, но понятными, поскольку это в последующем сократит записи поиска информации в базе данных. Поля внутренних баз данных могут быть одного из следующих типов: Целые. В таком поле вы можете вводить только целые числа. Вещественные. В таком поле вы можете вводить только вещественные числа. Текстовые. В таком поле вы можете вводить любую текстовую информацию. В нашем случае, очевидно, что поле с обрабатываемым материалом будет текстовым, а все остальные поля – целыми. Присвоим следующие имена: База данных – Gam; Обрабатываемый материал – Mat; Метчики, Min – Mmin;
Метчики, Max – Mmax; Круглые плашки, Min – KPmin; Круглые плашки, Max – KPmax; Круглые гребенки – KG; Тангенциальные гребенки – TG. Для создания базы данных в T-FLEX следует выполнить команду “Параметры / База данных” “Новая”. Далее следует ввести имя базы данных и сформировать поля. При этом лучше сразу определить тип данных поля и максимальную длину данных. На этом этапе будут доступны команды создания новых полей перед текущим полем или после него. В завершение имеется возможность отсортировать записи и установить требуемый порядок полей. Окончательный вид базы данных представлен ниже на рисунке.
Для поиска информации в базе данных Gam нам наверняка понадобится еще одна база данных, в которой будет храниться информация о доступных типах инструментов. Такая база данных будет иметь только одно поле текстового типа. Создадим такую базу данных, присвоив ей имя Tool, а полю – имя Type. Окончательный вид этой базы данных представлен ниже на рисунке. Теперь, имея исходную информацию в базах данных можно переходить к ее использованию для расчетов. Кроме внутренних баз данных T-FLEX имеет возможность получать информацию из внешних баз данных. Используя механизм ссылок можно получить
доступ к данным, подготовленным в системах Microsoft Access (*.mdb), dBase (*.dbf), FoxPro (*.dbf), Paradox (*.db), Microsoft Excel (*.xls), либо записанных в текстовых файлах (*.txt, *.csv).
Система T-FLEX имеет встроенные функции для поиска информации во внутренних и внешних базах данных. Эти функции используются уже на этапе формирования переменных. Использование переменных в T-FLEX Переменные в системе T-FLEX играют ключевую роль в параметризации. Понятие переменной объединяет в себе понятие переменной и константы с именем алгоритмических языков программирования, т. е. переменные могут иметь начальные значения, эти значения могут изменяться в последующем, значения некоторых переменных могут определяться выражениями и т. д. Однако основным отличием и преимуществом переменных в T-FLEX является возможность связать значение переменной с конкретным геометрическим объектом либо объектами (вернее, с некоторыми параметрами таких объектов). В самом общем случае переменная может определять не только геометрический параметр, но и промежуточное, расчетное значение, некую физическую характеристику (например, массу, момент инерции, крутящий момент и т.д.). Структурно переменные в T-FLEX делятся на: внутренние; внешние; глобальные. Внутренние переменные предназначены для параметризации в пределах модели или чертежа и используются для внутренних целей. Внешние переменные образуются из внутренних и служат для организации параметрической связи между сборочным чертежом и чертежами-фрагментами. При нанесении фрагмента требуется задать
значения внешних переменных фрагмента. Внешние переменные являются основным звеном связи системы T-FLEX с другими системами и прикладными программами. Глобальные переменные это поименованные значения текстового или вещественного типов. Глобальные переменные доступны в редакторе переменных через специальные функции для всех открытых в данном сеансе работы документов. Список глобальных переменных и их значений сохраняется автоматически при выходе из системы (в реестре) и восстанавливается при входе. Каждая переменная имеет уникальное имя и значение. Кроме того, переменная имеет комментарий, в котором можно указать, что собственно определяет эта переменная. Переменные бывают двух типов: числовые и текстовые. Тип переменной определяется первым символом ее имени. Имя числовой переменной должно начинаться с буквы, например: D1; Rmax; Sigma_V; Диаметр; Длина, подача. Значение числовой переменной – целое либо действительное число, например: 12; 125; -234; 781.234; 3.834e+6. Имя текстовой переменной должно начинаться со знака $, например: $Tool; $Message; $Материал_Заготовки; $Твердость_НВ. Значение текстовой переменной – строка символов заключенная в кавычки, например: “Резец”; “ Сталь 40Х”; “ Иванов И. И”. В именах переменных допускается использовать как латинские символы, так и символы кириллицы. Учитывая сходство в начертании некоторых символов из различных алфавитов, следует быть внимательным при составлении имен. Обратите внимание также на то, что в T-FLEX различаются прописные и строчные символы, поэтому D1 и d1 – различные переменные. Отметим, что имя переменной не может содержать пробелы. И, естественно, имя переменной должно быть по возможности кратким, говорить о назначении переменной и соответствовать общепринятым в машиностроении правилам (например, диаметры начинаются с символа D или d, радиусы с R или r и т. д.). Базовым средством для создания и редактирования переменной, а также для создания и редактирования ее значения является специализированный редактор переменных T-FLEX. Его вызов осуществляется командой меню "Параметры / Переменные" либо кнопкой на панели инструментов. Новые переменные можно также создавать в
процессе построений и редактирования элементов изображений, однако использование редактора является по многим причинам более предпочтительным. В первую очередь это связано с меньшим количеством ошибок при формировании имен переменных и их значений. Поэтому свое основное внимание мы сосредоточим на создании и использовании переменных именно с помощью встроенного редактора переменных. Свое значение переменная может получить как исходное данное либо в процессе вычисления выражений. В первом случае мы имеем дело непосредственно с исходными данными, значения которых могут быть либо введены вручную, либо выбраны из списка. Во втором случае мы имеем дело с зависимыми переменными, значения которых зависят от исходных данных и не могут быть изменены пользователем. Отметим здесь, что сформировать внешние переменные мы можем только из внутренних исходных переменных. Рассмотрим, каким образом мы можем присвоить переменной исходное значение. В системе T-FLEX существует возможность ввести значение вручную либо выбрать его из списка. Первый способ является простейшим в реализации, но наихудшим в последующем использовании. Он неизменно будет сопряжен с ошибками при эксплуатации программы. Реализация выбора из списка является более трудоемкой, однако последующее использование такого списка практически сводит на нет ошибки эксплуатации программы. Поэтому, там где это возможно, следует использовать ввод исходных данных в виде списков. T-FLEX позволяет создавать и использовать несколько типов списков: список на основе текста либо чисел; список на основе информации в текстовом файле; список на основе внутренней базы данных; список дат. Далее рассмотрим способы создания списков. Создание списков на основе текста либо чисел. Для создания такого списка следует, находясь в редакторе переменных, создать новую переменную. При этом не следует забывать, что тип данных в T-FLEX определяется по первой букве в имени переменной. Далее следует вызвать команду меню “Список / Создать / Текст” либо нажать кнопку на панели инструментов. В появившемся окне редактора списка следует построчно ввести текстовые или числовые значения и закрыть окно, нажав кнопку “Ok”. Таким способом удобно реализовать любую числовую последовательность либо набор строк, тем самым,
предотвратив возможность ввода пользователем некорректных значений. Впрочем, если быть точным, то у пользователя остается возможность вручную ввести значение, которое не входит в список, но как обрабатывать эту ситуацию мы рассмотрим позже в разделе, посвященном формированию интерфейса системы. Ниже представлен фрагмент окна редактора списка значений и результат вызова такого списка.
Создание списков на основе информации в текстовом файле. В том случае, если какая либо информация уже существует в текстовом файле, целесообразно ее использовать в качестве исходных данных. Для этого необходимо сначала несколько преобразовать исходный файл. Эти преобразования касаются приданию ему соответствующей структуры. Во-первых, файлу необходимо присвоить расширение *.lst. Во-вторых, файл должен иметь, по крайней мере, один раздел со списком значений. Имя раздела записывается в отдельной строке и берется в квадратные скобки. Разделов может быть несколько, но для одной переменной можно использовать данные только из одного раздела. Пример структуризации файла исходной информации приведен ниже.
Файл “Test.lst” имеет два раздела: [Материал заготовки] и [Материал инструмента], в каждом из которых имеются списки возможных значений, заключенные в кавычки. Обратите внимание на то, что если указать текстовые значения без кавычек, то при использовании такого списка система будет требовать создать переменную с именем, соответствующим выбранному пункту. И еще один существенный аспект – содержание файла, на основании которого строится список, может быть изменено другой программой, т. е. какой-либо другой программой мы можем формировать разные содержательные части разделов, и их выбор будет возможен при вводе исходных данных в T-FLEX. При этом структуру разделов, которые задействованных во вводе данных изменять нельзя. Имея исходный файл можно переходить к построению списка на его основе. Для этого необходимо в редакторе переменных создать новую переменную, после чего дать команду меню “Список / Создать / Файл”, либо нажав кнопку на панели инструментов. В появившемся окне диалога (см. рис. ниже) следует выбрать раздел, из которого будет формироваться значение переменной. Из одного файла, который содержит несколько разделов, можно создать списки для нескольких переменных. Ниже приведены фрагменты окон создания и использования списков значений на основе текстового файла.
Создание списков на основе внутренней базы данных. Для создания такого списка следует иметь заранее подготовленную и заполненную базу данных. Как создаются базы данных, мы рассмотрели ранее, поэтому будем считать, что одна или несколько баз данных у нас имеется. Отметим сразу, что использование списков на основе внутренних баз данных является чрезвычайно удобным и мощным средством ввода исходных данных и выборки соответствующих значений. Во всех случаях, когда имеется возможность организовать такие базы данных и осуществлять вывод информации из них – это следует делать. Чтобы создать список значений на основе базы данных следует находясь в редакторе переменных T-FLEX выполнить команду “Список / Создать / База данных”, либо нажать кнопку
на панели инструментов.
В появившемся окне диалога необходимо выбрать базу данных, из которой будут выбираться значения. Затем следует определить, что
мы хотим получить из база данных: конкретное значение ячейки базы данных (текстовое или числовое) либо же номер записи, которому соответствует выбранное значение. Чтобы дать однозначный ответ на этот вопрос следует осознать, что текстовые значения в последующих выражениях занимают больше места, и сравнивание двух числовых значений выполняются намного быстрее, чем сравнивание двух текстовых значений. Поэтому в тех случаях, когда текстовое значение можно заменить числовым, например номером соответствующей ему записи, это следует делать. Другое дело, когда значение в базе данных уже является числом. Что делать в этом случае? Брать конкретное значение или номер записи? Ответ на эти вопросы зависит от конкретной базы данных. Если значение в поле базы данных встречается только один раз – можно выбирать его, если же значения повторяются (хотя бы один раз) – следует брать номер записи. В первом случае наше поле базы данных будет являться “управляющим” для остальных полей и по его конкретному значению мы сможем определить значения всех зависимых значений. Во втором случае таковой переменной у нас нет и необходимо определить номер записи, а уже затем выбрать все необходимые значения по этому номеру. Далее необходимо отметить поля, которые будут отображаться при вводе конкретных значений из списка. Чаще всего требуется отображать только то поле, которое является у нас определяющим, но иногда удобно предоставить пользователю более полную информацию для обоснованного выбора значения. Следует отметить, что независимо от того один пункт выбран или все, результат будет возвращаться только один. Выбор материала заготовки из базы данных Gam и выбор типа инструмента из базы данных Tool, создание которых было рассмотрено выше, а также результат выборки соответствующих значений приведены на рисунках ниже.
Далее по найденным позициям можно отыскать значения переднего угла . Для того, чтобы научиться выбирать значения из базы данных, следует разобраться с функциями работы с базами данных. Функции работы с базами данных. Перед описанием функций отбора значений из внутренних баз данных необходимо пояснить, как можно обратиться к конкретному полю базы данных. Синтаксис обращения к полю БД следующий: . Например: Gam.Mmin Эта запись означает, что нужно обратиться к полю Mmin в базе данных Gam. Имеется три функции отбора значений из внутренних БД:
rec – получить номер записи, удовлетворяющей заданному условию; val – получить значение поля из записи с указанным номером; find – получить значение поля из записи, удовлетворяющей заданному условию. Рассмотрим работу функции rec. Формат функции: rec ( условие ), где условие - выражение, принимающее значение истина или ложь. Выражение может содержать в качестве операндов обращения к полям базы данных. Например: rec ( Gam.Mmin > 10 ) Такой вызов функции означает следующее: найти номер записи во внутренней базе данных Gam, для которой значение поля Mmin будет больше 10. Сразу отметим, что функция найдет первую запись, которая будет удовлетворять заданному условию. Если в базе данных не будет найдено ни одной такой записи, то функция возвратит результат “0”. В логических выражениях, определяющих условия отбора значений, могут присутствовать логические выражения, которые будут рассмотрены далее. Рассмотрим функцию val. Формат функции val ( номер_записи, поле_базы_данных ), где номер_записи – любое арифметическое выражение, значением которого является целое число. поле_базы_данных – это обращение к полю. Например: val ( MZ, Gam.Mat ) Этот вызов означает следующее: необходимо отобрать значение из строки с номером MZ (определяется конкретным значением этой переменной в момент вызова функции) из поля Mat базы данных Gam. val( RI, Tool.Type ) Этот вызов означает следующее: необходимо отобрать значение из строки с номером RI из поля Type базы данных Tool. Выбранные таким образом значения могут быть присвоены соответствующим переменным. Рассмотрим функцию find.
Формат функции: find ( поле_базы_данных, условие ) Данная функция – объединение двух предыдущих. Она возвращает значение указанного поля "поле_базы_данных" из записи, удовлетворяющей условию "условие". Если такой записи не существует, то функция выдает сообщение об ошибке “Неверный номер записи”. Выбор функции для использования определяется самим разработчиком, однако следует придерживаться такой рекомендации: если в базе данных имеется “управляющее поле”, т.е. такое поле, по значению которого можно однозначно выбрать остальные значения в базе данных, то удобнее использовать функцию find, если же такого поля нет – обязательно возникнет необходимость определения и дальнейшего анализа номера записи. Проанализируем выборку значений максимального и минимального передних углов для ранее рассмотренной базы данных. Ниже на рисунке представлен результат создания переменных. Рассмотрим его, учитывая, что “естественный” порядок следования переменных в редакторе переменных – снизу-вверх, поэтому анализировать переменные будем в порядке убывания их номеров.
В строках 12 и 11 находится результат создания списков на основе внутренней базы данных (подробно этот этап был рассмотрен выше). Результатом являются номера записей в базах данных, которые присваиваются переменным MZ (материал заготовки) и RI (тип режущего инструмента). Эти переменные и их конкретные значения в дальнейшем будут определяющими при выборке из баз данных. В строках 10 и 9 из баз данных Gam и Tool, соответственно, выбираются текстовые записи – материал заготовки и тип режущего
инструмента, соответствующие значениям переменных MZ и RI. Результат этих переменных для нас является вспомогательным, а сами значения могут понадобиться в чертеже, как справочная информация. При дальнейшем анализе следует учесть следующее обстоятельство. Поскольку T-FLEX не имеет средств поиска одновременно по записям и по полям, то мы используем такой подход: определим максимальный и минимальный передний угол для всех инструментов, причем, если номер записи инструмента в базе данных соответствует номеру, выбранному пользователем (значение переменной RI), то значение угла будем выбирать из соответствующего поля базы данных, в противном случае возвратим нулевой результат. Такие действия реализованы в строках 8-3. На завершающем этапе (строки 21) выберем максимальные значения для углов, отсеяв, таким образом, все нулевые значения. Сейчас лишь отметим, что выбор максимального значения из списка возможных значений может быть легко реализован стандартной функцией T-FLEX – Max, а сами стандартные функции рассмотрим ниже. Выбор значений, исходя их выполнения или невыполнения некоторого условия, нуждается в дополнительных комментариях. В системе T-FLEX возможна реализация такой логической конструкции: Если тогда иначе , которая может быть записана в следующем виде: ? : Таким образом запись, “RI = = 4 ? val(MZ,Gam.TG) : 0” следует читать так: если значение переменной RI равно 4, тогда переменной присвоить значение, являющееся выборкой записи с номером MZ из поля TG базы данных Gam, иначе присвоить значение 0. Познакомившись с возможностью присваивать значения по условию, нам следует более детально рассмотреть формирование логических условий и операций T-FLEX. Логические операции T-FLEX. Являются неотъемлемой частью практически любой параметрической модели и имеют следующий синтаксис. > < &
больше меньше логическое И
>= = 10 && d1 =0) then TFDoc.CreateArc( ArrayOfSegments[i].x1, ArrayOfSegments[i].y1, ArrayOfSegments[i].x2,
ArrayOfSegments[i].y2, ArrayOfSegments[i].radius) else TFDoc.CreateArc( ArrayOfSegments[i].x2, ArrayOfSegments[i].y2, ArrayOfSegments[i].x1, ArrayOfSegments[i].y1, -ArrayOfSegments[i].radius); end; end; {for} {Начинаем формировать сетку конечных элементов. Далее NE – количество узлов; LLL (…) – рекурсивная процедура разбиения треугольника; LD (…) – рекурсивная процедура разбиения сетора. В алгоритме также учитывается четное и нечетное количество узлов в контуре} NE:=high(ArrayOfNode); if odd(NE) then for i:=0 to (NE div 2)-1 do begin LLL(ArrayOfNode[i].x, ArrayOfNode[i].y, ArrayOfNode[i+1].x, ArrayOfNode[i+1].y, ArrayOfNode[NE-i].x, ArrayOfNode[NE-i].y,l,TFDoc); LLL(ArrayOfNode[NE-i].x, ArrayOfNode[NE-i].y, ArrayOfNode[NE-(i+1)].x, ArrayOfNode[NE-(i+1)].y, ArrayOfNode[i+1].x, ArrayOfNode[i+1].y,l,TFDoc); end else for i:=0 to ((NE div 2)-1) do begin LLL(ArrayOfNode[i].x, ArrayOfNode[i].y, ArrayOfNode[i+1].x, ArrayOfNode[i+1].y, ArrayOfNode[NE-i].x, ArrayOfNode[NE-i].y,l,TFDoc); if not(i=((NE div 2)-1)) then LLL(ArrayOfNode[NE-i].x, ArrayOfNode[NE-i].y, ArrayOfNode[NE-(i+1)].x, ArrayOfNode[NE-(i+1)].y, ArrayOfNode[i+1].x, ArrayOfNode[i+1].y,l,TFDoc); end; for i:=0 to high(ArrayOfSegments) do begin if ArrayOfSegments[i].SegmentType = 3
then begin LD(ArrayOfSegments[i].xc, ArrayOfSegments[i].yc, ArrayOfSegments[i].x1, ArrayOfSegments[i].y1, ArrayOfSegments[i].x2, ArrayOfSegments[i].y2, ArrayOfSegments[i].radius,l,TFDoc); end; end; end; except // Обработка исключительной ситуации ShowMessage('Скорее всего не открыт документ'); end; end;
Обратите внимание на то, что последним параметром процедур LLL (…) и LD(…)является указатель на объект TFDoc. Это позволяет в самих процедурах обращаться к этому объекту и строить новые элементы – отрезки. Ниже приведен фрагмент процедуры LLL (…) , в завершающей части которой создаются три новых отрезка. Procedure LLL(x1,y1,x2,y2,x3,y3,L:Double;TFD:Olevariant); . . . begin . . . TFD.CreateLine(x1,y1,x2,y2); TFD.CreateLine(x2,y2,x3,y3); TFD.CreateLine(x3,y3,x1,y1); end;
Интерфейс программы является достаточно простым. Основным исходным данным для нее является базовая длина сетки конечных элементов, основным действием – генерирование сетки конечных элементов. Имеются сведения об авторе и небольшая справочная служба. После корректной генерации сетки конечных элементов, становится доступной кнопка просмотра списка конечных элементов с координатами их узловых точек. При желании можно записать эти координаты в текстовый файл. Ниже представлены фрагменты работы программы. На первом рисунке показаны исходные данные для программы (контур слева) и результат генерирования сетки конечных элементов (справа). На втором рисунке показан результат просмотра списка конечных элементов и окно диалога при записи их в файл.
В завершение хочется отметить следующее, если созданное приложение является очень полезным и часто используется при работе с системой T-FLEX, то можно включить его в состав главного меню T-FLEX. Сделать это достаточно просто. В меню “Настройка” необходимо выбрать пункт “Настройка” и в появившемся окне диалога перейти на закладку “Меню пользователя”. После нажатия на кнопку “Добавить”, следует ввести новое имя пункта меню (поле “Текст пункта меню”), указать путь к программе (поле “Программа”), при необходимости указать стартовый каталог (поле “Стартовый каталог”) и сменить иконку программы
(поле “Изображение иконки”). В результате этих действий в пункте меню “Настройка” станут доступными ваши программы.
Безусловно, возможности автоматизированного проектирования в T-FLEX не исчерпываются только теми направлениями, которые рассмотрены в данной работе. С выходом новой версии системы мы ожидаем получить полноценный доступ к функциям ActiveX, реализующим операции трехмерного проектирования и многое другое.