Используйте Teigha (OpenDesign) для манипулирования файлами CAD DWG
Говоря об этом, я на самом деле чувствую, что это требование довольно странное. Java работает с САПР. Ну, одна из наиболее полных библиотек классов — jdwglib, но я не нашел ее, и у компании, как оказалось, есть учетная запись OpenDesign. Поэтому требуется Teigha. Чтобы выполнить операцию, я столкнулся с довольно многими проблемами в этот период, я их кратко изложу здесь.
0x01 Сначала должна быть Тейга
На домашней странице openDesign вы можете увидеть ссылку на FreeTrial, кажется, это пробная версия, я ее закрываю (это необходимо войти в систему для загрузки), чтобы выбрать версию Java, моя система 64-битная, по оценкам, большинство Все новые компьютеры 64-битные, поэтому следует использовать версию amd64.
Следующим шагом является его использование. Загрузите локальную динамическую библиотеку через system.loadLibrary, и затем вы сможете использовать эти API-интерфейсы CAD, как и другие библиотеки Java.
Teigha Revision Control for dwg
System.loadLibrary(«TeighaJavaCore»); System.loadLibrary(«TeighaJavaDwg»);
Тогда что? Это первая проблема. Мы получим исключение для ссылки на локальную библиотеку. Windows сообщит вам, что зависимая библиотека не может быть найдена. В ответном сообщении под Mac будет сказано, что файл tx не найден.
Это связано с тем, что загруженная динамическая библиотека является неполной. Существует место, где вы можете найти ее только после входа в систему. В этом месте вы можете выбрать различные версии и соответствующие операционные системы. Для версии Java требуется поддержка ядра и рисования. На странице до того, как мы скачали, выше приведена структурная схема.
вот так.
Что ж, я нашел центр участников OpenDesign, загрузил соответствующий файл, а затем снова запустил его, хорошо, я все еще не могу найти зависимую библиотеку. Где мы должны поместить эти зависимые библиотеки, чтобы найти их? Это связано с системой.
Систему Windows можно поставить в переменную окружения PATH, Linux — это LD_LIBRARY_PATH, а для mac я забыл. Однако есть место, которое можно найти независимо от системы, то есть корневой каталог проекта и уровень папки src. Если вы не боитесь большего количества файлов, вы можете поместить его прямо там.
Пока что Teigha может загружаться нормально.
0x02 Тогда JVM потерпел крах
Это так волшебно. У Teigha есть два метода инициализации, один сообщит об ошибке, другой — непосредственно Crash, решение также очень легко решить, активируйте его, он сгенерирует активированный класс Java, вы можете немедленно решить эту проблему.
Нам нужно только унаследовать его класс RxSystemServicesImpl, а затем вызвать метод Global активации в конструкторе класса, передать два поля класса активации и затем инициализировать через этот новый класс, проблем не будет.
ЖКХак: что это и почему важно принять участие
0x03 Столько ошибок
При работе с файлом САПР мы обнаружим, что этот API-интерфейс-призрак просто написан, точно так же, как он был скопирован с других языков. Согласно официальной демонстрации, я быстро прочитал файл САПР и обнаружил, что Пока его содержимое модифицировано, появится OdError, эти исключения — только одна ОШИБКА, тип безо всякой причины, ха-ха-ха.
В этот раз я пересмотрел пример, но обнаружил, что в safeOpenObject есть OpenMode, что это? При чтении этого объекта вы можете установить его, записав его как запись с целью чтения.
Я читал файл, как это раньше, но если я его установлю, будет ошибка
// читаем файл OdDbDatabase db = appServices .readFile(«C:\Users\123\Downloads\architectural_example-imperial.dwg»); OdDbLayerTable layers = OdDbLayerTable.cast(db.getLayerTableId().safeOpenObject());
// читаем файл OdDbDatabase db = appServices .readFile(«C:\Users\123\Downloads\architectural_example-imperial.dwg»); OdDbLayerTable layers = OdDbLayerTable.cast(db.getLayerTableId() .safeOpenObject(OpenMode.kForWrite));
Итак, вы сделали этот шаг. Теперь вы должны написать файл. Сам класс OdDbDataBase содержит метод для записи файлов: у метода writeFile есть некоторые перегрузки. Я использую это здесь:
public void writeFile(String fileName, SaveType type, DwgVersion version);
Это путь к файлу (включая имя файла), тип файла (конечно, dwg) и версия.
Класс OdDbDataBase сам содержит метод версии, который может возвращать текущую версию, но учтите, что если вам нужно использовать AutoCAD для просмотра, а версия файла относительно высока, вам нужно установить его самостоятельно. Сначала распечатайте версию метода version, а затем выберите версию, меньшую, чем у него, в перечислении DwgVersion. После завершения выполнения вы сможете увидеть вывод нового файла в указанном месте.
аппендикс
Несколько адресов веб-сайта Teigha, упомянутых ранее:
Источник: russianblogs.com
C3D Modeler для Teigha: большое обновление, первые пользователи и бесплатная версия для образовательных учреждений
На ежегодной конференции Альянса по открытому проектированию ODA в Праге компания C3D Labs, дочернее подразделение группы АСКОН (http://ascon.ru/) и резидент ИТ-кластера «Сколково» (http://sk.ru/foundation/itc/) провела собственную сессию, в рамках которой рассказала гостям о текущем состоянии и планах по развитию C3D Modeler for Teigha (http://c3dlabs.com/ru/products/c3d-modeler-for-teigha/) — легкого ядра твердотельного моделирования для платформы Teigha. Зал, выделенный для сессии, оказался целиком заполнен, что подтверждает большой интерес разработчиков программного обеспечения к инструментам 3D-моделирования, доступным через платформу Teigha.
Особое внимание в докладах C3D Labs было отведено выпуску масштабного обновления ядра, которое состоялось в конце августа и уже доступно для всех пользователей новой версии Teigha 4.3.1. В обновлении учтены пожелания первых заказчиков и проведена большая работа по повышению производительности. Все улучшения проводились в тесном контакте со специалистами ODA.
Выступление директора C3D Labs Олега Зыкова на конференции ODA
О платформе Teigha
Платформа Teigha предоставляет разработчикам программного обеспечения инструментарий для создания различных инженерных приложений, включая полноценные CADсистемы, программы для автоматизации и визуализации общего назначения, а также решения по управлению доступом к пользовательским данным и их редактированию.
Teigha® поддерживает работу с файлами DWG, DGN, PRC, RVT, RFA и PDF на уровне программного обеспечения, а также делает возможным импорт и экспорт данных из многих других форматов. Решение доступно для использования на всех основных настольных, серверных и мобильных платформах. Поддерживаются такие языки программирования, как C++, .NET и Java.
Разработчиком Teigha является Альянс по открытому проектированию (www.opendesign.com).
Teigha — торговая марка Open Design Alliance. Все другие торговые марки — собственность их правообладателей.
Александр Спиваков, руководитель группы C3D Converter и ведущий разработчик C3D Modeler для Teigha: «В наших дальнейших планах можно выделить четыре основные задачи — это расширение функциональных возможностей в рамках API Teigha Modeler, увеличение производительности, повышение общего качества интеграции между C3D Modeler и платформой Teigha, а также поддержание максимально быстрой реакции на запросы пользователей. В целом, мы готовы наращивать функциональность до такого уровня, какой потребуется нашим заказчикам, и не исключено, что для этого придется пересмотреть рамки возможностей платформы и самого геометрического ядра».
Слушатели докладов, посвященных ядру C3D Modeler for Teigha
Одним из первых пользователей C3D Modeler for Teigha стала турецкая компания MKA Software and Engineering Solutions (https://www.mkasteel.com/). Представитель организации поделился стоящими перед разработчиками задачами и описал процесс выбора 3Dядра для программного обеспечения MkaSteel.
Александр Спиваков рассказывает об интеграции C3D Modeler с платформой Teigha
Возможности разных программных продуктов от C3D Labs
Али Эрол, ведущий разработчик в MKA Software and Engineering Solutions: «Мы разрабатываем приложение для проектирования металлических каркасов зданий и сооружений. Последующая передача металлоконструкций в производство требует наличия очень точной и детализированной параметрической 3Dмодели, на основе которой формируются чертежи. Для построения таких моделей нужно использовать быстрое и надежное 3Dядро с возможностями формирования проекций и экспорта в DWG. Мы изучили OpenCASCADE и полный комплект C3D Toolkit, но в итоге остановились на связке платформы Teigha (для работы с DWG) и C3D Modeler (для твердотельного моделирования). Это решение устроило нас по всем параметрам».
Али Эрол рассказывает о выборе ядра для системы MkaSteel
Программное обеспечение MkaSteel для проектирования металлических каркасов зданий и сооружений
В целях дальнейшей популяризации C3D Modeler for Teigha были отменены лицензионные платежи для образовательных учреждений, являющихся участниками Альянса по открытому проектированию. Для них программный продукт теперь становится бесплатным. Одновременно до 1000 долл. в год снижена стоимость для некоммерческого использования. Как и прежде, C3D Modeler for Teigha доступен для тестирования и покупки в один клик на портале ODA Marketplace, что делает российское ядро понастоящему уникальным предложением для участников альянса.
Условия лицензирования C3D Modeler for Teigha в зависимости от уровня членства в ODA (цены указаны в долларах США)
Запросить тестовую лицензию C3D Modeler for Teigha можно на внутреннем портале ODA Marketplace (доступно для участников альянса): https://www.opendesign.com/members/marketplace/c3dmodelerteigha.
Источник: sapr.ru
Teigha
Teigha — название линейки продуктов (ранее известной под именем DWGdirect), разрабатываемых Альянсом по Открытому Проектированию (ODA) с целью предоставления доступа к ряду проприетарных форматов файлов и разработки приложений технической графики.
Ребрендинг названий продуктов, случившийся в 2010 г., стал результатом судебного спора с Autodesk относительно торговой марки DWG, в результате чего Альянс отказался от прежнего имени (DWGdirect).
Библиотеки Teigha через программные интерфейсы C++ и .NET обеспечивают доступ к функциям, реализующим:
- чтение и запись файлов в форматах Supported DWG, DXF, и BDXF
- чтение и запись файлов в формате DGN
- рендеринг чертежей с использованием GDI, OpenGL и DirectX
- восстановление поврежденных .dwg файлов
- редактирование и манипулирование CAD-данными
- экспорт данных в форматы SVG, PDF, DWF, BMP, STL, DAE
- импорт данных из файлов DWF/DAE/DGN в объекты базы данных .dwg
- поддержка собственных объектов
- поддержка внешних файлов, таких как файлы шрифтов TTF/SHX, типов линий LIN/RSC и видов штриховки PAT
- перевычисление размеров геометрии в заивисимости от настроек
- поддержка транзакций и механизма undo/redo для данных файла .dwg
- поддержка частичной загрузки .dwg-файла
- настраиваемое управление выделением и освобождением оперативной памяти
- поддержка данных ACIS и Parasolid, включая их рендеринг в каркасном и затененном режимах, а также доступ к граничному представлению твердых тел
- реализация собственных комманд
- интеграция со сторонними компонентами — включая геометрический решатель LGS
Источник: plmpedia.ru