edrawings что это за программа

Что не так с 3D PDF и eDrawings. Как мы заменили просмотрщик 3D-моделей в своем приложении

Это рассказ о том, как мы встроили новый просмотрщик C3D Viewer в систему управления жизненным циклом изделия ЛОЦМАН:PLM, почему мы это сделали, и что у нас получилось.

edrawings что это за программа. Смотреть фото edrawings что это за программа. Смотреть картинку edrawings что это за программа. Картинка про edrawings что это за программа. Фото edrawings что это за программа

.1 Что такое «вторичное представление»

Любое достойное упоминания PLM-решение включает в себя механизмы/подсистему PDM (управление данными об изделии).

В базе данных PDM-системы хранятся документы и файлы, созданные в различных САПР: 3D-модели, чертежи, спецификации и расчеты.

Для того, чтобы содержание этих документов было доступно тем пользователям, у которых на рабочем месте не установлены соответствующие приложения САПР (а они бывают о-о-очень дорогими), PDM-система формирует «вторичное представление документа» — копию документа в каком-то «нейтральном» общедоступном формате.

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

.2 Вторичное представление в ЛОЦМАН:PLM

В разное время в качестве «вторичного представления» 3D-моделей в ЛОЦМАН:PLM поочередно выступали VRML, eDrawings, 3D PDF.

Про VRML я говорить не буду – ошибки молодости… с кем не бывает.

eDrawings был неплох, но за разработку адаптера к нему и услуги поддержки приходилось платить весьма нескромные деньги. К тому же начиная с 2014 года eDrawings стал доступен только в версии x64. Мы при всем желании не могли больше встраивать его в наш 32bit клиент ЛОЦМАН:PLM как ActiveX.

3D PDF поначалу казался подарком — бесплатный, уже установлен на каждом первом компьютере, стандарт de facto в нашем рукаве галактики, плюс готовая библиотека ActiveX, пригодная для встраивания, но, со временем, нам стала открываться его темная сторона:

.3 Знакомство с C3D Viewer

Результаты исследования вдохновили нас на запуск проекта, итогом которого должно было стать встраивание компонента C3D Viewer в качестве средства просмотра и аннотирования вторичного представления 3D-моделей в ЛОЦМАН:PLM.

Интерес к проекту был взаимным, что наилучшим образом сказалось на качестве взаимодействия с разработчиками и скорости решения различных проблем.
По нашим запросам команда C3D Labs разработала функционал аннотирования 3D моделей, обеспечила локализацию на русский язык.

Ряд доработок API C3D Viewer был обусловлен спецификой применения компонента в нашем приложении. В результате в API появились новые методы и события, позволившие реализовать собственный механизм индикации прогресса загрузки модели и экстренного прерывания/отмены загрузки.

И раз уж я упоминал о дороговизне eDrawings, то справедливости ради надо сказать, что C3D Viewer тоже не бесплатен для нас, но условия его использования гораздо более демократичные.

.4 Встраивание

В начале следует дать краткое техническое описание системы, в которую нам предстояло встроить C3D Viewer, – клиентского приложения ЛОЦМАН:PLM.

Это десктопное Win32 приложение с MDI интерфейсом, написанное на Delphi 2006.
Компоновка дочерних MDI окон — динамическая, строится на основе описания набора взаимосвязанных «панелей», каждая из которых представляет некоторый аспект информации об указанном объекте.
Программный компонент C3D Viewer – это ActiveX COM Library (C++, Qt).

API простой и компактный, ключевые операции — асинхронные, выполняются в отдельном потоке, поэтому взаимодействие с компонентом основано на вызове методов и обработке событий.

Прототип модуля просмотра вторичного представления удалось собрать и встроить в ЛОЦМАН:PLM всего за пару часов, а вот прочие «мелочи» потребовали значительно больше времени.

Мы реализовали собственные панели инструментов, контекстное меню, панель, отображающую структуру модели, и панель со списком аннотаций — в нужном нам объеме и виде, в соответствии с общей визуальной стилистикой интерфейса приложения.

Мы применяем компонент в нескольких режимах работы с вторичным преставлением: встроенный просмотр, полноэкранный просмотр и режим аннотирования.

edrawings что это за программа. Смотреть фото edrawings что это за программа. Смотреть картинку edrawings что это за программа. Картинка про edrawings что это за программа. Фото edrawings что это за программа

edrawings что это за программа. Смотреть фото edrawings что это за программа. Смотреть картинку edrawings что это за программа. Картинка про edrawings что это за программа. Фото edrawings что это за программа

Какие были сложности:

Импорт описания библиотеки типов

Одной из первых проблем оказалось то, что Delphi 2006 некорректно импортирует описание библиотеки типов из ActiveX C3D Viewer, которая написана на C++ c Qt.

Выкрутились, применив утилиту импорта библиотеки типов Delphi 2010, которая, впрочем, также давала не 100% правильный результат — пришлось все-таки исправить десяток строк «вручную».

Трудности «усыновления»

В нашем приложении пользователю доступен WYSIWYG редактор компоновки, который позволяет добавлять и перемещать «панели» с информацией. На одной их таких панелей располагается и ActiveX C3D Viewer.

Оказалось, что при перемещении панели с ActiveX C3D Viewer в другой «контейнер» происходит его частичное «разрушение».

Выяснили, что причина — в специфической реализации механизма смены родительского окна VCL Delphi. Если коротко, то в итоге происходит вызов winapi функции DestroyWindow ActiveX C3D Viewer, после чего тот начинает считать себя «убитым», а Delphi тем временем продолжает считать его «живым».

Эту проблему мы обошли, поместив ActiveX в специальный контейнер, который умеет определять, что происходит смена родительского окна, и в этот момент корректно освобождает ActiveX и создает его заново.

Проблемы с памятью

У нас 32х битное приложение, и «Out of memory» никто не отменял. Возможность появления огромных сборок в условиях ограниченного 2 ГБ объема оперативной памяти неизбежно привела к тому, что проблема стала острее.

Особую остроту придавало то, что если память заканчивалась в процессе загрузки модели в C3D Viewer, то это приводило к неожиданному аварийному завершению всего приложения.
Причину определить удалось не сразу. Пришлось разработать собственный PostMortem Debugger на основе sampling profiler-а, который восстанавливал стек c помощью отладочной информации JDBG.

Поняв причину, мы начали с того, что увеличили лимит доступной оперативной памяти до 3.5 ГБ, добавив флаг IMAGE_FILE_LARGE_ADDRESS_AWARE в заголовок EXE, несколько сократили потребление памяти в своем приложении, но результат не радовал.

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

Чтобы снизить вероятность проявления проблем, связанных с нехваткой памяти, мы встроили в приложение механизм контроля и оптимизации использования памяти. При достижении определенного лимита неактивные в данный момент MDI окна погружаются в «спящий режим», высвобождая тем самым ресурсы.

Проблемы с виртуальными машинами

C3D Viewer требует для отображения OGL версии не менее 2.1. Мы попробовали разные виртуальные машины, вот некоторая информация об этом:

Hyper-V — C3D Viewer не работает.
Virtual Box 4.1.44 + Window 7 — C3D Viewer работает.
VMWare Player v14 (Accelerate 3D Graphics + OGL v3 в настройках) — C3D Viewer работает.

В итоге активная фаза разработки и отладки нового просмотрщика заняла около двух месяцев. Еще две-три недели мы затратили на устранение ошибок.

.5 Что впереди

В следующих версиях C3D Viewer мы надеемся увидеть функции динамического сечения, измерения моделей, новые возможности работы с PMI, конфигурациями моделей в связке с КОМПАС-3D и ЛОЦМАН:PLM.

Для знакомства с C3D Viewer есть бесплатная версия (скачать здесь). Она не включает API и некоторые другие функции. Версию для встраивания можно запросить на тестирование у разработчиков C3D Labs.

edrawings что это за программа. Смотреть фото edrawings что это за программа. Смотреть картинку edrawings что это за программа. Картинка про edrawings что это за программа. Фото edrawings что это за программа Сергей Ершов, руководитель группы прикладных АРМ, АСКОН.

Источник

eDrawings

edrawings что это за программа. Смотреть фото edrawings что это за программа. Смотреть картинку edrawings что это за программа. Картинка про edrawings что это за программа. Фото edrawings что это за программа

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

Поставка eDrawings осуществляется в трех вариантах:

eDrawings является бесплатной версией программы и позволяет:

Просматривать и выводить на печать электронные чертежи SolidWorks, AutoCAD и Pro/ENGINEER

Управлять визуальным представлением сборки: скрывать или отображать компоненты, управлять их прозрачностью

Открывать для просмотра и печати документы с расширениями dwg и dxf

Просматривать результаты прочностных расчетов Simulation

Функция красного карандаша

Измерение и образмеривание деталей и сборок.

Сохранение в исполняемом файле чертежей и сборок, поддерживающих возможность добавления комментариев без необходимости установки у проверяющего версии eDrawings Professional

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

Возможность отображения и управления несколькими конфигурациями изделия

Отображение сборок в разнесенном виде

Сохранение истории обсуждения изменений в чертеже в виде дерева

Изменение шрифта и цвета текста

Защита файлов, сохраненных в формате eDrawings, паролем

eDrawings Publisher

Функции eDrawings Professional не ограничиваются работой с файлами SolidWorks, AutoCAD и Pro/ENGINEER. Если на предприятии используется какая-либо другая САПР, то установка соответствующей конфигурации eDrawings Publisher позволит создавать файлы eDrawings непосредственно из неё.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *