Как сделать чертеж на телефоне
О том, как было реализовано портирование большого Windows-приложения на Android, рассказывает один из разработчиков КОМПАС:24 Александр Полуэктов.
Исходные условия
Специфика формата файлов КОМПАС-3D такова, что отсутствует описание внутренней структуры документа и невозможно прочитать файл, не имея исходников основного продукта (хотя попытки предпринимались как собственными силами, так и сторонними разработчиками).
Данные сериализуются в бинарном виде, каждый класс делает это самостоятельно с учетом версии файла. КОМПАС-3D с пятой версии разрабатывался только под Windows, но пользователи давно просили реализовать хотя бы просмотр файлов из других ОС. Было принято решение о создании отдельного продукта КОМПАС:24 для Android на основе имеющегося кода КОМПАС-3D.
Проект очень крупный – несколько миллионов строк на C++. Раз есть C++, можно использовать NDK, а не писать всё заново. Несколько сократило объем работы то, что часть системы (геометрическое ядро) уже была независима от GUI и адаптирована для Linux-систем.
Тестовое приложение ядра C3D для Linux
Сложности, подводные камни и решения
Изначально задача состояла в том, чтобы прочитать 3D-модели из файлов и отрисовать их, т. е. достать тела, насчитать триангуляцию и вывалить в OpenGL. В реальности оказалось, что в файле сохраняются не результирующие тела, а только история построения. Потребовалось организовать чтение всех имеющихся объектов, включая объекты чертежа/фрагмента, которые используются в эскизе. Добавив работы, это позволило организовать открытие не только деталей/сборок, но и чертежей/фрагментов. Оказалось, что изменения модели, выполненные в сборке, требуют перестроения включенных деталей с передачей данных через запись в память, аналогично хранению на диске. Кроме чтения файла пришлось реализовать еще и механизм записи.
Большое количество исходных текстов, несомненно, надо структурировать. Дабы не изобретать велосипед, проект был разбит на модули, аналогично исходным. Были исключены модули, отвечающие за пользовательский интерфейс и процессы построения. Сначала возникла сложность с нежелающим линковаться математическим ядром. Проблема появилась из-за слишком длинной командной строки, передаваемой линковщику. Для разрешения ситуации без крупных переделок проекта пришлось вывести сборку ядра на виртуальную машину с Linux. К счастью, в очередной версии Android NDK проблема была исправлена, и сейчас такие сложности отсутствуют.
Не являлась существенной проблемой, но требовала крепких нервов отладка. Внесение изменений в одну строчку требует на сборку и перезапуск проекта от трех (в лучшем случае) до 40 минут.
Отображение чертежа
Работа с файловой системой, реестром и пользовательским интерфейсом была вынесена в отдельные модули. Это позволило значительно ограничить места сплошного переписывания. Здесь сложностей добавили строки. В зависимости от версии файла строка может оказаться либо 1-байтной windows-1251, либо 2-байтной wchar_t. Для Android NDK родная кодировка utf-8 и допустимо использование 4-байтного wchar_t. А ещё строки сравниваются на больше/меньше и с них насчитываются хэши. Единственный способ борьбы с этим зоопарком – длительная отладка и пристальный взгляд в код.
Значительно увеличило время разработки большое количество legacy-кода. Проект — реально старый. Встречается код, написанный 15 лет назад под Visual Studio 6 / Borland C++ Builder. С учётом того, как спокойно компилятор от Microsoft относится к нарушению стандарта C++ (а иногда даже поощряет), пришлось часто переписывать платформонезависимые, на первый взгляд, фрагменты кода.
О специфике сериализации я уже упоминал в начале. Данные сериализуются в бинарном виде, и каждый класс делает это самостоятельно с учетом версии файла. Сериализуются встроенные типы windows, в т.ч. VARIANT. Сериализуются хэши строк, которые потом сравниваются со строками (помним про кодировки).
Результаты разработки
Разработка первой версии КОМПАС:24 заняла около полугода. В новых релизах появляется поддержка свежих версий файлов КОМПАС-3D и небольшие доработки.
В проект включено более 2000 cpp-файлов из КОМПАС-3D и около 20 файлов, характерных только для КОМПАС:24. В коде около 4000 участков с различной реализацией для КОМПАС-3D и КОМПАС:24.
Достигнута возможность открывать любую модель, сборку или чертеж, на которые хватит оперативной памяти мобильного устройства. На практике открываются не все файлы, но это вопрос исправления отдельных багов.
Получен код, который относительно легко поддерживать для всех платформ. Существуют экспериментальные сборки КОМПАС:24 для Linux и Windows.
Применение динамического сечения к модели турбомуфты
В процессе разработки подтверждена возможность существования КОМПАС-3D для Android. При открытии сборок происходит полное перестроение. Мобильные приложения сделали огромный скачок от простых игр и записных книжек до серьёзных проектов. К тому же по производительности современные телефоны обогнали ПК десятилетней давности, а размеры и разрешения планшетов позволяют размещать на экране достаточное количество информации.
КОМПАС:24 стал полигоном для проверки решений, часть из которых была впоследствии перенесена в КОМПАС-3D. К примеры, в КОМПАС:24 впервые появились динамическое сечение 3D-моделей, быстрая отрисовка с кэшированием триангуляции и быстрое открытие сборок из кэша без перестроения.
Александр Полуэктов, ведущий программист
Inard CAD
версия: 3.5.2
Последнее обновление программы в шапке: 11.12.2018
Краткое описание:
Быстрое и удобное построение чертежей.
Описание:
Построение чертежей с указанием размеров. Очень удобно .
Требуется Android: 2.3.6 и выше
Русский интерфейс: Неизвестно
v3.5.1Free (2014-03-24)Inard CAD.apk ( 1.59 МБ )
ssdgh45, QMS проверьте ;)
Есть координаты? Рисование точек? Угловые размеры? Меня как геодезиста волнует
С Маркета. Лакиратчеронеустойчивая. Вроде. Если что не так - на поклон в тему Клуб Mod apk .
С переводом. жжжесть) Попробовал. Процентов 95 в smali. переводить такое для меня, всё равно, что собирать рассыпанное пшено пинцетом)) После того как раньше всегда делал это пылесосом.
(InardCADPro_test.apk ( 1.57 МБ )
частично переведённая.И похоже, не там где надо) т.к. приложение аварийно закрывается ч/з нек-е время.. но, как материал, может пригодиться, наверное. )
скачал оба файла, предложенных в теме. при попытке их установки появляться уведомление: "при синктатическом анализе пакета произошли неполадки "
Приложение для работы с чертежами. Утилита позволяет открывать файлы, редактировать их, добавлять объекты, вычислять длину, угол и масштаб, а также менять формат.
DWG FastView – Android приложение для создания и редактирования чертежей. Утилита позволяет работать с двухмерными и трехмерными объектами.
Виртуальное черчение
В приложении можно создавать или загружать файлы, разработанные на других платформах. Утилита поддерживает масштабирование жестами или с помощью экранной лупы. Можно узнать длину, угол, масштаб и площадь изображенных объектов.
Приложение позволяет просматривать чертежи в двухмерном, трехмерном, реалистичном и скрытом отображении. Есть возможность ознакомится со слоями по отдельности.
Режим редактирования содержит функции для добавления стрелок, текста, изображений, аудио, сносок, прямоугольников и эллипсов. В утилите можно формировать объект с помощью полилиний, отрезков, дуг, интеллектуального пера и других инструментов по аналогии с программой AutoCAD. Доступно отключение одного или нескольких слоев, а также просмотр всего списка.
Работа с файлами
Приложение позволяет импортировать чертежи в формате CAD, сохраняя исходные шрифты и условные обозначения.
Созданные работы можно выгружать в облачное хранилище. Размер выполняемых чертежей не ограничен, но влияет на скорость работы смартфона. Приложение поддерживает экспорт в различных форматах, среди которых: JPG, PDF, PNG и BMP. При конвертации можно настроить размер и ориентацию листа.
ТОП-11 лучших мобильных приложений для архитекторов и проектировщиков.
Другие тексты:
ARCHICAD в дизайне интерьеров, 27.02.2018
0 Проектная организация Генпроект подготовила обзор лучших, на её взгляд, приложений для iOS и Android, способных помочь архитекторам осмыслить и усовершенствовать свои проекты. Даже эпизодическое использование таких софт-помощников поможет работать продуктивнее и не упускать из виду важные идеи. Стоить заметить, что некоторые возможности открываются только с покупкой PRO-версии, цена которой может существенно отличаться от базовой.
BIMx от Graphisoft
(бесплатно для iOS и Android)
BIMx (Building Information Model eXplorer) это идеальное приложение для архитекторов, использующих ArchiCAD. Оно позволяет продемонстрировать проект или поделиться им с заказчиком, подрядчиками.
Приложение использует гипер-модель, которая в отличие от 3D-модели может содержать полный набор документации вашего проекта ArchiCAD: 2Dи 3D-виды, дополненные макетами и траекториями камеры (3D-содержимое удобно фильтруется). В двух словах – это интегрированный в 3D-модель здания лист чертежа, с возможностью отображения дополнительной информации о каждом компоненте объекте. Доступна PRO-версия.
Это приложение идеально подходит для цифрового рисования эскизов. Sketchbook предлагает гораздо больший функционал, чем карандаши и краски. А галерея приложения поможет легко организовать свои художественные замыслы.
Shapr3D – приложение, предназначенное только для iPad Pro и используется с ApplePencil. Если у вас есть и то, и другое, а большая часть рабочего дня проходит в разъездах – вам стоит ознакомиться с этим приложением. Прекрасно оформленный интерфейс, новая технология определения силы нажатия и точность ApplePencil создают все необходимые условия для продуктивной работы. Приложение поддерживает форматы STEP, IGES, STL.
Получившее особое признание специалистов приложение Paper от 53 является одной из лучших программ для создания набросков, выделения чего-либо на фотографии, рисования эскизов или даже создания настоящих произведений искусства. Paper – одно из наиболее перспективных и качественно сделанных приложений. Разработчики также создали свой собственный карандаш (стилус) для пользования приложением, с тонким аккумулятором от USB внутри; стилус можно купить на сайте за $59,95. Жаль только, что несмотря на просьбы поклонников, версию для Android авторы делать пока не спешат.
Инструкция по инструментам Paper:
Morpholio Trace дает возможность пользователям мгновенно рисовать поверх импортированных изображений или фоновых шаблонов, делать пометки, оставлять комментарии и записывать идеи, возникающие спонтанно. Morpholio Trace идеально подходит для архитекторов, дизайнеров, фотографов, художников – для всех, кто часто использует изображения в повседневности. Эта уникальная программа позволяет легко зарисовывать идеи, общаться с помощью картинок, размечать существующие чертежи. Она легко интегрируется в смартфон и становится незаменимым помощником.
На протяжении более чем 50 лет Pantone был международным языком цвета. Это приложение дает полный доступ ко всем каталогу Pantone, который включает в себя более 13 000 цветов, позволяя легко создавать и одновременно использовать несколько цветовых палитр. Пользователь может взять любой цвет из фотографии и привязать его к ближайшему цвету Pantone для дальнейшего применения.
PadCAD предназначен для небольших проектов, таких как пристройка к индивидуальному дому, обзор участка или реконструкция простого объекта. Любой пользователь может производить простые и четкие CAD-чертежи и, при необходимости, экспортировать их в профессиональное программное обеспечение. Это идеальная отправная точка для многих проектов.
MagicPlan позволяет быстро создавать качественные поэтажные планы и проводить оценку предстоящих работ. Приложение устанавливает размеры комнат и рисует план этажа, используя камеру обычного смартфона или планшета. Добавьте объекты, комментарии, фотографии или другие атрибуты, чтобы создать полноценный отчет или основание для подсчета сметы. Любой пользователь способен создать план помещения всего за несколько минут.
Concept от Fast and Epp
(бесплатно для iOS)
Concept – полезный инструмент для архитекторов. Он предназначен для первой визуализации идей, до того, как они будут воплощены на бумаге или в CAD. Это персональный инженер-конструктор у вас под рукой. Приложение работает как карманный калькулятор, использующий типичную глубину пролета для стальных, бетонных и деревянных элементов. Оно делает краткий обзор размеров конструкций, которые потребует определенная архитектурная идея.
И еще одно приложение (бонус +) в нашем обзоре для тех, кто любит работать руками:
iHandy Carpenter
(iOS 149 руб.; Android бесплатно)
DWG FastView — поддерживает работу с 2D/3D чертежами в формате DWG и позволяет открывать проекты, созданные в GstarCAD, Auto CAD и другие платформы САПР. Можно просматривать чертежи в других форматах — dxf и пр. Вот 5 основных преимуществ программы:
Читайте также: