CBHELP1 (805524), страница 2
Текст из файла (страница 2)
УЗЕЛ представляет с собой точку с 3 координатами (у плоских моделей третья координата равна 0). Расположение координатных осей может быть любым, но одинаковым для всех узлов модели. В осесимметричных моделях первая координата направлена по радиусу, а вторая является осью симметрии.
ОСНОВНЫЕ УЗЛЫ размещаются на линиях и являются узлами КЭ модели. ВСПОМОГАТЕЛЬНЫЕ УЗЛЫ служат для определения координат основных узлов. В число узлов на линиях можно включать, кроме тех, для которых уже заданы координаты, также узлы с последующими номерами (с неизвестными пока координатами), при условии, что эти координаты будут определены в процессе составления модели к моменту их использования.
Узлы нумеруются в произвольном порядке, начиная с №1. Все узлы с координатами должны идти подряд без пропусков в начале списка, а узлы с неизвестными координатами, также без пропусков, сразу за ними. При составлении модели происходит добавление узлов в конец списка. Присвоенные узлам номера в ходе составления модели не изменяются, за исключением узлов из конца списка, которым после вычеркивания вспомогательных узлов присваиваются их номера.
Координаты узлов могут быть заданы с помощью смещения (размера) по отношению к одному из ранее введенных узлов. Размеры задаются отдельно по каждой координате с указанием номера базового узла, имени размера (до 4 символов в кавычках) и списка номеров вводимых узлов. Затем для каждого имени задается исходное значение размера и (не обязательно) пределы его возможного изменения. Если пределы заданы, то этот размер появляется на изображении модели и может быть изменен при редактировании модели в графическом режиме на второй стадии ее построения. Такая форма ввода облегчает параметризацию модели (обеспечивает изменение координат нескольких узлов при изменении одного размера).
Размеры могут быть также введены от специального узла №0 (который не требуется вводить) с нулевыми координатами (эти размеры равны координатам вводимых узлов). Предусмотрен также нулевой размер с именем 0 (без кавычек).
После введения узлов и линий завершается первый подэтап построения модели – «каркас» , и возможна ее визуализация в виде каркасной ("проволочной") основы.
Дальнейший процесс построения модели происходит автоматически и заключается в разбиении специальных блоков на сложные, сложных - на простые. В процессе этого разбиения в списки добавляются новые блоки, поверхности, линии и узлы. В составленной модели все блоки простые. Дополнительное уменьшение числа вводимых данных достигается за счет вспомогательных операций – ввода эллипса, дробления и сгущения.
ЭЛЛИПС - позволяет уменьшить число вводимых координат узлов. Координаты промежуточных узлов вычисляются в программе по уравнению эллипса. Для ввода дуги эллипса (окружности) необходимо перечислить номера 5 узлов: 3 вспомогательных (в центре и на концах большой и малой полуосей) и 2 основных (на концах дуги). Вместо вспомогательных можно повторно использовать основные узлы. Узлы дуги эллипса должны оба лежать на одной из линий.
ДРОБЛЕНИЕ - имеет то же назначение. Координаты вычисляются по уравнению квадратной параболы. Дробления затем видны на изображении модели и могут быть изменены при ее редактировании на второй стадии построения модели.
После построения каркаса на ребра добавляются узлы с помощью эллипсов и дроблений. В результате некоторые ребра приобретают криволинейную форму. На этом завершается второй подэтап – «кривые» , результаты которого можно наблюдать визуально. На ребрах появляются новые узлы, в результате уточняется форма кривых линий.
Третий подэтап – «блоки» – завершается после разбиении всех блоков элементы. На визуальном изображении появляется заливка элементов, показывающая, какие части модели заполнены материалом. В объемной модели действуют удаление скрытых линий и освещение модели для демонстрации особенностей ее формы.
Далее на основе полученной сетки, предназначенной для расчета НДС, строится сетка для задач тепломассопереноса. Это четвертый подэтап и его результаты также можно проверить визуально.
Имеется возможность построения объемной модели из плоской путем разворачивания (движения) вдоль прямой или окружности. Для этого предназначен элемент данных под именем СЕКЦИИ, указывающий сколько слоев и какого размера нужно создать. Если исходная модель помечена как плоская, то информация о секциях трактуется как линейные размеры по третьей координате в мм, а если модель была осесимметричная – как угловые размеры в градусах.
СГУЩЕНИЕ - позволяет на основе составленной модели получить модель с большим количеством блоков путем их дополнительного разбиения вблизи указанных узлов, линий или поверхностей. Для каждого сгущения необходимо указать внутренний радиус (радиус отверстия, создаваемого на месте прежнего узла или линии); радиус первого яруса концентрической сетки элементов и прогрессию увеличения радиусов следующих ярусов. Ярусов столько, сколько помещается в исходных блоках, которым принадлежали узел или линия сгущения. По умолчанию внутренний радиус 0, минимальный очень большой, а прогрессия со знаменателем 2.
Встроенный в программу текстовый редактор позволяет после каждого этапа просмотреть отчет о ходе геометрического моделирования и параметры построенной модели, а также редактировать файл исходных данных.
Итоговая информация о модели геометрии носит традиционный для МКЭ вид. Ее основу составляют координаты всех узлов и список номеров узлов для каждого элемента (топология). Это позволяет импортировать модели, построенные вне комплекса и экспортировать построенные в комплексе, то есть взаимодействовать с другими КЭ комплексами.
3. Некоторые элементы языка ввода данных, используемого в программе “Сварка”
В программе “Сварка” используется специальный язык для ввода исходных данных. Массивы данных в файле могут быть в произвольном порядке.
+ в начале строки означает, что это начало нового массива данных. Далее идет номер и, после пробела – имя массива. Все эти части образуют ключ, по которому программа отыскивает данные, и при ошибке в этом ключе данные не будут введены. Любой символ, кроме пробела, перед знаком + в начале ключа превращает все строки вводимого массива в комментарии. При наличии в файле данных нескольких одинаковых ключей, будет найден первый из них от начала файла, остальные игнорируются. Данные массива начинаются после символа = и заканчиваются символами // (два слэша). Если массив двумерный (матрица), то / является разделителем ее строк. Разделителями между элементами вводимого массива являются также один или несколько пробелов. Это позволяет вводить данные в свободном формате, располагая данные массива на одной или нескольких строках текстового файла и использовать отступы.
Из каждой строки текстового файла считываются только первые 80 символов, поэтому не стоит применять слишком длинные строки.
Для записи десятичных числовых данных (элементов массива) используются цифры и десятичная точка. Допускается запись в экспоненциальной форме, в этом случае после мантиссы следует латинская буква E и за ней порядок числа. В двух местах: перед числом (без пробела) и после E может стоять знак – (знак + не ставится, а подразумевается при отсутствии -). Если число действительное (не целое, то есть не номер), в нем обязательно должна быть 1 десятичная точка (даже при отсутствии дробной части). Напротив, целое число (номер) может содержать только цифры и знак -. Пробелов и других посторонних символов в пределах числа быть не должно. В некоторых массивах предусмотрено чередование целых, действительных и других элементов.
Для ввода текста необходимо его заключить в апострофы (‘). В тексте допустимы все символы, если нужен внутри текста апостроф, то нужно записывать 2 апострофа подряд. Текст хранится в виде массива 4-байтовых чисел, по 4 символа в каждом числе. Если общее число символов не кратно 4, то в конце программа добавляет пробелы.
Есть еще логические константы T (истина) и F (ложь).
При вводе большого количества одинаковых чисел предусмотрен оператор повторения. Повторяемое число заключается в скобки, а перед скобками (без пробела) ставится число повторений (целое), например вместо -1.5 -1.5 -1.5 можно записать 3(-1.5) . Если перед скобками нет числа повторений, значит весь массив до конца должен быть заполнен одинаковыми значениями, равными указанному в скобках.
Для регулярной последовательности чисел предусмотрены арифметическая и геометрическая прогрессии. Знак арифметической прогрессии +, а геометрической *. Вместо последовательности 5.1 5.3 5.5 5.7 можно записать 5.1 3(+0.2) ; вместо 2.5 5. 10. 20. можно записать 2.5 3(*2.) .
Комментарии можно записывать после конца любого массива. Можно вставлять комментарии и в массив, ограничивая их восклицательными знаками. Дальнейшие объяснения правил языка даны в комментариях к примерам файлов исходных данных.
Большую часть массивов вводить необязательно. Если массив отсутствует в файле, программа принимает предусмотренные в ней значения по умолчанию.
4. Пример ввода геометрических данных для модели с комментариями
Файл данных о геометрии объекта имеет имя GEOM.IN и находится в папке IN. Папка IN должна находиться в одной папке с файлом CBAPKA.EXE. Файлы, расположенные в других папках, программа не читает.
+0 СХЕМА = 4 // вид расчетной схемы (по умолчанию 2).
Имеется пять видов схем: 1 - объемная, 2 – плоская деформация, 3 – плоское напряженное состояние, 4 – осесимметричная, 5 – обобщённая плоская деформация. Все схемы, кроме схемы 1, являются 2-мерными.
+0 ПО X РАЗМЕРЫ = 0 'a1' 1 2/
0 '-a1' 5 6/
0 0 13 12 11/
1 'a2' 3 8 9/
3 ':a2' 4 7 10//
На этих 5 строчках заданы координаты по одной оси (Х) для 13 узлов. Для схемы 4 (осесимметричной) ось Х направлена по радиусу от оси симметрии. Вводимый двумерный массив состоит из 5 строк (размеров), каждая из которых в данном случае размещена на отдельной строчке файла. Строки массива разделены знаками / . Координаты узлов заданы с помощью смещения (размера) по отношению к одному из ранее введенных узлов. Размеры задаются отдельно по каждой координате, в каждой строке массива один размер. Размер включает номер базового узла, затем идет имя размера в апострофах (до 4 символов) и список номеров вводимых узлов. Например, в четвертой строке массива размер задан от базового узла 1 до вводимых узлов 3, 8 и 9 (эти узлы имеют одинаковые координаты Х). Имя размера а2, числовые значения размеров для каждого имени задаются отдельно. Узел может быть использован в качестве базового только после того, как он был введен в одной из предыдущих строк массива (узел 1 был введен в первой строке). Имеется специальный узел 0, все координаты которого равны 0. Его не нужно вводить, он может быть сразу использован в качестве базового. В первой строке массива от узла 0 задан размер а1 до узлов 1 и 2. Имеется также нулевой размер с именем 0 (без апострофов). Он использован в третьей строке, из которой следует, что координаты Х для узлов 13, 12 и 11 равны 0. Запись ‘-a1’ во второй строке означает, что размер а1 до узлов 5 и 6 отложен в отрицательном направлении. ‘:a2’ в последней строке значит, что от узла 3 отложена до узлов 4, 7 и 10 половина размера а2. Если используются операторы – и : в имени размера, то число символов в самом имени должно быть не больше 3.
+0 a1 = 10.75// задание численных значений размеров
+0 a2 = 20. 2.5 300.//
+0 b1 = 10.//
+0 b2 = 0.25//
Здесь введено 4 массива с именами а1, а2, b1, b2, в каждом из которых заданы числовые значения для соответствующих имен размеров. Для размера а2, кроме исходного значения (20.), заданы также пределы его возможного изменения (от 2.5 до 300.). Если пределы заданы, то этот размер появится на изображении модели и пользователь сможет его изменять в заданных пределах при редактировании модели в графическом режиме на второй стадии ее построения. Поскольку значения размеров, в отличие от номеров узлов, действительные числа, все они записаны с десятичной точкой.
+0 ПО Y РАЗМЕРЫ = 0 0 1 9 11 10 6/ 0 'b1' 8 12 7/0 'b2' 2 3 13 4 5//
Здесь заданы координаты Y для тех же 13 узлов. Для схемы 4 (осесимметричной) ось Y направлена вдоль оси симметрии.
+0 ЛИНИИ = 1 1 2/2 2 3 13 4 5/3 5 6/4 6 10 11 9 1/5 3 8 9/6 8 12 7/7 13 12 11/8 4 7 10//
Пример описания линий. Линии (хотя бы одна) должны быть введены обязательно. Для ввода прямой линии должны быть введены два узла по её концам, для ввода параболы три узла – два узла по концам и один в середине. Более сложные линии могут быть описаны любым количеством узлов, но фактически будут представлены в виде цепочки парабол. В описании каждой линии первая цифра – номер линии (номера линии должны быть строго по порядку 1,2,3 и т.д.). Иначе выдается сообщение “сбой нумерации строк”. Далее перечисляются номера узлов, входящих в линию, начиная с любого конца линии по порядку их расположения. Замкнутая линия (наличие одного узла дважды в описании линии) не допускается. В приведенном примере линия №1 состоит из узлов 1 и 2, линия №2 из узлов 2, 3, 13, 4 и 5, линия №3 из узлов 5 и 6 и т.д. Нахождение узла 2 одновременно на линиях 1 и 2 означает, что эти две линии пересекаются, и узел 2 является точкой их пересечения.
В состав линий, кроме узлов с уже заданными координатами, можно включать узлы с последующими номерами (с неизвестными координатами), при условии, что их координаты будут определены в процессе составления модели к моменту их использования.