Библиотека пакетного сохранения файлов компас 3d в различные форматы

Обновлено: 05.07.2024

В данной статье я попытаюсь доступно объяснить в какие форматы можно сохранить 3D модель детали в САПР КОМПАС 3D v19.

Ну собственно, вот, у нас имеется "деталь".

При сохранении программа нам предлагает множество форматов, в которые ее можно сохранить.

Начнем по порядку:

m3d - стандартный формат файла, содержащий в себе все операции создания модели, ее свойства и т. д.

a3d - формат сборки, если деталь сохранить в данном формате, то при использовании её при сборке изделия, компас будет считать это сборочной единицей.

t3d - тоже сборка, только технологическая, чем она отличается от обычной сборки в формате a3d я к сожалению пока сам не знаю

m3t - шаблон детали, в основном используется для того чтобы сделать так сказать "заготовку" документа или модели, найти подобные файлы можно в корневой папке программы ( в моем случае тут: C:\Program Files\ASCON\KOMPAS-3D v19\Templates)

stp или же step - если сохранить файл с данным расширением, то в последующем его можно будет открыть во многих САПР, AutoCAD, Solid Works и т.д., но дерево построения детали пропадет, и будет просто отображаться как "операция без истории".

igs или iges - то же самое что и stp или step только более старая версия.

sat - расшифровывается как Standard ACIS Text - стандартный текст ACIS, содержит описание геометрии 3D-модели в текстовом формате ASCII и может быть просмотрен в любом текстовом редакторе, разработан этот формат собственно для того же что и stp и igs - для обмена данными между другими САПР.

x_t / x_b / jt / c3d - то же самое применение что и stp , igs , и sat

stl - данный формат применяется при сохранении 3D моделей, используемых в дальнейшем для изготовления на ЧПУ станках или печати на 3D принтере.

vrl - очень старый формат, VRML - язык моделирования виртуальной реальности, использовался для создания трехмерных моделек на сайтах, в играх и т.д., сейчас если я не ошибаюсь используют DirectX.

bmp / gif / jpg / png / tif / tga / emf - ну тут рассказывать особо нечего, деталь сохранится как изображение, можно будет открыть графическим редактором.

pdf - думаю PDF формат тоже многие знают и тут рассказывать о его функционале собственно нечего)

На этом пожалуй я и закончу данную статью. Надеюсь информация была полезной. Будут еще статьи относящиеся САПР Компас 3D v19.
Подписывайся и узнаешь еще много нового о компасе и приемах работы в нем.

Продолжаем цикл статей по работе с API САПР КОМПАС-3D Сергея Норсеева, инженера-программиста АО «ВНИИ «Сигнал», автора книги «Разработка приложений под КОМПАС в Delphi». В качестве среды используется C++ Builder. В этом уроке поговорим о том, как сохранять документы.




Содержание цикла уроков «Работа с API КОМПАС-3D»


1. Основы
2. Оформление чертежа
3. Корректное подключение к КОМПАС
4. Основная надпись
5. Графические примитивы
6. Сохранение документа в различные форматы
7. Знакомство с настройками
8. Более сложные методы записи в основную надпись

Простое сохранение

Для сохранения графического документа используются методы ksSaveDocument и ksSaveDocumentEx интерфейса ksDocument2D. Начнем с первого, его прототип представлен ниже.


Единственный параметр метода – строка с полным именем файла, в который нужно сохранить документ. Если параметр filename содержит пустую строку, то документ сохраняется по пути заданному в свойстве filename интерфейса ksDocumentParam (кратко описывался в первой части цикла).

Учтите, что если файл с указанным именем уже существует, то КОМПАС перезапишет его.
В случае успеха метод ksSaveDocument возвращает значение true, а в случае ошибки – значение false.

Метод ksSaveDocumentEx похож на метод ksSaveDocument и, по сути, является его расширенной версией. Ниже приводится прототип метода ksSaveDocumentEx.


Как видно из прототипа по сравнению с методом ksSaveDocument в методе ksSaveDocumentEx добавился еще один параметр: признак того, в какой версии КОМПАС сохранять документ. У него всего три допустимых значения:

-1 –в предыдущую версию;
0 – в текущую версию;
1 – в версию 5.11.

Дополнительный параметр – единственное отличие метода ksSaveDocumentEx от метода ksSaveDocument. Вызов метода ksSaveDocumentEx с параметром version равным нулю, эквивалентен вызову метода ksSaveDocument.

Сохранение в формат DXF

Согласно Википедии: DXF (Drawing eXchange Format) – отрытый формат файлов для обмена графической информацией между приложениями САПР. КОМПАС поддерживает этот формат и позволяет нам сохранять документы в этом формате.
Для сохранения графического документа в формат DXF используется метод ksSaveToDXF интерфейса ksDocument2D. Вот его прототип.


В качестве единственного параметра он принимает полный путь к файлу, в который нужно сохранить документ. В случае успеха метод возвращает значение true, а в случае ошибки – значение false.

Параметры сохранения в растровом формате

КОМПАС позволяет сохранять документы в растровом формате. Для этого вначале нужно заполнить интерфейс параметров ksRasterFormatParam. Получить данный интерфейс можно с помощью метода RasterFormatParam() интерфейса ksDocument2D. Данный метод не имеет входных параметров и в случае успеха возвращает интерфейс ksRasterFormatParam. В случае ошибки он возвращает значение NULL. Рассмотрим свойства интерфейса ksRasterFormatParam.

colorBPP – цветность растрового изображения. Задает глубину цвета создаваемого изображения. Допустимые значения данного свойства перечислены в таблице ниже. Константы объявлены в модуле ldefin2d.h.



Допустимые значения свойства colorBPP

colorType – глубина цвета вывода графического изображения. Данное свойство похоже на свойство colorBPP и имеет те же допустимые значения. Разница между ними в том, что свойство colorBPP определяет глубину цвета в итоговом файле, а colorType – глубину цвета при преобразовании графических объектов в растровую форму до их сохранения в файл.
extResolution – разрешение растрового изображения в точках на дюйм. Если значение этого свойства равно нулю, то используется текущее разрешение экрана. Максимальное разрешение, при котором мне удалось построить изображение, составило 960 точек на дюйм, хотя возможно на более производительных системах можно построить изображение и с еще большим разрешением.
extScale – масштаб. Если значение extScale больше единицы, то изображение увеличивается в extScale раз. Если же оно меньше единицы, то изображение уменьшается в 1/extScale раз.
format – формат растрового изображения. Допустимые значения этого свойства приведены в таблице ниже. Константы объявлены в модуле ldefin2d.h.



Допустимые значения свойства format

Формат WMF не поддерживается. Согласно документации КОМПАС при попытке сохранить документ в этом формате, он будет сохранен в формате EMF.

greyScale – признак использования оттенков серого. Если значение данного свойства равно true, то используются оттенки серого. Если же значение свойства равно false, то сохраняется цветное изображение.
multiPageOutput – признак сохранения листов документа в одном файле. Если значение данного свойства равно true, то все листы документа сохраняются в одном файле. Если же значение этого свойства равно false, то листы сохраняются в отдельных файлах. Данное свойство используется только для формата TIFF. Но, как показывают мои эксперименты, КОМПАС для формата TIFF сохраняет листы документа в один файл вне зависимости от значения свойства multiPageOutput. Для других форматов листы сохраняются в отдельные файлы.
onlyThinLine – признак вывода в тонких линиях. Если значение этого свойства равно true, то содержимое документа выводится только в тонких линиях. Если же значение этого свойства равно false, то при выводе документа используются линии, установленные для объектов.
pages – список выводимых листов документа, представленный в виде строки. Пример списка: «1-18, 24-25». В данном примере выводятся листы с 1 по 18, а так же 24 и 25 листы. Нумерация листов ведется с единицы. Если строка пустая, то КОМПАС не использует данное свойство.
rangeindex – признак выбора четных и нечетных листов. Допустимые значения свойства:
0 – все листы;
1 – нечетные листы;
2 – четные листы.
Метод у интерфейса ksRasterFormatParam всего один.
Init() – обнуляет значения всех свойств интерфейса. Он не имеет входных параметров и, в случае успеха возвращает значение true.

Сохранение в виде растрового изображения

Для сохранения документа в виде растрового изображения используется метод SaveAsToRasterFormat интерфейса ksDocument2D. Ниже приводится его прототип.


Первый параметр задает полный путь к файлу, в который нужно сохранить документ.
Второй параметр содержит интерфейс ksRasterFormatParam, задающий параметры сохранения в виде растрового изображения.

В случае успеха метод SaveAsToRasterFormat возвращает значение true, а в случае ошибки – false.

Ниже приводится пример использования данного метода.


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



Пометка документа в некоммерческих версиях (край листа показан условно)

Сохранение многолистовых документов

В результате сохранения документа может получаться как один файл, так и несколько файлов. Один файл получается в следующих случаях:

  • сохраняемый документ состоит из одного листа;
  • сохраняется только 1 лист документа;
  • документ сохраняется в формате TIFF.

Если файл, в который сохраняются листы, уже существует, то КОМПАС ведет себя по-разному в зависимости от того, сколько файлов должно получиться. Если 1 файл, то он перезаписывается без какого-либо предупреждения. Если же образуется несколько файлов, то КОМПАС выдает диалоговое окно, показанное ниже. При этом метод SaveAsToRasterFormat не вернет управление до тех пор, пока пользователь не закроет окно.



Диалоговое окно, предупреждающее о перезаписи файла

Данные окна появляются даже в том случае, если КОМПАС запущен в невидимом режиме.

Номера сохраняемых листов задаются с помощью свойств pages и rangeindex. Рассмотрим, как они используются КОМПАС.

Если свойство pages не задано или содержит пустую строку, а значение свойства rangeindex равно нулю, то сохраняются все листы документа. Если свойство pages задано, а значение свойства rangeindex равно нулю, то сохраняются все листы, указанные в свойстве pages.

Если свойство pages содержит некорректный номер листа, то он игнорируется. Например, если для документа, состоящего из 5 листов, в свойстве pages задать строку «0,1,4,8», то будут сохранены листы 1 и 4. Если pages содержит строку «неверная,1, строка,3,», то будут сохранены листы 1 и 3.

Если свойство rangeindex равно 1 (2), а свойство pages не задано, то будут сохранены все нечетные (четные) листы документа. Например, если для документа, состоящего из 5 листов, свойство rangeindex равно 1, а свойство pages не задано, то будут сохранены листы: 1, 3, 5.

Если свойство rangeindex равно 1 (2) и задано свойство pages, то будут сохранены нечетные (четные) листы, указанные в свойстве pages. Например, при условии
pages = «1,2,3»;
rangeindex = 1;
будут сохранены листы 1 и 3. Лист 2 сохраняться не будет точно так, же как и лист 5, если он есть в документе.
Взглянем на такой пример:
pages = «1,3»;
rangeindex = 2.
В этом случае не будет сохранено ни одного листа. Согласно значению свойства rangeindex КОМПАС должен сохранить четные листы, но в свойстве pages не указано ни одного четного листа. Поэтому метод SaveAsToRasterFormat ничего не сохраняет и возвращает значение false.

Сохранение без сжатия

Для сохранения документа в виде растрового изображения без сжатия используется метод SaveAsToUncompressedRasterFormat интерфейса ksDocument2D. Данный метод полностью аналогичен методу SaveAsToRasterFormat, рассмотренному ранее. Поэтому описывать его я не буду.

Учтите, что различие между методами SaveAsToRasterFormat и SaveAsToUncompressedRasterFormat проявляется только при работе с файлами формата TIFF. Для файлов других типов они работают абсолютно одинаково.

Заключение
В данной статье мы рассмотрели сохранение графического документа в различные форматы. Не забывайте, что сохранение в виде растрового изображения или DXF ни в коем случае не должно заменять сохранения с помощью метода ksSaveDocument или ksSaveDocumentEx.

Вообще при разработке приложения под КОМПАС вы должны четко определиться с тем, кто отвечает за сохранение документа: вы, или пользователь. Я считаю, что в большинстве случаев за это должен отвечать пользователь. Ваша программа создает документ и показывает его пользователю, который и решает, что с ним делать дальше: сохранить, или забыть. Однако, если ваша программа должна изменить большое количество документов, то перекладывать задачу их сохранения на пользователя некрасиво. В этом случае сохранять документы должна программа. Хотя всё зависит от поставленной задачи.

Продолжение следует, следите за новостями блога.


Сергей Норсеев, автор книги «Разработка приложений под КОМПАС в Delphi».

Созданные файлы в Компас-3D не могут быть открыты в предыдущих версиях ( тоже касается и одинаковых версий компаса но с разными версиями сервис паков). Максимум что нам предлагает программа это пересохранить в формат предыдущей версии или в бесплатную облегченную версию Компас-3D 5,11 с рядом ограничений.

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

Для начала необходимо скачать прикладную библиотеку, и для удобства кидаем ее в папку Компас библиотек.
Пример автора: C:\Program Files (x86)\ASCON\KOMPAS-3D V14\Libs

Прикладная библиотека — это приложение, созданное для расширения стандартных возможностей КОМПАС-3D и работающее в его среде.

В прикладных библиотеках через языковые средства могут использоваться все возмож­ности КОМПАС-3D, предоставляемые при интерактивной работе (создание и редактиро­вание объектов, работа с моделью документа, открытие и сохранение чертежей и фраг­ментов и т.д.).

Установить прикладную библиотеку:
-Запускаем менеджер библиотек:

3

Правой кнопкой мыши(ПКМ) жмем по надписи Библиотеки Компас или на свободном поле ? Добавить описание ? прикладной библиотеки.

4

В открывшемся окне выбираем скачанный вами файлик с расширением .rtw:

5

Жмем Открыть ? Ок.

6

7

Список библиотек изменится и появится библиотека Сохранение в предыдущей версии Компас-3D.

8

Ставим галочку напротив и открывается библиотека. Двойным кликом по Сохранение в предыдущей версии Компас-3D запускаем библиотеку.

Библиотека имеет простой функционал. Слева, в файловом менеджере(зеленый) ищите папку с документацией которую будете пересохранять. Под файловым менеджером установлен счетчик количества Компас файлов в текущей папке. Справа от файлового менеджера расположено поле с перечнем файлов в текущей папке и кнопкой выбора версии пересохранения.
Выбираем как поштучно так и все (ПКМ ? выбрать все) ? Сохранить. Ждете окна подтверждения.

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

11

Данная библиотека работает как на 14-й так и на 13-й версии Компаса.

При использовании данной библиотеки проблема совместимости форматов чертежей Компаса снижается до минимума, а пересохранение пакета чертежей в пару кликов сэкономит вам время и нервы.

Тема данной статьи – компас сохранить как. Удивительно, но и сохранение в компасе у людей вызывает массу вопросов. Казалось бы, нет ничего проще, но, если у людей возникают вопросы, то я с удовольствием постараюсь на них ответить.

Компас сохранить как

Меня часто спрашивают, как сохранить чертёж в компасе. Скажу сразу, что у части людей, задающих этот вопрос, закончился период, данный на ознакомление с компасом, поэтому и не работает функция сохранения. Для остальных читателей расскажу 3 простых способа, как это сделать. В очередной раз, для примера, буду использовать чертёж домика. Также покажу несколько форматов сохранения, по которым мне задавали вопросы.

Компас сохранить как

На картинке представлено 3 способа, сейчас расскажу о каждом. Отмечу сразу, что результат первых двух способов будет совершенно одинаковый, у третьего немного другой. Поэтому я и поставил цифры 1,2 и 3 в порядке предпочтения. Где 1 – самый простой и быстрый способ, 3 – тоже очень простой, но ведёт к закрытию программы.

Способ 1. В верхней панели выбираем иконку в виде дискеты и нажимаем на неё. Программа Вам выдаст вот такое окно.

Сохранить файл в компасе

Здесь мы определяемся с местом сохранения, вводим имя нашего чертежа, выбираем формат и сохраняем. Сразу скажу – данный простой способ действует для любых файлов компаса.

Сохранить файл в компасе можно в различных форматах. Первое, что меня спрашивают, в каком формате сохраняет компас? Если не изменять формат, то по умолчанию компас сохраняет в формате cdw чертежи, spw спецификации, m3d детали и a3d сборки. Следующий вопрос как в компасе сохранить в dxf – это формат Автокада, в таком формате можно сохранять чертежи, фрагменты и спецификации. Иными словами, в компас сохранить в dxf можно двухмерные файлы. Для этого нужно просто выбрать формат (На картинке выше показано, как выбирать формат).

Файл компас сохранить в jpg можно аналогичным образом, с одной лишь разницей – в JPEG можно сохранить любой файл компас 3d, хоть чертёж, хоть 3D сборку, хоть спецификацию, хоть фрагмент. И ещё один вопрос, насчёт форматов сохранения – компас сохранить в stl может только трёхмерный файл, это деталь и сборка.

Способ 2. Как в компас 3Д сохранить. Для этого нажимаем в верхней панели кнопку со словом «Файл», и программа нам откроет дополнительное меню.

Как сохранить модель в компас

Тут можно выбрать «Сохранить», или «Сохранить как», или «Сохранить все». Дальнейшие действия будут точно такими же, как описаны в первом способе после нажатия иконки дискеты.

Способ 3. Для сохранения достаточно просто нажать закрытие программы (крестик в верхнем правом углу), после чего программа предложит сохранить результаты работы, нажимаем «Да» и дальше всё точно также, как описано в первом способе. Почему я поставил этот способ на 3 место? Потому что, после такого сохранения, программа закроется, и предложит сохранить все файлы, с которыми успели поработать.

Как видите, ничего сложно в процессе сохранения нет. Процесс сохранения не будет работать, если нет лицензии на программу и закончен ознакомительный период, а также, если файл уже открыт другим пользователем, но это актуально только для компаний, где несколько компьютеров имеют доступ к одним и тем же файлам. Для простого пользователя сохранение также может не сработать, если файл открыт два раза в компас 3D, или ещё в какой-нибудь программе.

Теперь Вы знаете, как сохранить деталь в компасе, как сохранить модель в компасе, как сохранить спецификацию, поэтому мне остаётся только пожелать Вам успехов в дальнейшем изучении этой программы и сохранения только лучших чертежей и моделей!

Читайте также: