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

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

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

.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 всего за пару часов, а вот прочие «мелочи» потребовали значительно больше времени.

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

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

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

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

Одной из первых проблем оказалось то, что 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 является бесплатной версией программы и позволяет:

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

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

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

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

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

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

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

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

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

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

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

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

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

eDrawings Publisher

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

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • Edraw max что это за программа
  • edraw max что за программа
  • edpuzzle что это за программа
  • edius что это за программа
  • Editplus это что за программа

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии