Cтруктура файлов компаса .cdw или .dxf

Автор magiccat, 13.10.09, 13:42:56

« предыдущая - следующая »

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

magiccat

Дорого времени суток, господа!
Никогда раньше я  с системой КОМПАС не работал и вопрос мой таков: можно ли как-то получить структуру\описание файлов компаса? Может есть какая-то библиотека, с помощью которой я смогу "разобрать" файл? Для чего мне это нужно: в рамках курсовой\дипломной работы предстоит написать программу, которая бы читала чертеж, сделанный в компасе и оценивала бы его корректность (по установленным нормативам). Так вот, первоначальная задача заключается в том, чтобы извне получить полное описание того, что там в этом файле нарисовано. Почитал help из SDK, по названиям API-функций вроде ничего подходящего не нашел. Может кто-нибудь уже занимался "разбором" этих файлов или знает как вытащить описание чертежа?
Заранее благодарен.

yarikv

Без Компаса "разобрать" файл не получится. можно только с помощью АПИ и Компаса

magiccat

Цитата: yarikv от 13.10.09, 13:59:06
Без Компаса "разобрать" файл не получится. можно только с помощью АПИ и Компаса

Насчет API можно поподробнее или ссылку на тривиальный пример?

magiccat

DXF - универсальный открытый формат. Может есть какая-нибудь бесплатная библиотечка для работы с ним?

Троицкий

Цитата: magiccat от 13.10.09, 14:56:26
DXF - универсальный открытый формат. Может есть какая-нибудь бесплатная библиотечка для работы с ним?


Ну например есть компонент для Delphi: http://www.softsklad.ru/codings/delphis/4794prog.html.

magiccat

Цитата: Троицкий от 13.10.09, 15:24:03
Ну например есть компонент для Delphi: http://www.softsklad.ru/codings/delphis/4794prog.html.


Обновите ссылочку, пожалуйста, или выложите на общедоступный файлообменник. По это ссылке говорят:
"Forbidden.
You don't have permission to access /codings/delphis/4794prog.html. on this server."   :(

Троицкий

Цитата: magiccat от 14.10.09, 09:48:04
Цитата: Троицкий от 13.10.09, 15:24:03
Ну например есть компонент для Delphi: http://www.softsklad.ru/codings/delphis/4794prog.html.


Обновите ссылочку, пожалуйста, или выложите на общедоступный файлообменник. По это ссылке говорят:
"Forbidden.
You don't have permission to access /codings/delphis/4794prog.html. on this server."   :(

Sorry, ссылку не проверял и себе не скачивал. Попробуйте в поисковике "Delphi dxf"

magiccat

Цитата: Троицкий от 14.10.09, 09:52:05
Sorry, ссылку не проверял и себе не скачивал. Попробуйте в поисковике "Delphi dxf"


Вчера полдня искал, и не только для делфи, все дороги ведут на сайт http:\\cadsofttools.com, и там есть все что мне нужно, весь необходимый инструментарий, но, к сожалению, все это продается за американские доллары, а для меня этот вариант никак не подходит  :(

Если кто-нибудь знает где взять подобную библиотеку для работы с DXF, распространяемую свободно (не важно для делфи или с++ билдера или даже .NET), то буду очень признателен за ссылку на нее.

magiccat


Николай

     В своё время, до версии 10 "разбирал" чертежи, анализируя в "Блокноте" файл чертежа, переведённый в формат *.ksf.
    Не знаю, что кроется под фразой "...оценивала бы его корректность...", но получить информацию о всех примитивах чертежа было можно.

Vitek

Цитата: Николай от 20.10.09, 11:24:14
     В своё время, до версии 10 "разбирал" чертежи, анализируя в "Блокноте" файл чертежа, переведённый в формат *.ksf.
    Не знаю, что кроется под фразой "...оценивала бы его корректность...", но получить информацию о всех примитивах чертежа было можно.


*.ksf старый формат, ещё под компас 4 активно использовал, для написания программ не привязанных к Компасу. Прямо в програме создавал утилитой файл в *.ksf и открывал любой версией Компаса (от 4 до 7).
Было бы не плохо усовершенствовать и расширить формат *.ksf и не связываться с DXF.

Aleksei

Цитата: Vitek от 18.11.09, 12:38:56
Было бы не плохо усовершенствовать и расширить формат *.ksf и не связываться с DXF.


Поддержку собственного текстового формата *.ksf из Компаса последних версий (10, 11), насколько я помню, наоборот, убрали.

Vitek

Цитата: Aleksei от 19.11.09, 18:08:46
Цитата: Vitek от 18.11.09, 12:38:56
Было бы не плохо усовершенствовать и расширить формат *.ksf и не связываться с DXF.


Поддержку собственного текстового формата *.ksf из Компаса последних версий (10, 11), насколько я помню, наоборот, убрали.


Странная политика Аскона с форматом *.ksf

Под Компас 4 формат полноценно использовался,
под Компас 5 , точно не помню, убрали (сам написал небольшую библиотеку для чтения формата в Компас),
Потом формат появился, но в ихнем импорте-экспорте некоторые елементы как размеры, штриховку и др. разбивали на отдельные отрезки и размер файла *.ksf значительно увеличился. Возможно для неудобства его использования.
Сейчас за версиями особо не следил, возможно снова убрали.
В своё время Разработки САПР Фрез, разработал спецификацию улучшеного формата *.ksf для удобства работы с файлом и создания библиотек не привязанных конкретно какой нибудь версии Компаса (чтоб не плодить версии библиотек за версиями Компаса).
От использования формата пришлось отказаться по требованию Аскон  в период поставки Сапр Фрез в составе Компаса.

Если кому нужен формат *.ksf, ставте Компас 4 и смотрите помощь, там он очень хорошо описан, а написать утилиту для импорта в Компас 12 можно за пару дней.

basilcat

Ищи TCL DXF for C++ 1.0 beta (могу выслать). Есть и другой с экспортом в Delphi.
Смотри мой сайт, там есть программа, которая читает файлы dxf в мой CAD правда для SolidWorks 1.0 но там полные алгоритмы и имея структуру Dxf любой версии, легко напишешь для твоих нужд (и пишет из него) и строит линии, ARC, Circle и т.д. (www.basil-cat.narod.ru) Если что то пиши, помогу чем смогу (basil_cat@ukr.net).

magiccat

Цитата: Николай от 20.10.09, 11:24:14
     В своё время, до версии 10 "разбирал" чертежи, анализируя в "Блокноте" файл чертежа, переведённый в формат *.ksf.
    Не знаю, что кроется под фразой "...оценивала бы его корректность...", но получить информацию о всех примитивах чертежа было можно.

....оценивала бы корректность... - это как раз моя задача - автоматизированно проверять чертеж на наличие двойных линий, недоведений линии и т.п. Сейчас и сам не знаю весь объем задач, которые мне будут поставлены.
...А разобрать DXF это только первоначальная второстепенная задача, реализуемая для того, чтобы можно было начать работать с объектами чертежа.

magiccat

Спасибо всем за советы, "TCL DXF for C++" именно то, что нужно.