Библиотеки параметрических чертежей и 3D моделей |
|
Любой чертеж, созданный в системе, может быть фрагментом, то есть чертежом, включенным в другой чертеж. Для удобства работы с чертежами-фрагментами можно организовать их хранение в библиотеках. Такой библиотекой может быть, например, библиотека болтов, библиотека подшипников и т.д.
Вместе с системой T-FLEX поставляется несколько библиотек различных стандартных элементов. Все они являются параметрическими, то есть каждый элемент может быть использован именно в том виде, в каком это необходимо в каждом конкретном случае. Поскольку элементами библиотеки являются обычные чертежи, подготовленные в системе T-FLEX, вы можете создавать любые свои собственные библиотеки.
В этой главе предлагаются рекомендации по созданию библиотек типовых (стандартных) деталей. Безусловно, эти рекомендации не являются догмой, и вы можете использовать какие-то свои подходы и идеи.
Как показывает практика, наиболее распространенными являются чертежи двух типов.
1. Параметрический чертеж с двумя - тремя определяющими параметрами и таблицей значений для остальных параметров чертежа. К этому типу обычно относятся стандартные детали, например, крепеж, подшипники, элементы строительных конструкций, отливки и прокат из металла и многое другое. Для таких чертежей очень удобно иметь и базу данных возможных значений параметров этого чертежа. В результате вместо нескольких чертежей детали различных типоразмеров и исполнений вы имеете один универсальный чертеж этой детали.
2. Второй тип чертежей элементов библиотек - это элементы различных схематических изображений. К ним можно отнести элементы принципиальных кинематических, гидравлических, электрических схем и т.д. Эти элементы также являются стандартными, но их размеры не изменяются в соответствии с таблицей, важно только их правильное расположение на чертеже.
Создание параметрического элемента библиотеки
Процесс создания параметрического элемента библиотеки можно разделить на несколько шагов:
1.Создание баз данных (если необходимо).
2.Создание переменных, в том числе на основе баз данных.
3.Построение параметрического чертежа и/или 3D модели.
4. Создание векторов привязки и ЛСК привязки.
5. Создание 2D и/или 3D коннекторов.
6. Создание диалога параметров фрагмента.
7. Добавление элемента в библиотеку.
Некоторые из этих пунктов могут отсутствовать. Например, может отсутствовать выбор значений из базы данных или 3D модель, 2D или 3D коннекторы.
Рассмотрим каждый шаг на примере. Пусть это будет болт по ГОСТ 7795-70.
Файл примера, описанного в данной главе, можно найти в библиотеке “Примеры для документации” в папке “T-Flex\Примеры 3D 15\Параметризация\Создание библиотек параметрических элементов\Болт ГОСТ 7795-70”.
Параметры этого болта в зависимости от введённых диаметра и длины должны выбираться из базы данных. Болт имеет несколько исполнений, в соответствии с которыми должны меняться чертёж (три вида: спереди, слева и сверху) и 3D модель. Болт будет использоваться в качестве фрагментов в других чертежах.
Создание баз данных
Теперь необходимо создать базу данных значений для всех переменных болта. Вы можете создать как внутреннюю базу данных, так и внешнюю. Предпочтительнее использовать внутреннюю базу данных из-за более высокой скорости получения значений и, соответственно, более быстрой прорисовки чертежа при изменении параметров. Немаловажно также и то, что при работе с внутренней базой, вы избавлены от дополнительного файла, содержащего непосредственно таблицу значений (подробнее о создании и работе с базами смотрите в командах IDatabase и Variables).
В данном примере мы будем использовать внутренние базы данных, из которых будут выбираться значения.
Сначала необходимо решить, в зависимости от какого параметра будут выбираться остальные. В нашем случае один из таких параметров - диаметр резьбы болта. Итак, первый столбец - диаметр болта, а потом идут все остальные (кроме длин). Имена столбцов базы данных (и самой базы данных) необходимо выбирать так, чтобы потом, при создании переменных, вы могли легко вспомнить, за какой параметр отвечает каждый столбец. Но лучше не делать имена столбцов слишком длинными. Логичнее назвать столбцы так, как назван данный параметр в ГОСТе: диаметр резьбы d, размер под ключ S и так далее.
Размер поля базы данных необходимо задавать по максимально возможному значению параметра. Напомним, что размер поля для типов "целое" и "текст" - количество символов при вводе и редактировании значений поля. Для поля "вещественное" первая из двух цифр, разделенных точкой,- также количество символов, вторая - длина дробной части.
Количество символов дробной части, включая точку, должно быть учтено в общей длине этого поля.
В нашем случае необходимо, чтобы введенная длина болта округлялась до ближайшей стандартной длины. Надо учесть, что для каждого диаметра набор длин - свой. Так, например, болт диаметром 6 мм может иметь длину 30 мм, а болт с диаметром 12 мм имеет минимальную длину 45 мм. Кроме этого, в зависимости от того, какая длина болта выбрана, выбираются еще два параметра: l1 и l0. Лучше всего создать отдельную базу данных для длин каждого диаметра. Имена для баз лучше дать l6, l8 и т. д. Буква l означает, что это - база данных длин, а номер – диаметр, для которого она предназначена. После того, как базы данных созданы – переходите к следующему шагу. |
Создание переменных на основе баз данных
На данном шаге нужно создать переменные, которые будут использованы при построении параметрического чертежа и 3D модели.
Имена переменных лучше задавать такие, чтобы было понятно, за что они отвечают.
Сначала создайте те переменные, которые являются определяющими для всех остальных размеров, значения которых задаются при вставке детали. В данном примере это - диаметр, длина и исполнение. Если переменная имеет ряд стандартных значений, то для более удобного и быстрого их ввода лучше задать список значений. Список значений можно создать на основе соответствующего поля в базе данных. Желательно после создания переменной в строке комментария описать назначение переменной, чтобы другой человек, если он будет работать с данным документом, мог легко определить, какие данные необходимо вводить.
Далее требуется создать переменные, содержащие в себе номер той строки базы данных, из которой происходит выбор. Значение переменной будет получено при вызове функции: rec или frec. Описание работы данных функций смотрите в разделе “Функции для внутренних баз данных”. В нашем примере должны быть две такие переменные: одна (переменная n) для выбора значений из базы, содержащей данные, зависящие от диаметра болта, и ещё одна (переменная nl), для выбора значений длины. Сложность в том, что поиск номера строки для второй переменной должен производиться по разным базам данных (в зависимости от диаметра). Кроме того, нужно помнить, что введенное значение длины не всегда верно, так как человек, работающий с деталью, может задать не предусмотренную ГОСТом длину болта. Поэтому значение переменной nl будет определяться выражением: d==6 ? frec(6.l,l) : (d==8 ? frec(l8.l,l) : d==… ), т.е. если переменная d (диаметр) равна 6, номер строки ищется в базе с именем 6, иначе, если переменная d равна 8 - номер строки ищется в базе с именем l8, и так далее по всем базам данных.
Потом создаются остальные переменные. Их значения определяются при вызове функции val на основе значения переменной, в которой хранится номер записи базы данных (это - n и nl). Значение длины болта (ll) будет определяться выражением: d==6 ? val(nl,l6) : (d==8 ? val(l8.l,l) :d==… ). Данное выражение работает так же, как и в случае с переменной nl.
У болта есть несколько исполнений. В зависимости от исполнения должен изменяться чертёж. Этого можно достигнуть, устанавливая, когда это необходимо, уровень определенных частей чертежа ниже тех, которые рисуются. Для этого следует завести специальные переменные (отдельно для каждого исполнения). По умолчанию, отображаются элементы с уровнем от 0 до 127. Если уровень элемента меньше нуля, то он не отображается. Например, переменная isp25, отвечающая за уровень элементов, которые должны быть видны только при втором или пятом исполнении, равна 0, когда исполнение (заданное текстовой переменной $isp) равно «2 - с отверстием под шплинт» или «5 - с отверстием под шплинт и выемкой» и равна -10, в любом другом случае: $isp=="2 - с отверстием под шплинт"||$isp=="5 - с отверстием под шплинт и выемкой"?0:-10.
В T-FLEX CAD существуют специальные функции (WARN и ERROR), предназначенные для того, чтобы при определенных значениях переменных проинформировать пользователя об ошибке и попросить его ввести другое значение. Например, если задана не рекомендуемая длина болта, можно вывести сообщение: «Заданная длина не соответствует ГОСТ». Это осуществляется вызовом функции: WARN(“Заданная длина не соответствует ГОСТ”).
Другой способ - это использовать функцию ERROR. В качестве аргумента этой функции вы можете использовать любое сообщение (текстовую строку), которое сочтете нужным:
Как вы видите, была создана дополнительная переменная "isp_Err", и для нее сформировано выражение, в котором проверяется выполнение условия. Если условие выполняется, то на экране появится сообщение, в противном случае переменная "isp_Err" равна нулю и нигде больше не используется.
При работе с внешней базой данных используются другие функции. Поскольку база данных является внешней, необходимо указать путь к тому месту на диске, где эта база находится. Удобнее в редакторе переменных создать отдельную текстовую переменную, в которой будет храниться этот путь.
При написании пути можно использовать конструкцию "<*>". Это означает, что внешняя база данных хранится там же, где и чертеж, в который вы собираетесь передавать значения из базы данных. Во всех других случаях необходимо явно указывать путь:
Обратите внимание, что в качестве разделителя мы использовали символ "/" (слэш). Как правило для задания пути чаще используется символ "\" (обратный слэш). Но, так как в нашем случае путь задается как текстовая константа в кавычках, нам пришлось бы использовать двойной слэш ("D:\\TCAD\\base"), потому что одиночный обратный слэш является специальным символом в текстовой константе. Поэтому, если вы хотите задавать путь c помощью обратного слэша, необходимо, чтобы он был двойным. Результат при этом будет тем же, что и с одиночным прямым слэшем.
Для получения значений из внешней базы данных предназначены функции mdb, dbf или dbfwin (описание синтаксиса смотри в разделе "Функции для работы с внешними базами данных"). Функция dbfwin() используется для правильного чтения русскоязычных текстов, т.к. выполняет их перекодировку.
После того, как необходимые переменные созданы, можно приступать к построению чертежа и 3D модели.
Построение параметрического чертежа и 3D модели
Используя известные вам команды построения прямых и нанесения изображения, создайте чертеж. Очень часто не требуется создавать подробное изображение болта (какие-то дополнительные отверстия, проточки), так как чертеж будет использоваться только как фрагмент сборочного чертежа, и эти элементы допускается не прорисовывать. Создайте в команде Hatch контур для удаления невидимых линий.
Часто при использовании элемента библиотеки в качестве фрагмента есть необходимость вставлять лишь часть чертежа. Для этого лучше сразу создать несколько новых слоев. Имена слоев желательно задать такими, чтобы было понятно, какая часть чертежа принадлежит какому слою. В нашем примере необходимо создать три новых слоя. Названия слоям дадим соответствующие их назначению: вид спереди, вид слева и вид сверху. В процессе создания все элементы можно размещать на любом слое, например, на слое “Основной”, а когда чертёж готов - просто выделить необходимую часть рамкой и изменить слой данных элементов на необходимый.
Некоторые элементы нашего болта (например, отверстие под шплинт) могут рисоваться, а могут не рисоваться, в зависимости от исполнения. На предыдущем шаге мы создали для этого специальные переменные. Переменная isp25 равна 0, если исполнение равно «2 - с отверстием под шплинт» или «5 - с отверстием под шплинт и выемкой» и равна -10, при любом другом исполнении. Если элемент должен быть виден только при исполнении 2 или 5, надо чтобы его уровень был задан переменной isp25.
Для того, чтобы на сборочном чертеже болт корректно отображался в болтовых соединениях, добавим на каждый вид чертежа невидимые штриховки с включенной опцией подавления невидимых линий.
После построения 2D чертежа можно создавать 3D модель. Возможно, что Ваша 3D модель должна будет меняться в зависимости от какого-то параметра. Меняться могут не только размеры модели. У модели могут появляться или исчезать некоторые части. В нашем примере такая часть - отверстие под шплинт. Легче всего это сделать, подавляя определенную операцию. При этом можно использовать те же переменные, что и при задании уровня этих частей в чертеже. Как поступить в нашем случае? Отверстие под шплинт сделано так: сначала было сделано вращение, в результате которого был получен цилиндр, а затем была проведена булева операция (вычитание из основной части болта этого цилиндра). Если в свойствах операции «Вращение», в поле «Подавить» поставить isp25, то когда переменная будет отлична от нуля (то есть, когда исполнение не будет равняться 2), операция вращения будет подавлена (не будет проведена). Чтобы программа не считала отсутствие одного из операндов булевой операции ошибкой, необходимо в параметрах булевой операции установить флаг «Допускается отсутствие одного из операндов».
На получившееся тело болта следует нанести резьбу. Для этого используем команду “3AT: Создать резьбу”.
Чертёж и 3D модель будущего библиотечного элемента готовы. Далее создадим векторы привязки и специальную систему координат для привязки создаваемого доку-мента в сборочной модели. Они будут использоваться при вставке данного документа как фрагмента в сборку.
Создание векторов привязки и системы координат для привязки фрагмента в сборке
В нашем случае вектор привязки будет использоваться, когда библиотечный элемент будет вставляться как 2D фрагмент в сборочный чертёж. Для использования его в качестве 3D фрагмента нужно создать специальную локальную систему координат (3D аналог вектора привязки), которая будет использоваться для привязки фрагмента в сборочной 3D модели.
Создадим на нашем чертеже болта несколько векторов привязки, каждый для вставки определенного слоя.
В свойствах созданных векторов указано «Рисовать только помеченные» и помечен тот слой, который необходимо показать при вставке. Для наглядности имена векторов совпадают с именем показываемого слоя.
На 3D модели болта создадим ЛСК для привязки 3D фрагмента.
Положение векторов привязки и точки начала системы координат определяется основной поверхностью (поверхностью, которой болт присоединяется к другим деталям). Для болта это поверхность основания головки. Желательно, чтобы ось Х была направлена по оси болта - это позволит сразу правильно позиционировать фрагмент в сборке при привязке его к отверстиям или круговым рёбрам.
При вставке фрагмента в левой части появляющегося окна показано содержание той папки, из которой производиться вставка. Если установлен флаг «Показывать иконки», рядом с названиями присутствующих файлов рисуется иконка чертежа. Желательно создавать иконку для чертежа, чтобы было удобнее осуществлять выбор при вставке.
Создать иконку можно с помощью команды “Сервис| Специальные данные|Иконка”.
После этого можно переходить к следующему шагу.
Создание коннекторов
В сборочных чертежах к нашему библиотечному элементу болта будут привязываться другие фрагменты, например, фрагмент-гайка. Создадим условия для быстрого “подключения” других фрагментов: добавим к созданным чертежу и 3D модели коннекторы, а также назначим внешним переменным болта значения коннектора (для быстрого задания значений переменных фрагмента при вставке его в сборку).
Для чертежа создадим четыре 2D коннектора – на двух видах спереди (обычном и упрощённом), и на двух видах сверху. Для создания коннектора используется команда “FV: Построить вектор привязки”.
Для всех 2D коннекторов зададим именованное значение “DiameterOuterMetricThread”. Данное значение будет передавать в подключаемый фрагмент (гайку) значение диаметра болта. В качестве выражения для значения всех коннекторов указываем переменную “d”.
Обратите внимание, что для полноценного использования коннекторов необходимо при создании фрагмента гайки указать в свойствах переменной, отвечающей за диаметр гайки, значение коннектора с именем “DiameterOuterMetricThread”.
Для созданных коннекторов укажем в качестве ассоциированных элементов линии изображения на соответствующих видах болта – это упростит привязку к данному коннектору.
Также для 2D коннекторов необходимо указать «правила вставки». При привязке гайки к коннектору болта обычно требуется задать дополнительное перемещение гайки вдоль оси болта. Поэтому в правилах вставки коннекторов необходимо задать перемещения вдоль оси X коннектора.
По такому же принципу на 3D модели создадим 3D коннектор. Для 3D коннектора зададим два именованных значения: “DiameterOuter-MetricThread” (диаметр болта) и “ThreadPitchMetric” (шаг резьбы болта).
Создав коннекторы, мы подготовили базу для удобной привязки к нашему фрагменту других фрагментов в сборке. Далее возвратимся в редактор переменных нашей модели и назначим для переменной “d” следующие значения коннектора: “DiameterInnerMetric”, "DiameterInnerMetricThread". Именно такое именованное значение задано в коннекторах у фрагментов, входящих в библиотеку отверстий. В результате, когда фрагмент болта будет вставляться в сборку с привязкой к коннектору отверстия, актуальный диаметр болта будет назначаться автоматически.
Создание диалога
На этом шаге создается форма диалога, которая используется во время вставки данного чертежа как фрагмента. При вставке чертежа (модели), перед пользователем будет появляться окно, содержащее в себе стандартные элементы Windows (поля для ввода, выпадающие списки и т. д.), с помощью которых можно легко и быстро задать параметры вставляемого фрагмента.
Создать такой диалог достаточно просто. Сначала нужно создать новую страницу, на которой будут располагаться элементы управления. Для этого зайдите в команду “Чертеж|Элемент управления” и нажмите в автоменю опцию («Создать страницу для элементов управления»).
Часть элементов управления («статический текст», «группа») не связана с переменными. При создании таких элементов вы указываете место, где они располагаются, а потом вводите их название. Такие элементы могут служить для более понятного оформления диалога, пояснительных надписей.
Другая часть элементов связана с переменными. При их создании, кроме указания места их расположения, вы должны указать ту переменную, с которой связан элемент. Для непосредственного ввода параметров можно использовать элементы «редактор» и «комбинированный список». «Комбинированный список» используется, если у переменной есть список значений. В нашем примере все вводимые нами переменные имеют списки значений, поэтому для них использовался «комбинированный список».
Некоторые переменные могут иметь только два заранее определенных значения. Для работы с ними удобно использовать элемент «Переключатель Да/Нет». При создании этого элемента вы задаёте значение переменной, в случае если элемент управления выключен и если он включен.
При задании текста, отображаемого на элементах управления, можно использовать переменные. Это позволит надписям в диалоге меняться в зависимости от выбираемых параметров болта. Например, в диалоге нашего болта текст одного из элементов управления типа “Статический текст” задан следующим образом: “Болт {$ispsp}М{dd}{$polesp}%%042{ll}{$klprsp}{$mmat}{$Pocrnom} ГОСТ 7795-70”.
Далее измените размер страницы (это удобно сделать с помощью команды «Настройка | Размер страницы») так, чтобы ее размер равнялся размеру диалога.
После этого войдите в режим редактирования и задайте порядок элементов управления. Порядок элементов управления влияет на прорисовку элементов в окне и на порядок переключения между элементами при использовании клавиши <Tab>. Лучше всегда устанавливать на первые места статический текст, а затем элементы управления, связанные с переменными, в той последовательности, в которой необходимо переключение между ними.
Аналогично создадим вторую страницу диалога параметров фрагмента, которая будет содержать дополнительные параметры болта.
Добавление элемента в библиотеку
Последнее, что необходимо сделать - это добавить созданный вами элемент в библиотеку, если требуется, создав новую.
Чтобы добавить элемент в уже существующую библиотеку, скопируйте созданный элемент в папку на диске, где лежат болты, уже присутствующие в библиотеке. Тогда при следующем запуске программы элемент автоматически появится в библиотеке. Можно создать и новую библиотеку. Здесь важно все сделать правильно. Что имеется в виду? Например, вам понадобится перенести библиотеку на другой компьютер, а имя диска будет D:. Тогда если при добавлении элемента в библиотеку был указан полный путь (“C:\…”), программа не сможет найти файл, и вам не удастся вставить фрагмент, используя библиотеку. Чтобы этого не случилось, при добавлении элемента в библиотеку необходимо задавать не полный, а относительный путь. То есть путь будет задан относительно положения файла конфигурации, который определяет состав библиотек. При этом созданный вами элемент должен находиться «ниже», чем файл конфигурации.
Пусть для нашего созданного болта мы хотим создать новую библиотеку. Директория, в которой лежит чертёж, будет «C:\Библиотеки\Болты\Болты новые», а файл конфигурации будет лежать в директории «C:\Библиотеки». При создании библиотеки нужно указать не полный путь, а путь относительно файла конфигурации: «Болты\Болты новые».
Теперь в чертёж надо ввести данные, необходимые для работы механизма создания спецификаций в T-FLEX. В окне структуры изделия нужно выбрать раздел, в котором будет указываться изделие. Для болта это - «Стандартные изделия», наименование, материал, массу и другие параметры. Так как нужно, чтобы наименование болта изменялось в зависимости от его параметров, то при задании наименования воспользуемся переменными. Наименование болта будет: Болт{isp}М{d}*{ll} ГОСТ 7795-70. При формировании спецификации вместо {isp}, {d} и {ll} будут подставляться значения соответствующих переменных. Точно так же можно указать массу и материал.
Параметрический чертеж болта можно с помощью команды FRagment включить в любой чертеж.
Существует еще один способ, немного более сложный в создании, но полностью исключающий при использовании ваших чертежей любые неожиданности типа "перекошенных" болтов. Это способ, при котором вы создаете базу данных и формируете условия обращения к ней таким образом, что при любом введенном определяющем параметре чертеж всегда прорисовывался бы в соответствии с ближайшим стандартным значением. Для случаев, описанных выше за такой параметр отвечала переменная "d". Эта же переменная отвечала в чертеже за диаметр резьбы болта. В дальнейшем изложении переменная "d" перестает быть внешней и служить для получения значения определяющего параметра.
Ее значение необходимо получать из базы данных округленным до ближайшего стандартного, и только потом передавать в чертеж.
Для этого еще на этапе создания заголовка вашей базы данных для параметра "d" необходимо создать не одно поле "d_B", а три поля - нижнюю границу для округления "dmin_B", непосредственно поле значений "d_B" и верхнюю границу "dmax_B". Учтите, что даже если тип поля "d_B" - "целое", то для полей "dmin_B" и "dmax_B" тип поля будет - "вещественное". Значения, хранящиеся в этих полях, являются ни чем иным, как средним арифметическим между предыдущим и последующим значениями "d_B".
Создадим в редакторе переменных еще одну, внешнюю переменную "d0", отвечающую за диаметр резьбы. Именно ее значение вы (либо кто-то другой, кто будет пользоваться вашими библиотеками) будете задавать при нанесении на сборочный чертеж фрагмента болта.
Значение переменной "d0" вы должны использовать при формировании условия для функции rec, изменится и само условие отбора значений из базы данных:
Это означает: в переменную "n" записать номер записи из базы данных "base", для которой значение "d0" больше "dmin_B" из базы данных "base" и меньше либо равно значению "dmax_B" из базы данных "base". В результате, какое бы значение "d0" вы ни задали, оно всегда попадает в диапазон "dmin_B" - "dmax_B". Значение переменной "d", отвечающей в чертеже за диаметр резьбы, читается из поля "d_B" таблицы (из стандартного ряда) в соответствии с вашим условием, то есть округляется до ближайшего стандартного.
Именно это значение будет использовано в чертеже.
Например, при заданном значении диаметра резьбы, равном 27, болт на чертеже прорисуется с ближайшим стандартным значением, равным 24. Все остальные параметры болта считаются из базы данных в соответствии с этим значением.
Обратите внимание на первую и последнюю строки таблицы:
При вводе любого значения диаметра болта, которое меньше первого стандартного, но больше нуля, болт прорисуется с диаметром 5. При вводе любого диаметра, большего чем максимальный стандартный, болт прорисуется с диаметром 48. Верхний предел для вводимых значений диаметров 999,9 предполагается достаточным (мало вероятно, что кто-либо захочет использовать болт диаметром в 1м).
Все вышеизложенное верно и при работе с внешней базой данных. Также рекомендуется создать три поля для определяющего параметра"d", создать дополнительную внешнюю переменную "d0", и с учетом этого сформировать условие отбора значений из внешней базы данных:
Почему в качестве примера интересен именно болт? У этого элемента параметром, определяющим исполнение и размеры, является не только диаметр резьбы (как, например, у гайки), но и длина стержня.
Вернемся к стандарту: после таблицы значений параметров в зависимости от диаметра резьбы следует таблица длин болтов, изменяющихся в соответствии с изменением диаметра и приблизительной длины стержня болта. Примерно также удобно организовать хранение этих данных в вашем чертеже, то есть создать отдельную базу данных для изменения длин в зависимости от диаметра болта.
Принцип создания такой базы аналогичен предыдущему.
Для каждого диаметра болта есть свой набор возможных длин. При вводе произвольной длины она округляется до ближайшей стандартной. В зависимости от этого выбирается длина резьбовой части болта. Обратите внимание, что для значений диаметров резьбы болта создано всего одно поле "d_B", в котором хранятся стандартные значения. На этом этапе работы с базами данных уже не нужно округлять вводимые значения диаметра резьбы болта. Это уже сделано ранее, а в формировании условия будет использоваться переменная "d" хранящая уже округленное значение.
Для передачи значений из базы данных"l_bs" в переменные чертежа "l" и "lr", отвечающие за общую длину болта и длину резьбовой части, служат те же функции rec и val. Аналогично переменной "d0", отвечающей за вводимые значения диаметра резьбы, для ввода произвольных значений длины создана переменная "l0".
При работе с внешней базой данных используется функция dbf.
Если база данных получается большой, а в нашем случае она состоит более чем из 300 записей, то работать с такой базой данных в Редакторе баз данных не очень удобно.
Только для случая работы с внутренней базой данных мы рекомендуем создать несколько небольших баз данных, то есть разбить большую таблицу на части таким образом, чтобы для каждого значения диаметра резьбы существовала своя внутренняя база длин:
Имена базам данных можно давать произвольно. В нашем случае - "l_b5", "l_b6",... "l_b48" (l_b - база данных для длин, число рядом соответствует диаметру "d"). В таком варианте легче запомнить, какие значения хранятся в какой базе данных.
Аналогично базе данных "base", для определяющего параметра "l" создано не одно, а 3 поля - "lmin_B", "l_B", "lmax_B". Идея та же, что и в случае с "d" (диаметром резьбы): при любом введенном значении длины, болт прорисуется со стандартной длиной. Не забудьте, что для получения значения длины требуется создать внешнюю переменную "l0", а непосредственно в чертеже за параметр длины отвечает переменная "l", значение которой уточняется в базе данных "l_b" с соответствующим номером.
Как передавать значения из таблицы в чертеж, вам уже известно. Но поскольку теперь вы имеете несколько таблиц (в нашем случае 13 - "l_b5", "l_b6", "l_b8" ... "l_b48"), то для каждой из них надо создать свою переменную для хранения номера записи,соответствующей определенному условию.
В условии участвуют сразу две определяющих переменных - "d" и "l0".
Обратите внимание, что значение переменой "d" уже округлено до стандартного ряда. Для "l0" происходит проверка на попадание в диапазон "lmin" - "lmax", аналогичная проверке "d0" для диаметра резьбы.
В результате пересчёта вы получите номер записи, соответствующей условиям, для каждой из баз данных.
Если условие не выполняется, и такой записи нет, то значение "n_n" равно 0. Именно это свойство используется при получении значения из таблиц, так как все три условия выполняются одновременно только для одной базы данных из всех.
Переменные"L4", "L5", "L6" ... "L48" - промежуточные переменные. В каждый момент времени ненулевое значение имеет только одна из них. Поскольку вся база разбита на части, то для каждого из них создана своя переменная для считывания в нее значения длины. Если условие отбора выполняется для одной базы, например, "l_b8", то в переменную "n8" передается номер строки в базе"l_b8", а в переменную "L8" считывается стандартное значение длины стержня. Если условие не выполняется для этой базы, то "n8" равно 0, и переменная "L8" принимает значение 0.
Аналогично можно организовать получение значений для длины резьбовой части болта.
Осталось полученное значение длины передать в переменную "l" ("lr" для длины резьбы). Воспользуемся функцией max.
Поскольку для каждого вводимого пользователем значения "d0" и "l0" существует только одно ненулевое значение "L_n"и "lr_n", полученное из одной из баз данных, а остальные равны 0, то максимальным всегда будет это единственное значение. Именно с этим значением параметра болт будет прорисован на чертеже.
Этот болт всегда будет стандартным, какие бы значения диаметров и длин ни задал пользователь, и все ваши усилия по столь трудоемкому созданию модели будут вознаграждены простым и удобным использованием чертежа сколь угодно много раз.
Элементы схем
К этим элементам можно отнести такие, для которых важны не столько размеры, сколько правильное расположение в нужном месте на чертеже. Например, элементы электрических, кинематических и других схем, условные изображения элементов трубопроводов. Эти элементы могут иметь1, 2 или 3 точки привязки при нанесении их на другой чертеж. Теоретически возможно использование и большего количества точек привязки, но в реальной практике эти случаи не часты.
●Элементы с одной точкой привязки
●Элементы с двумя точками привязки
●Элементы с тремя точками привязки
Смотри: Содержание , Редактор переменных , Специфика работы со сборочными чертежами , Функции работы с переменными , Fragment