Внешний транслятор 3D моделей КОМПАС в формат парасолид

Автор AndryD, 16.12.09, 15:51:17

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

AndryD

16.12.09, 15:51:17 Последнее редактирование: 16.12.09, 21:38:42 от AndryD
Стоит задача облегчить жизнь для наших технологов, которые работают в SURFCAM используя 3D модели КОМПАС, создают управляющие программы для станков с ЧПУ, что б они «напрямую» могли кликнуть по файлу 3D модели и открыть ее в SURFCAM.
В SURFCAM есть возможность прикрутить свой внешний модуль для открытия сторонних файлов, посему есть ли в КОМПАСе внешний модуль который по указанным параметрам без лишних вопросов перегонит свою модель в формат парасолид? В дальнейшем я ее в своем модуле загоню в SURFCAM.

AkulaBig

Просто в "сохранить как.." выбираешь сохранить в парасолиде и все. Компас читает/сохраняет все популярные форматы.

AndryD

AkulaBig, спасибо  :) но задача стоит открыть именно на прямую, без "ручного" сохранения в промежуточный формат! Вопрос остается открытым

AkulaBig

Понял.  Раз модуль имеется, значит наверняка его можно использовать и нестандартно. Для этого надо обратиться в раздел программирование и искать совета/делать предложения тамошним гуру.

Zarathustra

Я видел как это реализуется в APM Studio FEM. Там для пользователя выглядит все таким образом как будто он открывает файл Компаса непосредственно в APM Studio. Но если посмотреть в Диспетчер задач то видно что он незаметно открывает Компас и использует его для конвертации в свой формат, точнее в формат STL кажется. Окно Компаса при этом естественно не отображается. Может эта идея вам поможет. Хотя работает это дело не очень быстро.


chelkar

Нужно написать для КОМПАСа внешний контроллер. В SDK есть пример, kscontr, посмотрите под нужную среду разработки.
Из контроллера командуете КОМПАСу - открыть файл "такой-то" и далее Сохранить как parasolid. После этого "подбираете" получившийся файл.
Контроллером может быть как раз внешний модуль, который написан для SURFCAM.

AndryD

chelkar, спасибо дельный совет, попробовал почти получилось...
но задача сложнее чем на первый взгляд оказалась, у наших технологов не у всех стоит КОМПАС, а внешний контроллер без самого КОМПАСА ясное дело работать не будет. Посему нужен внешний модуль от КОМПАСа, ломаю голову дальше...
Коллеги помогите!

PS

Уважаемый chelkar, подсказал Вам правильное и единственное решение вашей задачи. Что бы сделать так как хотите Вы, необходимо знать формат файлов Компаса, что в принципе не реально. Разработчики не раскрывают форматы файлов.

AndryD

Я не претендую на секреты формата файлов Компаса, мне б dll-чку для конвертации. Нашел в SDK C#, CONVERTLIBINTERFACES.dll, там как раз интерфейс для конвертации файлов, только как реализовать сей интерфейс не могу понять.

chelkar

Без КОМПАСа не получится.
Можно конвертацию делать на отдельном компьютере, там где есть установка КОМПАСа и лицензия.
Тогда связка будет примерно такая.
SURFCAM с плагином стучится, ну например по COM'у на удаленную машину. Там есть тот самый COM-сервер. Он принимает запрос, с файлом. С помощью КОМПАСа конвертирует. Ну и отдает сконвертированный файл обратно.
Если запросов будет много надо чего-то с очередью придумать.
Сложнее конечно, проще поставить сколько надо КОМПАСов и после конвертации выгружать КОМПАС, освобождая лицензию.
Лицензия должна быть сетевая, многопользовательская.
А еще лучше толкнуть SURFCAM. Пусть уже и читает файлы КОМПАСа. На уровне разработчиков возможностей поболее будет. Договорятся.

stgatilov

Прошу прощения за оживление темы.
Я столкнулся с аналогичной проблемой: нужно программно сконвертировать формат Компаса в формат Парасолида или STEP.

Я открываю документ при помощи ksDocument3D::Open. Дальше сохраняю при помощи ksDocument3D::SaveAs. При этом имя файла задаю с расширением ".X_B" или ".STEP". Судя по всему, Компас ничего не конвертирует, а просто пересохраняет в эти файлы модель в своём родном формате. В частности, содержимое получаемых файлов X_B и STEP полностью совпадает.

Не могу найти в документации, как сделать экспорт в STEP / X_B.
Буду благодарен подсказке.