3d view pdf что это
Что не так с 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.
Сергей Ершов, руководитель группы прикладных АРМ, АСКОН.
Включение 3D-содержимого в документе PDF
Динамический характер 3D создает потенциальную уязвимость в системе безопасности. Поэтому автоматическое воспроизведение 3D-содержимого в документах PDF отключено по умолчанию.
Включение воспроизведения 3D-содержимого в документе PDF
Если открыть документ PDF с 3D-содержимым, вверху отображается желтая строка с сообщением «3D-содержимое отключено. Включите эту функцию, если вы доверяете этому документу.»
Включение 3D-содержимого в текущем документе:
Нажмите кнопку «Параметры» и выберите один из вариантов:
Включение 3D-содержимого для всех документов:
Включение 3D-содержимого для доверенных документов
3D-содержимое интегрировано в Trust Framework таким образом, что 3D-содержимое доверенных документов можно просматривать, даже если функция 3D отключена. Используйте эту функцию следующим образом:
Если он не входит в число доверенных ресурсов, появляется желтая строка с сообщением «3D-содержимое отключено. Включите эту функцию, если вы доверяете этому документу.» Нажав кнопку «Параметры», можно получить доступ к параметрам «Доверять этому документу только сейчас» и «Доверять этому документу всегда» для текущего документа.
Специальная конфигурация для ИТ-отдела предприятия
ИТ-отдел предприятия может настроить параметры пользователей в папке HKCU\Software\Adobe\Acrobat Reader\ \3D\bEnable3DContent. ИТ-отдел предприятия может отключить и заблокировать рендеринг 3D-содержимого, чтобы пользователи не смогли изменять настройки в папке HKLM\SOFTWARE\Policies\Adobe\(название продукта)\(версия)\FeatureLockDown\bEnable3D.
Displaying 3D models in PDFs
某些 Creative Cloud 应用程序、服务和功能在中国不可用。
In Acrobat, you can view and interact with high-quality 3D content created in professional 3D CAD or 3D modeling programs and embedded in PDFs. For example, you can hide and show parts of a 3D model, remove a cover to look inside, and turn parts around as if holding them in your hands.
A 3D model initially appears as a two-dimensional preview image. Clicking the 3D model with the Hand or Select tool enables (or activates) the model, opens the 3D toolbar, and plays any animation.
Enable playing of 3D content in PDF
To enable 3D content in the current document:
Click the Options button and then select an appropriate option:
To enable 3D content permanently:
3D toolbar overview
The 3D toolbar appears after you click the 3D model with the Hand tool. This action activates the 3D model and plays animations that are set to play when the file is enabled. The 3D toolbar always appears in the area above the upper-left corner of the 3D model and cannot be moved. A small arrow appears to the right of the Rotate tool, which you can click to either hide or expand the toolbar.
You can use the 3D toolbar to zoom in and out, rotate, and pan across the object. Use the Model Tree to hide or isolate parts, or make parts transparent.
You manipulate a 3D model by selecting and dragging various 3D navigation tools. When you navigate in 3D, it helps to think of it as viewing the stationary 3D model from a camera’s perspective. You can rotate, pan (move up, down, or side-to-side), and zoom in or out.
3D navigation tools
Turns 3D objects around relative to the screen. How the objects move depends on the starting view, where you start dragging, and the direction in which you drag.
You can also use the Hand tool to rotate an object. Ensure that Enable 3D Selection For The Hand Tool is selected in the 3D panel of the Preferences dialog box.
Turns a 3D model in parallel to two fixed axes in the 3D model, the x-axis and the z-axis.
Moves the model vertically and horizontally only. You can also pan with the Hand tool: Ctrl-drag.
Moves you toward, or away from, objects in the scene when you drag vertically. You can also zoom with the Hand tool by holding down Shift as you drag.
Pivots horizontally around the scene when you drag horizontally. Moves forward or backward in the scene when you drag vertically; maintains a constant elevation level, regardless of how you drag. The Walk tool is especially useful for architectural 3D models. To change the walking speed, change the default display units in the Preferences (3D).
The Walk tool is available when you select the Preferences setting that consolidates tools or when you right-click the 3D model and choose Tools > Walk.
Navigates through a model while maintaining the surface orientation. Right-click and drag inside the 3D window. The Fly tool moves more slowly the closer you move toward an object. Drag the pointer right or left to turn.
To rotate the camera view, click the left mouse button inside the 3D window and drag to turn the camera view. To return to the starting camera direction, move the mouse back to the initial click point.
Use the mouse scroll wheel to move rapidly backward and forward along the camera view direction. This functionality is useful if you get lost within a model or fly into the surface.
Defines the camera angle, alignment, and other properties that define the lens through which a 3D model is viewed. Camera properties are components of views but are set independently.
3D Measurement Tool
Measures part sizes and distances in the 3D model.
Отображение 3D-моделей в файлах PDF
В Acrobat можно просматривать и управлять высококачественным 3D-содержимым, созданным при помощи трехмерных САПР или программ 3D-моделирования и встроенным в документ PDF. Например, можно скрывать и отображать части 3D-модели, снимать крышку, чтобы заглянуть внутрь, и поворачивать элементы как будто держа их в руках.
Первоначально 3D-модель отображается в виде двухмерного изображения. Модель можно активировать, щелкнув ее инструментом «Рука» или инструментом «Выделение»; при этом открывается панель инструментов «3D» и воспроизводится анимация.
A. Дерево моделей B. Панель инструментов «3D» C. 3D-объект
Включение воспроизведения 3D-содержимого в документе PDF
Если открыть документ PDF с 3D-содержимым, вверху отображается желтая строка с сообщением «3D-содержимое отключено. Включите эту функцию, если вы доверяете этому документу.»
Включение 3D-содержимого в текущем документе:
Нажмите кнопку «Параметры» и выберите один из вариантов:
Включение 3D-содержимого для всех документов:
Дополнительные сведения представлены на странице Включение 3D-содержимого в документе PDF.
Обзор панели инструментов «3D»
Панель инструментов «3D» появляется при щелчке на 3D-модели инструментом «Рука». Это действие активирует 3D-модель и воспроизводит анимации, если их воспроизведение задано при активации файла. Панель инструментов «3D» всегда появляется в области, расположенной в верхнем левом углу 3D-модели, при этом ее невозможно переместить в другое место. Справа от инструмента «Поворот» появится стрелка, которую нужно нажать для того, чтобы скрыть или развернуть панель инструментов.
Можно манипулировать 3D-моделью, выбирая и перетаскивая различные инструменты 3D-навигации. Во время 3D-навигации удобно представить себе, что вы наблюдаете стационарную 3D-модель с помощью камеры. Ее можно поворачивать, просматривать панорамно (перемещаться вверх, вниз и в стороны), а также приближать и отдалять изображение.
Инструменты 3D-навигации
Поворачивает 3D-объекты относительно экрана. Способ перемещения объектов зависит от начального вида, места начала перетаскивания и направления перетаскивания.
Для поворота объекта можно также использовать инструмент «Рука». Убедитесь, что на панели «3D» диалогового окна «Установки» выбрано «Включить 3D-выделение инструментом «Рука»».
Поворачивает 3D-модель параллельно по двум фиксированным осям модели, оси x и оси z.
Позволяет перемещать модель только вертикально или горизонтально. Выполнять панорамирование можно также используя инструмент «Рука»: удерживая клавишу Ctrl во время перетаскивания.
Перемещает камеру ближе или дальше от отображаемого объекта. Можно также приближаться или удаляться от объекта, используя инструмент «Рука», удерживая клавишу Shift во время перетаскивания.
Вращается горизонтально вокруг представления при горизонтальном перемещении. Перемещается вперед или назад в представлении при вертикальном перемещении, поддерживает постоянный уровень независимо от способа перетаскивания. Инструмент «Обход» особенно полезен для архитектурных 3D-моделей. Для изменения скорости обхода необходимо изменить единицы измерения отображения в установках (3D).
Для использования инструмента «Обход» необходимо выбрать параметр «Установки», который объединяет инструменты, или правой кнопкой мыши щелкнуть 3D-модель и выбрать «Инструменты» > «Обход».
Перемещение по модели при сохранении ориентации поверхности. Нажмите правой кнопкой и перетащите указатель в 3D-окне. Инструмент «Появление» поддерживает снижение скорости с уменьшением расстояния до объекта. Перетащите указатель мыши вправо или влево для поворота.
Для поворота вида камеры щелкните левой кнопкой мыши внутри 3D-окна и перетащите указатель для поворота вида камеры. Для возврата к исходному положению камеры переместите мышь обратно в место начального щелчка.
Используйте колесо прокрутки для быстрого перемещения назад и вперед вдоль направления обзора камеры. Эта функция полезна, если вы потеряли ориентацию внутри модели или столкнулись с поверхностью.
Установка угла камеры, выравнивания и других свойств, определяющих тип линзы, через которую рассматривается 3D-модель. Свойства камеры являются составной частью видов, но устанавливаются отдельно.
Инструмент измерения 3D
Измеряет размеры частей и расстояния в 3D-модели.
Как сохранить, редактировать чертеж или 3D модель в формат PDF?
Что такое формат PDF?
Чертеж в формате PDF
Появлению формата предшествовало эссе сооснователя Adobe Криса Уорнока, написанное в 1990 году. В нем бизнесмен заявлял, что миру нужен открытый и удобный способ хранить и печатать документы. Формат в первую очередь предназначен для представления чертежей и полиграфической продукции в электронном виде, хотя его применение с учетом возможностей и темпов развития будет я думаю изменяться. На любой платформе для просмотра он будет выглядеть одинаково (кроссплатформенный стандарт): все шрифты, водяные знаки, гиперссылки и комментарии, векторные и растровые изображения, формы, сценарии на языке JavaScript, мультимедиа-вставки включая файлы SWF, 3D-графика (пример САПР файла 3D PDF) и другие типы элементов будут на прежних местах. Если отдельный файл JavaScript связан с 3D-моделью PDF, его можно активировать. Выберите файл JavaScript, который необходимо добавить, а затем щелкните Открыть. Возможность использования древовидных структурных закладок (outlines) делает управление более легким.
Интеграции в последних версия flash плеера позволила использовать в pdf документов и сложной флеш графики. Зачастую, в текстовых редакторах могут произойти внезапные съезды картинок или блоков с текстом, в PDF такого не произойдет. Особенная способность формата точно отображать содержимое документа ( без искажений ) в не зависимости от настроек пользовательского компьютера способствовала распространению и общепризнанности формата. То есть ваша презентация продукта или идеи будет выводиться на печать, воспроизводиться на проекторе с любого компьютера.
Значительное количество современного профессионального печатного оборудования имеет аппаратную поддержку формата PDF, что позволяет производить печать документов в данном формате без использования какого-либо программного обеспечения. Что очень удобно если вы работаете с заказчиками, например у которых нет специализированного программного обеспечения — ваш графический документ смогут открыть и напечатать в любой точке мира. Статус нового стандарта закрепило и то, что еще в 1993 году Adobe опубликовала полные спецификации PDF. Так другие компании и организации могли свободно его использовать. В 2007 году Adobe закрепила это сотрудничеством с Международной организацией по стандартизации. Она закрепила использование PDF международным стандартом. Иными словами, будущие поколения точно будут знать, как открыть и использовать такие файлы. Portable Document Format с 1 июля 2008 года является открытым стандартом ISO 32000. Множество дополнительных инструментов шифрования и цифровой подписи документов, обеспечивает надёжную защиту от несанкционированного просмотра и редактирования документов.
Как сохранить чертеж в формат PDF?
Традиционным способом создания PDF-документов является виртуальный принтер, то есть документ как таковой готовится в своей специализированной программе — графической программе или текстовом редакторе, САПР и т. д., а затем функцией «сохранить как» экспортируется в формат PDF для распространения в электронном виде, передачи в типографию и т. п.
При печати есть возможность сохранить любое количество листов в один документ (файл), либо разместить несколько страниц на одном листе.
Функция вставки трехмерных моделей в документ встроена в CAD программы SolidWorks, Autodesk Inventor и др.
Как редактировать чертеж в формат PDF?
Документы PDF с трехмерными моделями САПР можно редактировать (добавить, удалить) в платной версии Adobe Acrobat Pro DC. Редактировать модели можно только в 3D редакторах.
Как и всегда, если есть какие-то вопросы, мысли, дополнения и всё такое прочее, то добро пожаловать в комментарии к этой записи. Искренне надеюсь, что кому-то это пригодится.