BRL-CAD

Материал из Викиучебника — открытых книг для открытого мира
Перейти к навигации Перейти к поиску

BRL-CAD - свободно распространяемая САПР, ориентированная на работу через интерактивные консольные команды или через сохранённые и используемые многократно тексты таких команд (скрипты).

Сфера применения[править]

Свободное и бесплатное распространение позволяет распространять и применять применить программу и созданные ей файлы в сфере обучения, техническом самодеятельном творчестве, например: трехмерном моделировании и печати, переписке и пересылке чертежей читателей профильных изданий (например журналы "Моделист-конструктор", "Техника-молодёжи", "Изобретатель и рационализатор", "Юный техник", "Квант", "Наука и жизнь", "Химия и жизнь"; для изданий и деятельности, направленных на самостоятельное изготовление мебели, осуществление ремонтных работ, ремонт и кастомизацию мотоавтотехники, подготовку к путешествиям с использованием различных технических средств (сани, лодки и катера, различные парусные суда, плоты, воздушные шары, лёгкая авиация, автодома, буеры и пр.) и т. д.), публикации в малотиражных и ведомственных изданий организаций, научных, историко-технческих, оружейных и технических изданиях (журналы "Конструкторское бюро", "Главный механик", "Главный метролог", "Главный инженер", "Архитектура и строительство..." и им подобные), публикации с использованием интернет-ресурсов: размещение чертежей на файлообменных ресурсах, форумах и блогах, личных сайтах, мессенджерах и телеграм-каналах (например - ресурсы для владельцев летающих дронов и авиамоделей), обмен между энтузиастами технического проектирования чертежами на твёрдых носителях -бумаге, жестких дисках, флешках.

Возможно использование программы в сфере организации технических соревнований и конкурсов: например организация соревнований инженеров-конструкторов или садоводов-озеленителей на единой программной основе (принцип единых и равных стартовых возможностей).

Возможно применение программы в гаражах гаражных кооперативов для организации ремонта мотоавтотехники, бытовой радиотехники и электроники с использованием эскизирования и заказа на основе эскизов работ по ремонту, модификации и изготовлению запчастей у специализированных предприятий и ИП.

Программа может использоваться в деятельности различной кооперации граждан: например, деятельности председателей и членов гаражных и садовых кооперативов, сельсоветах - хотя, для решения земельных вопросов кооперативов и ведения части внутренней документации более подойдут другие свободно распространяемые программы: MapServer, GRASS GIS и др. В том числе программа может использована сфере ЖКХ: для работы председателей дома, жильцов многоквартирного дома, работы коммунально-обслуживающих и подрядно-строительных организаций и взаимодействия их между собой и жильцами многоквартирного дома и председателем дома, пдготовки конкурсной и иной документации на общее имущество дома, машиноместа, подземные гаражи и пр.

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

Программа применима для организации удалённой работы сотрудников в условиях санитарно-эпидемических мероприятий.

Модульная структура и возможность применения скриптов позволяет расширять и автоматизировать деятельность: автоматизировать проверку рабочих, учебных и конкурсных заданий и изготовление типовых эскизов, в том числе коммерческих, создавать доступные в интернете чертежные сервисы (например - конструктор заказа конфигурации типовых металлических стеллажей), автоматизировать стили оформления и проверки соответствия требованиям.

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

Быстрый старт при работе с BRL-CAD[править]

Помощь по работе с САПР можно получить введя в консоли команду mged help <команда>, например - mged help sph. Ниже даны основные виды чертежных деталей и простейших тел, которые могут быть созданы командами.

   1  Произвольные выпуклые многогранники
       1.1 ARB8 Records
       1.2 ARBN Records
   2 Эллипсоиды
       2.1 ell
       2.2 sph
       2.3 ellg
       2.4 ell1
       2.5 ehy
       2.6 epa
   3 Цилиндры, конуса
       3.1 tgc
       3.2 rcc
       3.3 rec
       3.4 rhc
       3.5 rpc
       3.6 tec
       3.7 trc
   4 Операции над 2d-объектами с получением 3d-объекта
       4.1 extrude
       4.2 revolve
       4.3 dsp
       4.4 ebm
       4.5 hf
   5 Некоторые распространённые 3d-объекты
       5.1 tor
       5.2 eto
       5.3 part
       5.4 nmg
       5.5 pipe
       5.6 ars
       5.7 metaball
       5.8 brep
       5.9 spline
       5.10 vol
       5.11 bot
       5.12 poly
   6 Прочее: эскизы, анимация, подмодели и т. д.
       6.1 Sketch
       6.2 annot
       6.3 grip
       6.4 half
       6.5 binunif
       6.6 submodel

Выполнить заранее написанный скрипт тоже очень просто - набирается команда mged, после ставится пробел и мышкой, трекболом или тачпадом в консоль перетаскивается файл скрипта. В результате консоль сама печатает путь к скрипту. После печати в консоли пути к файлу нажимается клавиша Enter - и выполнение команд начинается.

Кратко о концептуальном подходе к моделированию в данной САПР[править]

CSG против BREP[править]

Существует два основных подхода к твердотельному моделированию: CSG и BREP. В моделировании CSG объект представлен как логическая комбинация простых примитивных форм (например, сфер, цилиндров, конусов и т. Д.). В моделировании BREP объект представлен набором поверхностей (например, фасетов, треугольников и сплайнов), которые `соединены вместе, чтобы полностью охватить объект. Большинство основных коммерческих пакетов твердотельного моделирования, находящихся в настоящее время в распространении (например, Pro / ENGINEER [широко известный как Pro / E], Unigraphics и т. д.), Используют подход BREP, хотя у них есть некоторые возможности CSG. BRL-CAD, с другой стороны, в первую очередь представляет собой систему моделирования CSG с некоторыми возможностями BREP. Преобразования между CSG и BREP обычно могут быть связаны или преобразованы друг в друга. Для BRL-CAD доступен простой тип BREP в форме треугольников; он называется примитивом множества треугольников (BOT). Если объект BREP состоит из всех треугольников, представление BRL-CAD может быть точной копией. Но чаще всего объект BREP состоит из гладких изогнутых поверхностей, то есть треугольное представление BRL-CAD будет приближенным к объекту. Поскольку большинство коммерческих САПР имеют возможность создавать мозаичные аппроксимации своих объектов BREP, некоторые преобразователи в BRL-CAD (например, с Pro / E и Unigraphics) используют эти возможности. Кроме того, ранее упомянутый формат STL, который представляет твердые объекты полностью с треугольниками, предлагает универсальный (хотя и грубый) способ преобразования геометрии BRL-CAD (через преобразователь g-stl) практически в любую коммерческую систему CAD.

В зависимости от точки зрения, у использования CSG перед BREP есть свои преимущества и недостатки. Хотя «правильный» подход для данного проекта в конечном итоге зависит от многих особенностей (например, цели модели, доступности оборудования / программного обеспечения и совместимости с другими пользователями), при выборе между CSG и BREP следует учитывать следующие аспекты:

   Реализм - должна ли модель приближаться к реальной характеристике материала, толщине и объему, или же более важен реалистичный внешний вид поверхностей объекта?
   Разрешение - Насколько геометрически точной должна быть модель?
   Ресурсы - сколько места на диске и памяти потребуется для хранения геометрии и структур данных?
   Время - сколько процессорного времени требуется для чтения, записи и обработки модели, и сколько пользовательского времени потребуется для понимания, изменения и проведения анализа с ее помощью?

Использование документов, подготовленных в других САПР[править]

Преобразование форматов файлов[править]

Из-за множества существующих сегодня форматов файлов и быстро меняющейся природы компьютерного программного обеспечения и компаний-разработчиков программного обеспечения часто преобразование из одного формата файла в другой не является однозначным процессом. В зависимости от количества времени и усилий, которые пользователь BRL-CAD готов инвестировать, кажущиеся несовместимыми форматы можно принудительно преобразовать через другой формат САПР или через стандартизованный формат САПР (например, спецификацию начального обмена графикой [IGES] или Стандарта обмена данными о моделях продукции [STEP]).

Фактически, когда дело доходит до преобразования из BRL-CAD, широко распространенный формат Stereo Lithography Tessellation Language (STL) предлагает грубый способ преобразования объектов BRL-CAD практически в любую коммерческую систему CAD. Однако пользователю напоминают, что такие принудительные преобразования могут иногда приводить к созданию геометрии такого низкого качества (например, выходные форматы с низким разрешением или с потерями) или с плохими характеристиками производительности (например, большие или требующие больших вычислительных ресурсов выходные файлы), которые полностью перестраивают модель.

Следует отличать преобразователи геометрии BRL-CAD, и преобразователи изображений BRL-CAD (например, pix-bw, pix-ps, pix-rle, bw-ps и pl-ps). Последние преобразуют растровые изображения т. е. результаты рендеринга. Кроме того, написать программу для преобразований можно и самостоятельно, опираясь на документацию САПР и её открытый исходный код.

Создание нового конвертера, описывает руководство для тех пользователей, которые хотят создать свои собственные индивидуальные конвертеры. А также отдельно рассматриваются вопросы постконверсии. В том числе это позволяет работать с чрезвычайно редкими и устаревшими форматами файлов более несуществующих САПР а также с распространёнными в узкой области применения или географическом регионе.

Степень поддержки совместимости: старые базы данных BRL-CAD всегда можно обновить до формата текущей базы данных (db) с помощью утилиты dbupgrade. Чтобы выполнить эту команду, пользователь вводит следующую команду в командной строке: dbupgrade oldformat.g currentformat.g. BRL-CAD сохраняет возможность работы в старом формате. Таким образом, пользователям новой базы данных не нужно беспокоиться о потере баз данных в старом формате.

Программа поддерживает разнообразные конвертеры форматов сторонних файлов: Euclid, ACAD, AutoCAD DXF, TANKILL, Wavefront OBJ, Pro/ENGINEER, JACK (the human factors model for doing workload/usability studies), Viewpoint Data Lab, NASTRAN, Digital Equipment's Object File Format (OFF), Virtual Reality Mark-up Language (VRML), Stereo Lithography (STL), Cyberware Digitizer data, FASTGEN4. Если Вам уже знакомы другие САПР для знакомства с BRL-CAD можно использовать уже подготовленные в них модель или чертеж, преобразовав их из оригинального формата, воспользовавшись справочной документацией.

Преобразование формата на примере формата DXF[править]

Преобразование из формата AutoCAD DXF[править]

Для преобразования формата DXF во внутренние форматы этой САПР применяется утилита dxf-g. Команда для конвертера dxf-g следующая:

dxf-g [параметры] input.dxf output.g

Параметры команды следующие:

   -c - указывает, что используется только первый цвет, обнаруженный для слоя в файле DXF; дополнительные цвета для того же слоя игнорируются.
   -d - отладка; при сбое создает дамп ядра.
   -s - применяет указанный масштабный коэффициент к данным DXF (принимает аргумент).
   -t - устанавливает допустимое расстояние (в миллиметрах) (по умолчанию 0,005) (принимает аргумент).
   -v - подробный; распечатывает информацию о прогрессе.

Особенности конвертации: Для получения дополнительной информации о формате файла DXF и возможностях импорта см. интерактивную документацию на веб-сайте Autodesk. Формат DXF позволяет указать единицы измерения, используемые в файле DXF; однако не все файлы DXF содержат эту информацию. Таким образом, если информация о единицах измерения не найдена в файле DXF, миллиметры (которые также используются по умолчанию и являются базовой единицей измерения в BRL-CAD) являются предполагаемой единицей измерения. Конечно, если миллиметры - неподходящий выбор для конкретного пользователя или приложения, можно использовать параметр -s (масштаб). Эта опция и другие доступные опции для конвертера dxf-g обсуждаются в следующем тексте. При использовании этого конвертера полигоны и сетки преобразуются в примитивы BOT. Каждый слой становится регионом. Линии, окружности и дуги становятся объектами n-многообразной геометрии (NMG), а точки становятся сферами. Примитив NMG представляет геометрию, которая определяется точками, линиями, многоугольными гранями и их совокупностями. Это основной примитив BRL-CAD для кодирования одномерных или двумерных (2-D) данных.

Преобразование в формат AutoCAD DXF[править]

Команда g-dxf преобразует объекты BRL-CAD в ранее упомянутый формат AutoCAD DXF. Синтаксис этой команды следующий:

g-dxf [параметры] input.g объект (ы)

Параметры команды g-dxf следующие:

    -i - запрашивает выходной файл DXF в дюймах (по умолчанию миллиметры).
    -o output.dxf - указывает файл для получения вывода DXF (по умолчанию - stdout).
    -p - запрашивает, чтобы выходной файл DXF состоял из сущностей POLYFACE MESH (по умолчанию - сущности 3DFACE).

Команда также принимает параметры -v, -r, -a, -n, -x и -X, которые описывались в части, посвященной преобразователям импорта. САПР, при загрузке ранее сохранённых или сконвертированных материалов не отрисовывает, без прямого на то указания, загруженное содержимое, поэтому его наличие проверяется командой ls а отрисовка отдельной фигуры (например - spkr.s) может быть получена другой командой - draw spkr.s.

Основы работы[править]

Если Вы заблудитесь в какой-то момент во время создания модели, вы можете использовать команду Z, чтобы удалить геометрию из графического окна и воспользоваться draw. Команда draw может отрисовывать несколько объектов, если они перечислены через пробел. Команда "autoview" сбрасывает размер представления и центр представления, так что все отображаемые объекты находятся внутри представления. Пример: mged> autoview

   l [-r] <объекты>
       Команда «l» отображает подробное описание указанного списка объектов. Если указанный объект является путем, то применяются любые матрицы преобразования вдоль этого пути. Если последний компонент пути является комбинацией, команда перечислит логическую формулу для комбинации и укажет любые накопленные преобразования (включая любые в этой комбинации). Если комбинации были назначены шейдер и / или цвет, подробности будут перечислены. Для региона также будут указаны его идентификатор, код воздуха, код материала и LOS. Для примитивных форм будут отображаться подробные параметры формы с примененным накопленным преобразованием. Если используется параметр -r (рекурсивный), то каждый объект в командной строке будет рассматриваться как путь. Если путь не заканчивается примитивной формой, то будут рассмотрены все возможные пути от этой точки до отдельных фигур. Форма в конце каждого возможного пути будет указана с параметрами, скорректированными накопленным преобразованием.

history [-delays]

   Команда "history" отображает список команд, выполненных во время текущего сеанса MGED. Единственным исключением является команда hist_add, которая может добавить команду в список истории, не выполняя ее. Если используется опция -delays, то также будут отображаться задержки между командами.

Пример:

   mged> history

- Показать список истории команд.

journal [-d] [имя_журнального_файла]

       Команда "journal" запускает или останавливает занесение в журнал команд MGED в файл. Если выполняется без аргументов, команда прекращает ведение журнала. Если указано имя_журнала, этот файл станет получателем ведения журнала. Если также указана опция -d, в журнал будут включены задержки между командами. По умолчанию ведение журнала отключено.
   Примеры:
       mged> journal journal_file
   - Начать ведение журнала в journal_file.
   keep keep_file <объекты>
       Команда "keep" копирует указанные объекты в файл keep_file. Если keep_file не существует, он создается. Если keep_file действительно существует, объекты добавляются к нему. Keep_file - это файл базы данных BRL-CAD. Объекты в списке должны существовать в текущей базе данных.
   Примеры:
       mged> keep sample.g sample1 sample2
   - Создать файл sample.g с объектами sample1 и sample2 в нем.


Размеры объекта при просмотре можно менять командуя - size 100, size 50, zoom .5, zoom 3.

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

Виды: перейдите в меню Modes и выберите Multipane. В графическом окне должны появиться четыре небольших панели с разными видами.

Клавиша (зажимаемая при манипуляциях с мышкой) SHIFT перемещает (перемещает), клавиша CTRL вращает, а клавиша ALT ограничивает (или ограничивает) перемещение или вращение по определенной оси (x, y или z). Эти оси соответствуют трем кнопкам мыши следующим образом: левая кнопка представляет ось x, средняя кнопка представляет ось y, а правая кнопка представляет ось z. Кроме того, клавиши SHIFT и CTRL могут использоваться вместе с любой кнопкой мыши для масштабирования объекта (хотя клавиша ALT не ограничивает это действие). ALT также с щелчком левой клавиши мыши выделяет вид и открывает меню указателя.

Новую базу данных создаёт команда mged а создание фигур из командного окна выполняется с помощью команд make и in. Новые команды рекомендуется осваивать сначала с помощью команды make так как она интерактивно запрашивает параметры и её последовательное применение 10-20 раз подряд позволяет надёжно освоить новую команду.

Нажатие клавиши Tab при частично набранном имени объекта даёт возможность быстрее написать команду.

В САПР концептуально есть два объекта, которые поддерживают логические операции. Один называется комбинацией, другой - регионом.

Типичная геометрическая фигура называется примитивом. Однако отдельных примитивов часто недостаточно для полного описания сложной формы моделируемого объекта. Таким образом, объединение двух или более примитивных форм в другие формы (называемые комбинациями) с использованием логических операторов позволяет искусно имитировать форму самых сложных объектов. Свойства материала связаны с регионами (областями). Как и комбинации, регионы используют логические операции для создания сложных форм. Разница в том, что области - это формы, обладающие свойствами материала. Они занимают трехмерное пространство, а не просто определяют форму в пространстве.

Программа использует три булевых оператора: объединение, вычитание и пересечение. Вы можете использовать логические операции, чтобы комбинировать формы для создания более сложных форм.

Например, создание региона из логического объединения двух фигур: r part1.r u rcc.s - sph.s (вырезка в цилиндре углубления) или r part2.r u rcc.s + sph.s (общий объем цилиндра и сферы остаётся а индивидуальные объёмы обрезаются), r part3.r u sph.s - rcc.s (останется только кусочек сферы, не входящий в цилиндр).

Команда B служит для отображения регионов и комбинаций. Для группового отображения присваивается комбинация с именем: g Dome.c part1.r part2.r part3.r.

Всегда возможно получение справки в консоли или в графическом интерфейсе: Команды ?, ?devel, ?lib, help, helpdevel, and helplib предоставляют дополнительную информацию о доступных командах. Список доступных команд разработчика: ?devel. Список доступных команд интерфейса библиотеки BRL-CAD: ?lib. Cписок доступных команд mged:?.

Примеры:

   mged>?
   mged>?devel
   mged>?lib

Команда «aproposlib» просматривает однострочные сообщения об использовании для каждой команды интерфейса библиотеки BRL-CAD и отображает имя каждой команды, в которой найдено совпадение. Пример:

   mged> aproposlib sph

- Перечислит все команды, содержащие слово «sph» в своих однострочных сообщениях об использовании.

Команда «check» вычисляет и сообщает различные характеристики объектов, указанных в открытой базе данных. Характеристики, которые могут быть вычислены, включают массу, центроид, моменты инерции, объем, перекрытия, площадь поверхности, открытый воздух, зазоры / пустоты, прилегающий воздух и неограниченный воздух. Анализируются только объекты из базы данных, указанной в командной строке. Предлагаются следующие подкоманды: adj_air

   Обнаруживает объемы воздуха, которые находятся рядом друг с другом, но имеют разные значения air_code, примененные к региону.

centroid

   Вычисляет центроид указанных объектов.

exp_air

   Проверьте, попадает ли луч в воздушные области до (или после всех) твердых объектов.

gap

   Это сообщает, когда расстояние между объектами на траектории луча превышает допустимое расстояние перекрытия.

mass

   Вычисляет массу указанных объектов.

moments

   Вычисляет моменты и произведения инерции указанных объектов.

overlaps

   Это отчеты перекрываются, когда два региона занимают одно и то же пространство.

surf_area

   Вычисляет площадь поверхности указанных объектов.

unsf_air

   Это сообщает, когда есть неограниченные воздушные районы.

volume

   Вычисляет объем указанных объектов.
   

Команда проверки ("check") предлагает следующие параметры:

       a # [deg | rad] - Выберите азимут в градусах с неявным суффиксом «deg» и в радианах с явным суффиксом «rad». Используется с -e. Значение по умолчанию - 35 градусов.
       e # [deg | rad] - Выберите высоту в градусах с неявным суффиксом «deg» и в радианах с явным суффиксом «rad». Используется с -a. Значение по умолчанию - 25 градусов.
       d - Установить флаг отладки.
       f имя_файла - указывает, что значения плотности должны быть взяты из внешнего файла, а не из объекта _DENSITIES в базе данных.
       g [initial_grid_spacing-] grid_spacing_limit или [initial_grid_spacing,] grid_spacing_limit - задает предел того, насколько далеко сетка может быть уточнена, и, необязательно, начальный интервал между лучами в сетках.
       -G [grid_width,] grid_height - устанавливает размер сетки, если указана только ширина сетки, то устанавливается квадратный размер сетки.
       i - получает «информацию о просмотре» из вида для настройки положения глаз.
       M # - указывает значение допуска массы.
       n # - указывает, что сетка будет уточняться до тех пор, пока каждая область не будет иметь как минимум num_hits пересечений лучей.
       N # - указывает, что должны вычисляться только первые num_views.
       o - указывает, что перекрытия отображаются как наложения.
       p - указывает создание файлов графика для каждого выполняемого анализа.
       P # - указывает, что для выполнения вычислений следует использовать ncpu CPUs. По умолчанию используются все локальные процессоры.
       q - Приглушает (подавляет) сообщение «не было обнаружено».
       r - указывает на печать статистики по регионам для mass / volume / surf_area, а также значений для указанных объектов.
       R - Отключить отчеты о перекрытиях.
               s # - Определяет значение допуска площади поверхности.
       S # - указывает, что интервал сетки будет изначально уточнен так, чтобы по каждой оси ограничивающего прямоугольника модели было снято не менее samples_per_axis_min.
       t # - Устанавливает допуск для вычисления перекрытий.
       u distance_units, volume_units, mass_units - укажите единицы, используемые при сообщении значений.
       U # - задает логическое значение (0 или 1) для use_air, которое указывает, следует ли сохранять и включать в трассировку лучей области, помеченные как «воздух».
       v - Установить подробный флаг.
       V # - указывает значение допуска по объему.

Примеры:

   mged> check overlaps -g10,10 box

- Запустит команду проверки с лучами, испускаемыми из однородной сетки с лучами, расположенными через каждые 10 мм, и сообщит о любых перекрытиях, замеченных во время трассировки лучей.


Объекты в модели BRL-CAD хранятся как логические деревья (комбинации), члены которых являются примитивными формами или другими логическими деревьями. С каждым членом связана матрица преобразования. Эта компоновка позволяет примитиву быть членом комбинации, и эта комбинация может быть членом другой комбинации, и так далее. Когда отображается комбинация, матрицы преобразования применяются к ее элементам и передаются через комбинации на конечный уровень (примитивная форма). Накопленная матрица преобразования затем применяется к примитиву, прежде чем он будет отображен на экране. Команда «copyeval» создает новый примитивный объект с именем new_ primitive, применяя матрицы преобразования, накопленные вдоль path_to_old_primitive, к объекту формы листового примитива в конце пути и сохраняя результат под именем new_ primitive. Примитив path_to_old_ должен быть допустимым путем, заканчивающимся примитивной формой. Примеры:

   mged> copyeval shapeb comb1 / comb2 / comb3 / shapea

- Создаст shapeb из shapea, применяя накопленные матрицы преобразования из path comb1 / comb2 / comb3.

copymat comb1 / members1 comb2 / members2

   Команда «copymat» копирует матрицу преобразования из члена одной комбинации в член другой.

Примеры:

   mged> copymat comb1 / members1 comb2 /mb2

- Установит матрицу для члена members2 в комбинации comb2 равной матрице для члена members1 в комбинации comb1.

cp from_object to_object

 listeval [путь]
       Комбинации могут включать в себя матрицы преобразования, применяемые к их элементам. Путь, проходящий через серию комбинаций и заканчивающийся примитивной формой, представляет эту примитивную форму с преобразованиями, накопленными посредством примененного к ней пути. Команда "listeval" отображает параметры примитивной формы после применения накопленных преобразований по указанному пути. Если указанный путь не заканчивается примитивной формой, тогда все возможные пути от указанного пути до любой примитивной формы будут оценены и отображены.

Команда "cp" создает копию объекта (формы или комбинации). Если from_object - это фигура, то она просто копируется в новую фигуру с именем to_object. Если from_object является комбинацией, то создается новая комбинация, содержащая точно такие же элементы, матрицы преобразования и т. Д., И она называется to_object. Примеры:

   mged> cp comb1 comb2

- Создаст копию комбинации comb1 с названием comb2.

cpi old_tgc new_tgc

   Команда "cpi" копирует old_tgc (существующую фигуру TGC) в новую фигуру TGC (new_tgc), размещает новый TGC так, чтобы его базовая вершина совпадала с центром вершины old_tgc, и переводит mged в состояние редактирования примитива. с выбранным для редактирования new_tgc. Эта команда обычно использовалась при создании моделей участков электропроводки или трубопроводов; однако с тех пор в BRL-CAD был добавлен примитив конвейера для обработки таких требований (pipe primitive).

Примеры:

   mged> cpi tgc_a tgc_b

- Скопирует tgc_a в tgc_b

d <объекты>

   Команда «d» удаляет указанный список объектов из отображаемого содержимого. Это синоним команды стирания. Только объекты, которые были явно отображены, могут быть удалены с помощью команды «d» (используйте команду who, чтобы увидеть список явно отображаемых объектов). Объекты, которые отображаются как члены явно отображаемых комбинаций, не могут быть удалены с дисплея с помощью этой команды (см. Erase -r). Обратите внимание, что это не влияет на саму базу данных BRL-CAD. Чтобы удалить объекты из базы данных, используйте команду kill.
   
   
   
   
   команда db [аргументы ...]
   Команда «db» предоставляет интерфейс для ряда процедур работы с базой данных. Обратите внимание, что эта команда всегда работает в миллиметрах. Команда должна быть одной из следующих с соответствующими аргументами:
   match  <regular_exp>
   - Вернуть список всех объектов в этой базе данных, которые соответствуют списку регулярных выражений.
   get shape_or_path [attribute]
   - Возвращает информацию о примитивной форме в конце shape_or_path. Если путь указан, матрицы преобразования, встречающиеся на этом пути, будут накапливаться и применяться к форме листа перед отображением информации. Если атрибут не указан, возвращаются все сведения о форме. Если указан конкретный атрибут, возвращается только эта информация.
   put shape_name shape_type attributes
   - Создает фигуру с именем shape_name типа shape_type с атрибутами, указанными в атрибутах. Аргументы команды put такие же, как и аргументы, возвращаемые командой get.
   adjust shape_name attribute new_value1 [new_value2 new_value3...]
   - Изменить форму с именем shape_name, изменив значение ее атрибута на new_values.
   form object_type
   - Отображение формата, используемого для отображения объектов типа object_type.
   вершины
   - Вернуть все объекты верхнего уровня.
   close
   - Закройте ранее открытую базу данных и удалите связанную команду.
   
   
   Команда «dbconcat» объединяет существующую базу данных BRL-CAD с базой данных, редактируемой в данный момент. Если указан аффикс, то все объекты из файла_базы_данных будут иметь этот аффикс к их именам. Параметр -s указывает, что аффикс является суффиксом, а параметр -p (по умолчанию) указывает, что аффикс является префиксом. Обратите внимание, что каждый объект BRL-CAD должен иметь уникальное имя, поэтому следует проявлять осторожность, чтобы не слить базы данных, в которой есть объекты с такими же именами, как объекты в текущей базе данных. Команду dup можно использовать для проверки повторяющихся имен. Если команда dup находит повторяющиеся имена, используйте параметр префикса для команд dup и dbconcat, чтобы найти префикс, который не создает дубликатов. Если в процессе "dbconcat" встречаются повторяющиеся имена и не указан аффикс, к именам объектов из файла database_file будут добавлены сгенерированные компьютером префиксы (но имена элементов, появляющиеся в комбинациях, не будут изменены, так что это опасно в практике работы, и этого следует избегать). Если указана опция -t, то заголовок файла_базы_данных станет новым заголовком текущей базы данных BRL-CAD. Если указана опция -u, единицы текущей базы данных будут установлены равными объему объединяемого файла_базы_данных. Параметр -c указывает, что таблица цветов региона в объединенном файле_базы_данных должна заменить любую таблицу цветов региона в текущей базе данных BRL-CAD.

Примеры:

   mged> dbconcat model_two.g two_
   - Скопирует все объекты из model_two.g в текущую базу данных, но перед именем каждого скопированного объекта укажет строку two_.
   mged> dbconcat -s model_two.g
   mged> dbconcat -c -p model_two.g two_
   - Скопирует все объекты из model_two.g в текущую базу данных, добавляя при необходимости суффиксы, созданные компьютером.


ev [-dfnrstuvwST] [-P #] [-C # / # / #] <объекты>

   Команда «ev» оценивает объекты, указанные путем мозаики всех примитивных форм в объектах, а затем выполняет любые логические операции, указанные в объектах. Затем результат отображается на дисплее MGED в соответствии с указанными параметрами:
   d - Не выполнять логические операции или какие-либо проверки; просто преобразуйте фигуры в многоугольники и нарисуйте их. Полезно для визуализации примитивов BOT и polysolid.
   f - Быстрый путь для быстрой визуализации примитивов полисвердого тела.
   w - рисовать каркасы (а не полигоны).
   n - Нарисуйте нормали поверхности как маленькие "волоски".
   s - Рисование только фигурных линий (без точек-тире для вычитания и пересечения).
   t - выполнить преобразование CSG в tNURBS (все еще в разработке).
   v - Затенение с использованием нормалей для вершин, если они есть.
   u - Нарисовать края NMG (для отладки).
   S - Рисовать tNURBS только с кривыми обрезки, без поверхностей.
   T - Не выполнять триангуляцию после вычисления логического значения (может дать неожиданные результаты, если не используется с параметром w).
   P # - использовать # процессоров параллельно. По умолчанию = 1.
   r - Нарисуйте все объекты красным. Полезно для изучения объектов черного цвета.
   C # / # / # - Нарисовать все объекты указанным цветом rgb.

Примеры:

   mged> ev region1 shapea

- Отображение region1 и shapea как закрашенных многоугольников.


mged> ev -wT region1 - Отображение оцениваемой области region1 в виде каркаса без триангуляции.

exit

   Команда "exit" завершает процесс MGED. Это синоним команды выхода.

Примеры:


expand regular_expression

   Команда «expand» выполняет сопоставление регулярного_выражения с именами всех объектов в базе данных. Он возвращает все успешно совпавшие.

Примеры:

   mged> expand * .r

- Показать список всех имен объектов базы данных, которые заканчиваются на «.r».

expand_comb prefix comb ...

   Expand_comb создаст новый префикс комбинированного объекта. Для каждого логического узла в исходном дереве комбинации будет создана новая комбинация. Каждая построенная комбинация будет содержать одну логическую операцию двух листовых узлов. Листовые узлы будут называться prefixl и prefixr для левого и правого узлов дерева соответственно. Субузлы будут иметь суффиксы «l» и «r», добавленные в зависимости от того, являются ли они левыми или правыми дочерними узлами узла.
   Обратите внимание, что регионы, комбинации и объекты, созданные с помощью команды «g» (иногда в разговорной речи называемые группами), являются комбинациями и могут быть расширены с помощью этой команды.
   Пример:
  mged> r foo.r u a - b + c u d + e
   Defaulting item number to 1003
   Creating region id=1003, air=0, GIFTmaterial=1, los=100
   mged> l foo.r
   foo.r:  REGION id=1003  (air=0, los=100, GIFTmater=1) --
      u a
      - b
      + c
      u d
      + e
   mged> tree foo.r
   foo.r/R
           u a
           - b
           + c
           u d
           + e
   mged> expand_comb_tree -c foo.r
   mged> l foo.r_xpand
   foo.r_xpand:  REGION id=1003  (air=0, los=100, GIFTmater=1) --
      u foo.r_xpand_l
      u foo.r_xpand_r
   mged> tree foo.r_xpand
   foo.r_xpand/R
           u foo.r_xpand_l/R
                   u foo.r_xpand_ll/R
                           u a
                           - b
                   + c
           u foo.r_xpand_r/R
                   u d
                   + e



extrude #### distance

   Команда «выдавливание» изменяет форму ARB путем выдавливания указанной грани на указанное расстояние для определения положения противоположной грани. Грань, которую нужно выдавить, идентифицируется путем перечисления номеров ее вершин, как они обозначены на дисплее MGED при редактировании ARB. Обратите внимание, что идентифицированная грань не перемещается, но противоположная грань настраивается так, чтобы она находилась на указанном расстоянии от указанной грани. Порядок перечисления номеров вершин определяет направление выдавливания с использованием правила правой руки.

Примеры:

   mged> extrude 1234 5

- Переместите грань 5678 так, чтобы расстояние от грани 1234 было на 5 единиц.

eye_pt x y z

   Команда "eye_pt" помещает точку глаза в заданные координаты x, y и z (указанные в мм).

Примеры:

   mged> eye_pt 100 0 0

- Расположите проушину на расстоянии 100 мм по оси x.

facedef #### [параметры a | b | c | d]

   Команда «facedef» позволяет пользователю переопределить любую грань формы ARB8. Пользователь должен находиться в режиме примитивного редактирования с выбранным для редактирования ARB. Необязательные параметры могут быть опущены, и MGED запросит недостающие значения. Возможные варианты:
   а
   - Укажите новое местоположение этой грани, указав коэффициенты для уравнения ее плоскости:
       Ax + By + Cz = D.
   б
   - Укажите новое местоположение этого лица, используя три точки.
   c
   - Укажите новое местоположение этой грани, используя углы поворота и резервные углы.
   d
   - Укажите новое местоположение этой грани, изменив значение D в уравнении плоскости.
   q
   -Возврат


facetize [-ntT] [-P #] новый_объект старый_объект

   Команда «facetize» создает новый_объект как форму BOT путем тесселяции всех примитивных фигур в old_object и последующего выполнения любых логических операций, указанных в old_object. Параметр -T указывает, что все грани в новом_объекте должны быть триангулированы. Опция -n указывает, что полученная форма должна быть сохранена как форма NMG. Параметр -t предназначен для создания граней TNURB, а не плоских аппроксимаций (этот параметр все еще находится в стадии разработки). Параметр -P предназначен для того, чтобы позволить пользователю указать количество процессоров, используемых для этой команды, но в настоящее время он игнорируется.

Примеры:

   mged> facetize region1.nmg region1.r

- Создаст фасетизированную BOT-версию существующего объекта region1.r.

  Команда «i» добавляет obj_name в конец комбинации с именем comb_name. Операция может быть «+», «-» или «u». Если операция не указана, предполагается «u». Если comb_name не существует, он создается.

Примеры:

   mged> i region3 group5

- Добавить region3 в комбинацию group5.

idents имя_файла <объекты>

   Команда «idents» помещает сводку регионов в список объектов, указанных в указанном файле. Если какие-либо регионы включают другие регионы, то будет отображен только первый обнаруженный регион в этом дереве. Результирующий файл будет содержать два списка регионов, один в том порядке, в котором они встречаются в списке объектов, а другой - по идентификационному номеру. Данные, записанные для каждой области, включают (в этом порядке) последовательный подсчет области, идентификационный номер, код воздуха, код материала, LOS и путь к региону.

Примеры:

   mged> idents регион_файл группа1 группа2 регион3

- Создаст файл с именем region_file и перечислит все регионы в group1, group2 и region3 в этом файле.

   Команда "ill" выполняет функцию выбора объекта после входа в режим твердого (то есть примитивного) освещения или режима освещения объекта. В режиме сплошной подсветки эта команда выбирает конкретную форму для редактирования. В режиме подсветки объекта эта команда выбирает листовой объект для пути объекта, затем пользователь может использовать мышь, чтобы выбрать, где на пути объекта следует применить редактирование. В обоих режимах команда ill будет успешной только в том случае, если указанное имя_объекта упоминается только один раз в отображаемых объектах; в противном случае будет отображаться сообщение с множественной ссылкой. Если команда ill не работает, пользователь должен прибегнуть либо к использованию мыши для выбора, либо к использованию aip и M 1 0 0.

Примеры:

   mged> ill shapea

- Выберет shapea для редактирования.

in [-f] [-s] имя_новой_формы тип_формы <параметры>

   Команда «in» позволяет пользователю вводить аргументы, необходимые для создания фигуры с именем new_shape_name типа shape_type. Команда может быть вызвана без аргументов, и она запросит у пользователя всю необходимую информацию. Параметр -s вызовет режим редактирования примитивов для новой формы сразу после создания. Параметр -f не отображает новую фигуру, поэтому параметр -s нельзя использовать вместе с -f. Возможные значения для shape_type:
   arb8 - ARB (восемь вершин).
   arb7 - ARB (семь вершин).
   arb6 - ARB (шесть вершин).
   arb5 - ARB (пять вершин).
   arb4 - ARB (четыре вершины).
   arbn - Произвольный многогранник с произвольным числом вершин (уравнения плоскости).
   bot - Тетраэдр.
   dsp - Карта смещения.
   pipe - труба (участок соединенной трубы или провода).
   ebm - Экструдированная битовая карта.
   vol - Вокселы.
   hf - Поле высоты, устарело, см. dsp.
   ars - Твердое тело произвольной формы.
   half - Геометрическое полупространство.
   sph - Эллипсоид (центр и радиус).
   ell - Эллипсоид (центр и три полуоси).
   ellg - Эллипсоид (длина фокусов и хорды).
   ell1 - Эллипсоид (центр, одна полуось и радиус вращения).
   tor - Тор.
   tgc - Усеченный общий конус (наиболее общий TGC).
   tec - Усеченный общий конус (верхние радиусы отсчитываются от радиусов основания).
   rec - Усеченный общий конус (правый эллиптический цилиндр).
   trc - Truncated General Cone (усеченный правый круговой конус).
   rcc - усеченный общий конус (правый круговой цилиндр).
   box - ARB (вершина и три вектора).
   raw - ARB (прямоугольный клин).
   rpp - ARB (прямоугольный параллелепипед, выровненный по оси).
   rpc - Правый параболический цилиндр.
   rhc - Правый гиперболический цилиндр.
   epa - Эллиптический параболоид.
   ehy - Эллиптический гиперболоид.
   eto - Эллиптический тор.
   part - Частица.

Пример: mged> in new1 raw 0 0 0 0 0 1 1 0 0 0 1 0

Команда «inside» создает новую фигуру внутри существующей фигуры. Эта команда обычно используется для создания внутренней формы, которую можно вычесть из исходной формы, чтобы получить полую оболочку. Команда обычно используется без аргументов и запрашивает у пользователя всю необходимую информацию; однако все параметры могут быть указаны в командной строке. Если MGED находится в режиме простого редактирования при подаче команды «inside», то редактируемая в данный момент форма будет использоваться как «external_shape». Точно так же, если MGED находится в режиме редактирования матрицы, когда выполняется «внутренняя» команда, то текущая форма ключа будет использоваться как внешняя форма.