Оптимизация производительности

Продолжение. Начало см. PC Week/RE, № 35/2000, с. 28.

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

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

Железо. Не следует экономить на видеокарте. Экранные операции занимают немалую долю времени в процессе работы, хотя трехмерные возможности видеокарты, скорее всего, окажутся мало полезными даже при объемном моделировании. Имеет смысл приобрести карту в диапазоне цен $150-$250 с видеопамятью 16-32 Мб. Хорошим выбором окажутся свежая версия Matrox или младшая модель Elsa. С Matrox G400 можно одновременно работать на двух мониторах, что позволяет максимально расчистить экран для более комфортной, а потому и более производительной работы.

Выбор между частотой процессора и объемом ОЗУ в большинстве случаев следует решать в пользу последнего. При создании архитектурных и конструктивных чертежей ОЗУ объемом 64 Мб не покажется избыточным, почувствовать себя свободно при работе с трехмерными моделями вам позволят 128 Мб ОЗУ. Оперативная память свыше 256 Мб для AutoCAD вряд ли оправдает затраты на ее приобретение, если только вы не намерены использовать более ресурсоемкие программы, например 3D Studio MAX или VIZ.

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

Для служебных файлов AutoCAD (без учета места для хранения чертежей) следует иметь на диске как минимум 300-500 Мб свободного пространства. Если вы начнете работу со 150-200 Мб, то при изготовлении больших чертежей программа может в один прекрасный момент покинуть вас, не попрощавшись, и вам придется в лучшем случае прибегать к утилите восстановления некорректно закрытого чертежа. Излишки оперативной памяти позволяют программе реже обращаться к диску, что может несколько увеличить производительность.

Что касается процессора, то, работая на Celeron 300A и на Pentium III 450, я не вижу особой разницы и не планирую в ближайшие полгода их заменять.

Подбор примитивов. Немаловажную роль в обеспечении высокой производительности имеет правильный выбор примитивов для формирования чертежей и моделей.

Оптимизация плоского черчения. При плоском черчении следует исключить примитив область [region], а последовательности отрезков [line] и дуг [arc] заменять полилиниями [polyline].

Область является очень “тяжелым” примитивом и в то же время не дает каких-либо преимуществ для 2D-черчения в сравнении с другими типами объектов. Напротив, его очень неудобно редактировать: по отношению к нему неприменимы многие стандартные команды AutoCAD, предназначенные для изменения формы объектов. Для редактирования областей используются функции, обычно применяемые в твердотельном моделировании: булево объединение [union], вычитание [subtract] и пересечение [intersect]. Более полезными области могут оказаться при объемном моделировании.

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

Редактировать участки построений, которые не выбираются целиком, тяжело. Для выбора же полилинии достаточно указать лишь на один ее сегмент. Многосегментная полилиния обрабатывается функцией построения эквидистантного контура [подобие, offset] целиком, в то время как для получения аналогичного результата разрозненные простые примитивы набора придется редактировать поштучно, а затем сопрягать отдельные копии между собой. Аналогично функции фаска [chamfer], сопряжение [fillet] могут обрабатывать полилинию на всем ее протяжении, а разрозненные примитивы для аналогичного результата надо последовательно выбирать попарно.

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

Для фиксации формы и выноса в натуру эллипсов [ellipse] удобнее применять эллипсовидные овалы-полилинии. Как и истинные эллипсы, такие овалы создаются командой эллипс. Разница определяется значением системной переменной pellipse, для построения овалов ей следует присвоить значение 1. То же относится к классическим архитектурным формам - все они основаны на сочетаниях отрезков и дуг, которые воспроизводятся сегментами полилинии.

Полилинию всегда можно расчленить на простейшие примитивы: дуги и отрезки, в свою очередь на основе набора дуг и отрезков легко собрать полилинию. Такая обратимость преобразований очень удобна. Другие типы примитивов не позволяют обращаться с ними столь гибко.

Наиболее понятным способом изменения формы контуров является перемещение вершин с помощью ручек [grips]. Полилиния при таком обращении обеспечивает сохранение целостности контура, которая не гарантируется при работе с цепочками простых примитивов.

Оптимизация объемного моделирования. В объемном моделировании правильный выбор средств еще более важен. Здесь можно выбирать из трех основных классов примитивов: экструдированных базовых, сетевых [mesh] и твердотельных [3d solid].

Твердотельные объекты воспринимают только те из базовых функций редактирования, которые не предназначены для изменения формы. Форма твердых тел изменяется набором специфических функций, работающих не интерактивно. Действие таких функций сводится к трем булевым операциям, а также к повороту и перемещению отдельных граней твердотельных объектов на заданные углы и расстояния. Недостаточная гибкость этого набора функций в большой мере компенсируется возможностью привычными базовыми примитивами сформировать сечения будущих объектов сдвига и вращения, а также путь сдвига сложной формы. Элементы архитектурного декора, являющиеся самыми сложными объектами проекта, как правило, сводятся к формам такого типа.

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

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

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

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

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

AutoCAD не предусматривает специальной функции для преобразований такого рода, однако с этим успешно справляется функция экспорта/импорта, в данном случае с использованием формата 3D Studio (*.3ds). Для экспорта объектов в файл формата *.3ds следует в меню Файл [File] выбрать пункт Экспорт [Export]. В вызванном при этом диалоговом окне Экспорт данных [Export Data] нужно в ниспадающем списке Тип файла [Save as type] установить формат 3D Studio (*.3ds). Для импорта объектов из файлов формата 3D Studio (*.3ds) нужно в меню Вставка [Insert] выбрать пункт 3D Studio. Импорт производится в те же координаты, которые имел экспортируемый объект. Поэтому, если произвести импорт в тот же файл, из которого произведен экспорт, удалив предварительно исходный твердотельный объект, на его место будет вставлена точная копия, образованная многогранной сетью [polyface mesh]. Если такое преобразование производится с опциями по умолчанию, могут быть утрачены послойная структура объектов и назначения экранных цветов, однако визуальные свойства материалов для тонирования, если они были присвоены исходному объекту, сохраняются.

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

С Александром Россоловским можно связаться по E-mail: clon@postman.ru.

(Продолжение следует)