Тема: Народ, подскажите чем "раскрутить" DWF или DWG

Есть задумка разработать приложение на C++ под Windows, в котором нужно симулировать процесс обработки детали, полученной из AutoCAD ввиде 2D или 3D модели. Тоесть нужно отобразить эту модель на экране и иметь возможность динамически изменять(снимать слои материала, наносить промежуточные размеры, поворачивать, увеличивать и т.д.) отображение по мере надобности(возможно с поддержкой команды undo). Приложение должно работать без установленного AutoCad но с совместимым с ним форматом данных.
Могу себе позволить только полностью бесплатный инструментарий разработчика. На данный момент нашел два варианта. Первый это пакет DWF Toolkit от Autodesk, второй - DWGDirect от Open Design Alliance. После просмотра прилагаемой документации к пакету DWF Toolkit я так толком и не понял подходит ли этот пакет для моих целей и откуда вообще надо начинать копать. Пытался в инете найти какие-нибудь советы или примеры и в итоге создалось такое впечатление что никто этим не занимается. Может кто-то мог бы подкинуть какие-нибудь ссылки на полезную информацию по этому вопросу(можно на английском) и, может быть, дать наводящие советы. Для использования инструмента DWGDirect нужна письменная регистрация, а если для комерческих целей то нужно будет постоянно им отстегивать.
Ничего более подходящего мне пока найти не удалось. Если кто-то разрабатывал что-либо подобное, подскажите чем лучше воспользоваться. Может существует какой-нибудь бесплатный framework и т.п.
Заранее всем весьма признателен

Re: Народ, подскажите чем "раскрутить" DWF или DWG

> validol
А почему бы не посмотреть в сторону формата DXF - формат открытый, описание есть в AutoCAD Help.

Re: Народ, подскажите чем "раскрутить" DWF или DWG

> Александр Ривилис
>А почему бы не посмотреть в сторону формата DXF — формат открытый, описание
>есть в AutoCAD Help.
AutoCADа у меня нет. А еще настораживает
http://www.opendesign.com/about/whtpaper/whynot.htm
А главный вопрос - с помощью чего с ним работать при разработке приложений на С++.

Re: Народ, подскажите чем "раскрутить" DWF или DWG

А главный вопрос — с помощью чего с ним работать при разработке приложений на С++.

Написать свою библиотеку или поискать в интернете готовую.

AutoCADа у меня нет.

Без AutoCAD ты не сможешь проверить работоспособность своей программы.

Re: Народ, подскажите чем "раскрутить" DWF или DWG

P.S.: Описание формата DXF можешь взять здесь: http://usa.autodesk.com/adsk/servlet/it … id=5129239
P.S.S.: Пользоваться DWGDirect от Open Design Alliance не советую. Изменение формата DWG в очередной версии AutoCAD приведет к неработоспособности твоей программы. А так как это закрытый формат, то потребуется время, для того чтобы Open Design Alliance обеспечил поддержку нового формата dwg-файлов (при условии, что они это когда-нибудь вообще сделают).

Re: Народ, подскажите чем "раскрутить" DWF или DWG

Вот одна из бесплатных библиотек по работе с DXF-файлами: http://www.codeproject.com/library/cadlib.asp

Re: Народ, подскажите чем "раскрутить" DWF или DWG

> Есть
задумка разработать приложение на C++ под Windows, в котором нужно....
Когдато была такаяже задумка), написал кучу всего, но энтузиазм пропал(. на http://zcad.by.ru можно глянуть че уменя  получилось - небльшой глючный редактор dxf файлов. исходников там нет, но могу отдать.

Re: Народ, подскажите чем "раскрутить" DWF или DWG

да, забылсказать писал на дельфи/free pascal без использования какихлибо компонентов

Re: Народ, подскажите чем "раскрутить" DWF или DWG

> > zamtmn
>> написал кучу всего, но энтузиазм пропал..
  Вот и я боюсь чтоб не пропал, поэтому и хочу найти
какой-нибудь инструментарий для отображения DWF (DWG, DXF) с API для манипуляции
этим   отображением.
Нашел с десяток вроде бы подходящих пакетов(SDK или framework),
напр.:
http://www.hoops3d.com/products/3daf.html
http://www.actify.com/v2/products/SDK/R … .index.htm
http://www.drdwg.com/cadlibrary/index.html
http://www.bravaviewer.com/bravadesktop_sdk.htm
http://www.leadtools.com/SDK/Vector/Vector-Imaging.htm
http://www.spicer.com/products/image_ax.html
...
но все они для полного использования стоят немалую денежку. Ничего бесплатного
мне пока найти не удалось, но продолжаю надеятся что все-таки что-нибудь
такое существует, пусть даже с ограниченными возможностями.
В принципе можно попробывать написать что-нибудь подобное самому, но и это может занять очень много времени. Писать мне нужно именно на Micfosoft Visual С++ Express (MFC,win32 API или .NET Framework). Хочу попробывать создать что-то наподобие EdgeCAM c ограниченной функциональностью и с упором на использование в кругах программистов-практиков станков с ЧПУ.
>> zamtmn
На Pascal и Delphi тоже что-то когда-то пробывал, так что если не жалко, кинь
свои исходники мне на мыло, может пригодятся(если в них разберусь конечно:) ).
Заранее благодарю.

Re: Народ, подскажите чем "раскрутить" DWF или DWG

> Вот
и я боюсь чтоб не пропал, поэтому и хочу найти
я делал чисто для себя, как хобби, в целях саморазвития. заранее понимая что пропаду)) скину вечером

Re: Народ, подскажите чем "раскрутить" DWF или DWG

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

Re: Народ, подскажите чем "раскрутить" DWF или DWG

> zamtmn
>> В принципе если ограничиться проствми примитивами, и четко знать что нужно   получить в конце, иметь небольшие знания 3d матенматики, функционал отображения\редактирования можно сделать за сопостовимое изучению этих либ время
Я тоже такого-же мнения. Теоритические знания 3D математики имеются(2-х семестральный университетский курс "Линейная алгебра и оптимализация" адаптированный специально для IT). Однако на практике работал только с 2D-графикой на Паскале(Dos) и Java, на C++ большого опыта нет. Поэтому вторая цель разработки этого приложения заключается как раз в восполнении этого недостатка(похожая на твою ситуация:)). И все же, надеюсь, что из этого что-нибудь получится(надо же быть оптимистом:))

Re: Народ, подскажите чем "раскрутить" DWF или DWG

"В принципе" можно все. "В принципе" можно свою ОС написать. "В принципе" их и пишут, например, на форуме дельфистов периодически появляются пацаны, которые "написали на Delphi свою ОС, лучше, чем Windows". Только спрашивают, как ее теперь запустить без Windows :)
Оптимизм вещь хорошая, без него никуда. Только это чрезмерный оптимизм - "2-х семестральный университетский курс". Вот для разработки 3D приложений для AutoCAD это было бы хорошо. Но для разработки собственного графического движка - недостаточно. Не на canvas же будете рисовать. Впрочем, если впереди в запасе есть десяток-другой лет, попробовать можно. Может и получится какой-нибудь глючный редактор.
Более реально присоединиться к какому-нибудь из проектов на sourcefoge - там много их с иссякшим энтузиазмом.
Что касается формата данных, то в современных условиях подошел бы XML. Есть и спецификации от Autodesk - DesignXML. Он даже был реализован в 2002. Есть и другие простые системы, основанные на XML. Например DrawingEngine на SweetXML. Это несложный 2D "CAD" с исходниками. От подобных можно отталкиваться для начала.
Архаичный DXF можно оставить для экспорта в AutoCAD, хотя экспортировать можно и в более удобном виде.

Re: Народ, подскажите чем "раскрутить" DWF или DWG

> Но
для разработки собственного графического движка — недостаточно
смотря какие цели ставить. отобразить простой чертеж хватит. Конкурировать с автокадом никто не собирается. Насчет xml - мне он никогда не нравился)) тогдауж внутренний - свой. а dxf для совместимости, это верно

Re: Народ, подскажите чем "раскрутить" DWF или DWG

> ShaggyDoc
>Но для разработки собственного графического
>движка — недостаточно. Не на canvas же будете
>рисовать.
Может я несовсем правильно понимаю, но многие из мной найденных toolkit и т.п.
именно так и делают. Тоесть вам предоставляют API для отображения и манипуляции(сдвиг, зум, ротация, сечение и т.д.) 3D моделями а сами используют какие-то стандартные API(Win32, .NET Framework, QT и т.д.). Получается что можно и на canvas. Именно что-то на подобие этого я и имел ввиду.
На счет формата - меня все больше склоняет к DWF. Во-первых он открытый и имеется свободный DWF Toolkit для чтения/записи. Во-вторых он становится стандартом для презентации различных изделий. Хотя он и предназначен только
для просмотра, но я так понимаю никто вам не запрещает изменять данные после их считывания из файла.

Re: Народ, подскажите чем "раскрутить" DWF или DWG

10 лет назад я тоже думал, что DWF станет стандартом. Вроде бы все предпосылки были. Но не случилось - другие фирмы проигнорировали. Да и Autodesk даже внутри себя умудрилась сделать DWF несовместимыми.
С движком впоследствии убедитесь сами. Конечно, есть сейчас и различные API, но серьезные программы ими не обходятся. С небольшими объемами данных, да в 2D, можно рисовать хоть как. А как доходит до больших, реальных - тут тормоза наступают.
Например, даже браузер может рисовать чертеж, описанный в DesignXML при загрузке из сети. Но это пока на нем 5 "квадратиков". А на реальном объекте ломается - графический движок браузера не готов.

Re: Народ, подскажите чем "раскрутить" DWF или DWG

> Например,
даже браузер может рисовать чертеж, описанный в DesignXML при загрузке из сети. Но это пока на нем 5 "квадратиков". А на реальном объекте ломается — графический движок браузера не готов.
Рисовать одно. это не так трудно, есть opengl, dx они обеспечивают достойную скорость отрисовки при правильном использовании. Настоящие ломки наступают когда каждый объект можно выделить, подредактировать мышью, посчитать привязки к длугим объектам. вот это трудно

Re: Народ, подскажите чем "раскрутить" DWF или DWG

> С
движком впоследствии убедитесь сами. Конечно, есть сейчас и различные API, но серьезные программы ими не обходятся. С небольшими объемами данных, да в 2D, можно рисовать хоть как. А как доходит до больших, реальных — тут тормоза наступают.
Движек не такая трудная вешь как вы ее описываете. если из моей прогламки выделить графическую часть, то редактор вобщемто перестанет быть "глючным". меня глюки посетили в неграфической части. Были мысли о скркщении процесса "графического" проектирования с програмированием, но это только мысли, конечный результат я себе слабо представлял и погряз в бесконечных сменах архитектуры программы.

Re: Народ, подскажите чем "раскрутить" DWF или DWG

> ShaggyDoc

Оптимизм вещь хорошая, без него никуда. Только это чрезмерный оптимизм — "2-х семестральный университетский курс". Вот для разработки 3D приложений для AutoCAD это было бы хорошо. Но для разработки собственного графического движка — недостаточно.

Я и не утверждаю что одного этого достаточно, это касается только теоритической стороны. Например сейчас немного просматривал документацию к OpenGL, там есть возможность манипулирования 3D-моделями в пространстве при помощи передачи в функции матриц отображений и трансформированных координатных систем(если я правильно это понял). Так вот изучив такой курс человек должен понимать как это можно эффективно использовать чтоб существенно облегчить себе жизнь - иначе, по-моему, даже бесполезно рыпаться.
  А если кто-то раньше не работал с 3D графикой и не знаком с различными либами, тулкитами и т.п.,
он может попросить совета чем лучше воспользоваться у более опытных, чтоб не мудрить лишнего. При этом выдвигая какие-нибудь(возможно идиотские) идеи, и смотря будут ли его поддерживать или "закидывать помидорами" - на то он и форум.
Сейчас много всякого инструментария, и если подобрать подходящий, разобраться и правильно использовать, то можно попробывать и что-нибудь сотворить. При чем еще важно отметить, что в моем случае достаточно бы было специфического движка с ограниченной функциональностью.
>>zamtmn
за исходники спасибо, будет время - покопаюсь.
Пока обдумываю такой вариант для "движка": для считывания DWF-файла использовать DWF Toolkit - он, я так понял, раскидывает данные по объектам в контейнерах. Потом написать библиотеку для отображения и манипуляции считанными(возможно из нескольких файлов) и собственными объектами с помощью OpenGL API. Для симуляции процесса обработки реализовать, я бы ее так назвал, "функцию логической разности 3D-моделей". Хотя буду еще копать дальше - вроде есть расширение(к OpenGL) Open Inventor, которое умеет работать с файлами некоторых графических форматов. А может где-то есть и "функция разности", пока еще толком не разобрался.

Re: Народ, подскажите чем "раскрутить" DWF или DWG

to validol
Ну что ты так за dwf ухватился. внутренний формат объектов у тебя полюбому свой будет. а dwf/dwg/dxf только интерфейс к автокаду:
dwf -куча ограничений
dwg -стоит денег
dxf +прост +распространен +именно для этого придуман
http://www.opendesign.com/about/whtpaper/whynot.htm меня только рассмешил
загляни на geometros.com там мужик написал либу для операций с 3д телами и небольшой сапр к ней. щас продает ее на западе (или пытается, незнаю. мужик кстати русский). на сайте была демка либы, исходники демок ее использующих и вроде исходники сапра. адрес по памяти, дома уточну если что

Re: Народ, подскажите чем "раскрутить" DWF или DWG

> zamtmn
>Ну что ты так за dwf ухватился
Я тока начал заниматься этим вопросом, и еще окончательно не решил. Надо еще взвесить все "за" и "против". DWF меня привлекает прежде всего потому, что допустим, в моем случае, сторонний производитель предоставит модель приспособления, режущего инструмента и т.д.,  а я смогу "добавить" ее на экран к другим моделям для симуляции, получится что-то вроде виртуального конструктора.
Мне кажется, что презентовать свои модели в формате dwg или dxf будет мало-кто.
Второй момент что изображения в формате DWF  можно получить из любых приложений Windows с помощью DWF Driver и это тоже плюс.
>нутренний формат объектов у тебя полюбому свой будет
Мне кажется DWF Toolkit должен предоставлять все средства что-бы этого избежать - иначе зачем он(тулкит) тогда нужен?

Re: Народ, подскажите чем "раскрутить" DWF или DWG

> Мне
кажется, что презентовать свои модели в формате dwg или dxf будет мало-кто.
Вот именно что dwf создан для конечного продукта. его задача показать на презентации красивую картинку или  отправить заказчику готовый проект в электронном виде. не задумывался он как аналог dwg/dxf
>>>нутренний формат объектов у тебя полюбому свой будет
>>Мне кажется DWF Toolkit должен предоставлять все средства что-бы этого избежать — иначе зачем он(тулкит) тогда нужен?
1. Например в твоей программе будут свои объекты, которых нет в автокаде. как ты их запихнешь в dwf\dxf? придется "эмулировать" их при сохранении в чужом формате подручными средствами - например блоками и "разэмулировать" обратно при чтении. когда у тебя появится  много своих сложных объектов появится и много кода эмуляции-разэмуляции который в DWF Toolkit не входит
2. Тебе нужно структуры данных не только писать\читать в файлы, но еще их и обрабатывать внутри программы своими алгоритмами. гораздо приятней когда алгоритм обрабатывает удобную ему структуру данных а не подстраивается под универсальную структуру.