Объектно-ориентированное моделирование в ArCon

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

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

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

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

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

  • На порядок возрастает скорость создания планов и чертежей.
  • Чертеж или модель становятся более информативными: при выделении (или редактировании) того или иного объекта вы можете легко определить (заменить) его свойства, причем большинство этих свойств, как правило, на обычном чертеже или модели не смогут быть отображены.
  • База данных объектов иногда наполняется не просто произвольными, ранее заготовленными, а вполне реальными объектами (например, реально существующие экземпляры мебели от различных фирм, материалы от конкретных производителей и т. п.). В таких случаях в приложении обязательно приводятся адреса фирм-поставщиков и производителей, по которым вы сразу после завершения разработки проекта можете обратиться и заказать необходимые объекты и материалы.
  • Объекты легко изменять и модифицировать. При этом программа отслеживает правильность задания значений определенных свойств (допустим, вы не сможете создать окно, большее, чем габариты стены, на которой оно размещено). Это облегчает работу и позволяет избегать неумышленных ошибок.
  • Построенная модель (чертеж) может быть представлена в виде иерархического дерева, что облегчает навигацию по проекту, поиск и редактирование его отдельных частей.
  • Одним из главных, но вовсе не очевидных преимуществ объектно-ориентированного подхода при создании графических изображений является возможность быстрого и полностью автоматического перехода к трехмерному изображению (другими словами, возможность автоматической генерации трехмерной модели спроектированного объекта). С учетом того, что набор объектов, которыми может оперировать пользователь, в любом случае ограничен, а также учитывая то, что в свойствах каждого объекта можно заложить достаточно информации, чтобы получить полное представление о его форме, становится возможной генерация трехмерной модели по чертежу (графическому изображению) без каких-либо усилий со стороны пользователя (именно такой подход и реализован в системе ArCon). В итоге пользователь почти мгновенно получает трехмерное представление своего проекта, при этом не затратив практически никаких усилий. Полученную трехмерную модель затем можно визуализировать и получить реалистичную картинку или передать в другую систему для дальнейшего редактирования или проведения инженерных расчетов. Более того, в таком случае пользователю вообще не нужно специальных навыков трехмерного моделирования.

Несмотря на большое количество преимуществ, перечисленных выше, объектно-ориентированный подход имеет и недостатки.

В первую очередь (и это очевидно) — ограниченность набора готовых объектов (что, в принципе, уже неактуально для ArCon 2009, который располагает обширным пакетом встроенных библиотек), а также невозможность их произвольного изменения. Это отбирает гибкость у программы, из чего следует, что принцип объектного проектирования может быть применен только в специализированных системах, то есть системах, ориентированных на решение конкретного типа задач (например, ArCon, Professional Home Design Platinum и пр.). Разработчикам таких систем необходимо тщательно учитывать специфику отрасли, для автоматизации и решения задач которой предназначается программный продукт, а также максимально расширять возможность настройки свойств предлагаемых объектов.

При использовании специализированных систем на первый план выходит вопрос стоимости и функционала системы. Если вы на сто процентов уверены в том, что та или иная специализированная программа подходит для ваших целей, сомнений при ее покупке не должно возникать. Иначе вам необходимо более подробно изучить функционал, чтобы убедиться, можно ли будет решать поставленные задачи, или же, в худшем случае, придется потратить деньги на «обычный» и дорогой CAD-редактор.

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

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

Однако, несмотря на такие существенные недостатки, легкость в работе, а главное, скорость и наглядность выполнения проектов берут верх. Как следствие, в последнее время системы, подобные рассматриваемой в этой книге программе ArCon, нашли широкое применение в решении различных задач проектирования.

Когда-то я работал частным дизайнером-архитектором, но сейчас у меня другой род деятельности - занимаюсь web-разработкой.