Просмотр DXF/DWG в Delphi - Страница 2
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Просмотр DXF/DWG в Delphi

Просмотр DXF/DWG в Delphi

Ответ
Поиск в этой теме
Непрочитано 09.03.2013, 16:13
Просмотр DXF/DWG в Delphi
qwertyqwer
 
Регистрация: 09.03.2013
Сообщений: 10

Суть проблемы такая, необходимо в Delphi открыть файл AutoCAD'a в формате DXF/DWG и реализовать возможность взаимодействия с объектами на этом чертеже (работа со слоями, выделение линий и любых других объектов, получение их координат и т.п.).

Насилую все возможные поисковики уже почти 2 недели, а найти что то дельное так и не удалось.

НО, после прочтения сотен статей пришел к выводу что данное действо можно реализовать по следующим путям:
1. Заплатить много денег и купить VCL компоненты с их полным описанием для работы с CAD файлами (отпадает сразу=)))
2. Реализовать отображение с помощью нескольких DLL и pas библиотечек (но нет никакого описания что там и как там)
3. Реализовать работу с CAD файлами с помощью GLScene (самый, часто встречающийся вариант который мне попадался)

Последние 2 пункта вроде бы неплохо подходят, но опять НО, я не особо силён в программировании, и по этому без толкового описания мне разобраться во всех этих библиотеках ооочень и очень сложно.

Буду благодарен за любую помощь, информацию (исходники приветствуются=)))

Заранее оговорюсь, в данных файлах хранятся карты местности и сделаны они именно в AutoCAD'e, поэтому и обратился на этот форум
Может есть какие решения уже
Просмотров: 15034
 
Непрочитано 11.03.2013, 13:41
#21
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


qwertyqwer
Та сделай проще....
Есть халявный просмотрщик DWF к нему есть не плохие мануалы....
Делаешь в VS свою прогу, встраиваешь тудыть окошко вьюера...
НАдо будет тебе только все черт. dwg и dxf перевести в формат dwf...
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 11.03.2013, 18:30
#22
qwertyqwer


 
Регистрация: 09.03.2013
Сообщений: 10


DEM
Спасибо, но я уже нашел решение, не столько красиво как хотелось бы, но результат не плохой, поставил на Delphi халявный компонент MapWinGis, скачал бесплатную утилиту для конвертации DFX в слои SHP, и эти слои в Delphi этим компонентом открываются на ура, куча функций которые мне были необходимы этот компонент делает отлично=)
Пусть не самый рациональный метод, но результат же достигнут=)) надо было открыть карту из AutoCAD'a в моем приложении?? я открыл=)))
Для демки проги сойдёт и такая реализация, мне необходимо идею показать, а нюансы буду дорабатываться летом=)
А про VS я возьму на заметку, мало ли, может захочется на переделать всё на этой среде программирования=)
qwertyqwer вне форума  
 
Непрочитано 11.03.2013, 19:22
#23
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Делаешь в VS свою прогу, встраиваешь тудыть окошко вьюера...
Точно также это делается и в Delphi.
ShaggyDoc вне форума  
 
Непрочитано 11.03.2013, 19:32
#24
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


ShaggyDoc
Точно вспомнил, именно так было в вашей программе по моему, только там еще бд вроде подключалась....
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 12.03.2013, 01:46
#25
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


qwertyqwer
ок. ждем летом тему "осталась неделя, как всетаки отоброзить ДВГ\ДХФ"))
zamtmn вне форума  
 
Автор темы   Непрочитано 12.03.2013, 07:18
#26
qwertyqwer


 
Регистрация: 09.03.2013
Сообщений: 10


zamtmn
это уже будет в VS скорее всего=)
qwertyqwer вне форума  
 
Непрочитано 12.03.2013, 07:20
#27
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Цитата:
Сообщение от qwertyqwer Посмотреть сообщение
это уже будет в VS скорее всего=)
Неее, назвался груздем, полезай в кузовок.....
Ждем на Делфях
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 12.03.2013, 08:06
#28
trir


 
Регистрация: 18.12.2010
Сообщений: 5,114


Блин, надо сразу говорить: ГИС или САПР. Между прочим MapWinGis реализован на DotSpatial
http://dotspatial.codeplex.com/

И вообще советую перевести все данные в БД
trir вне форума  
 
Непрочитано 12.03.2013, 11:16
#29
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
И вообще советую перевести все данные в БД
Ну, так это если всерьез делать, чтобы был результат. Но тут явно стремление показать "я могу". Сколько раз наблюдал такое - приходит очередной "программист" и вместо того, чтобы делать информационную систему (для которых теперь масса готовых инструментов), начинает изобретать свою программу (смотря кто в какой среде маленько разбирается). Со ставкой на халявные компоненты и пиратские Автокады (они же "рисуют").
ShaggyDoc вне форума  
 
Непрочитано 12.03.2013, 12:10
#30
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


qwertyqwer
>>это уже будет в VS скорее всего=)
Думаешь будет разница?

trir&ShaggyDoc
В чем профит от БД? Только в наличии "халявных" компонентов. Если нужно быстро нарисовать много примитивов - никакая БД не спасет, в данном случае база данных как и DWG\DXF это лишь контейнер для хранения. Внутри компонента данные имеют другую структуру и быстро и массово их обработать можно только в рамках этой внутренней структуры.
zamtmn вне форума  
 
Непрочитано 12.03.2013, 12:55
#31
trir


 
Регистрация: 18.12.2010
Сообщений: 5,114


Цитата:
Если нужно быстро нарисовать много примитивов
- не нужно, большую часть времени люди работают с маленьким кусочком карты. Благодаря технологии Simple Feature Access, многие современные РБД умеют работать с пространственными данными. Это умение заключается в наличии специальных пространственных индексов и пространственных запросов. По этому многие современные ГИС-форматы основаны на РБД: sdf, SpatiaLite...

http://gis-lab.info/docs/ogc-sfa-1.html

"Научить" dotspatial работать с WKB:
http://dotspatial.codeplex.com/wikip...BFeatureSetsCS

Получить данные из Пространственной БД проще и "экономичнее"...

Последний раз редактировалось trir, 12.03.2013 в 13:40.
trir вне форума  
 
Непрочитано 12.03.2013, 13:26
#32
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
В чем профит от БД? Только в наличии "халявных" компонентов.
В том, что в БД хранится информация. Как описательная (семантика), так и пространственная (координаты). Компоненты тут вообще не решающий фактор, хоть бесплатные, хоть платные. Тем более, что есть любые.

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

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

Ничего этого с DWG, как хранилищем данных, делать нельзя. Но AutoCAD можно использовать для рисования "карт", по пространственной информации из БД. Если есть какие-то "карты местности", информация по которым хранится в ГИС (например сети электроснабжения), и есть, например, проектный институт, работающий в AutoCAD, то возможно из ГИС и в AutoCAD эти трассы нарисовать, да еще и на топооснове. Но не только в AutoCAD, а и в других программных системах.
ShaggyDoc вне форума  
 
Непрочитано 12.03.2013, 14:15
#33
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


trir
>>Получить данные из Пространственной БД проще и "экономичнее"...
при наличии "компонента" - да. Ненадо пространственную индексацию преподносить как достижение баз данных. Любое приложение обрабатывающее большое кол-во геометрических данных должно это уметь, иначе это не приложение а тормоз.

ShaggyDoc
Стандартный ГИС профит)). А как он поможет в рамках топика? Всё вами описаное очень к месту в какойто глобальной гис системе, а ТС (и мне тоже) нужно всеголишь отобразить и отредактировать вот эти пару чертежиков.
>>Ничего этого с DWG, как хранилищем данных, делать нельзя.
Это почему? к примитивам можно привязать любую информацию, найти примитивы по геометрическим и семантическим критериям (в рамках привязанной к ним "любой" информации) тоже вроде можно. Другое дело что БД обычно предоставляют язык запросов для поиска и обработки, а в голом автокаде без програмирования никак.

Последний раз редактировалось zamtmn, 12.03.2013 в 14:25.
zamtmn вне форума  
 
Непрочитано 12.03.2013, 14:26
#34
trir


 
Регистрация: 18.12.2010
Сообщений: 5,114


Оно конечно так, но если это приложение пишется для дела, то через много лет и после массы мучений, вы или следующий разработчик, в конце концов поймут, что надо было сразу работать c БД, но будет уже поздно. Ибо аппетит приходит во время еды.
Между прочим. разговор идёт уже не о dwg/dxf, а о shp...
trir вне форума  
 
Непрочитано 12.03.2013, 16:50
#35
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
А как он поможет в рамках топика?
В рамках топика уже ничего не поможет. Разве что ссылка, где скачать пиратскую версию компонентов CadSoftTools, на что и рассчитывалось изначально.
Цитата:
к примитивам можно привязать любую информацию, найти примитивы по геометрическим
О, как запущено... Садись изучай, что такое настоящие базы данных. Ну да, на одном рабочем месте, при постоянном присутствии программиста к примитивам можно "привязать" кое-что примитивное, например "слова" или "цифры". Можно даже "изобрести" собственный "Автокад" Но эти привязанные данные не будут настоящей базой данных. Так же как "собственный автокад с dxf" не будет настоящим AutoCAD.
ShaggyDoc вне форума  
 
Непрочитано 12.03.2013, 18:07
#36
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


ShaggyDoc
а в 99% случаев и требуется привязка чегото примитивного. БД это всеголишь удобная надстройка над примитивными "словами" и "цифрами" - бывает к месту и не к месту
>>Но эти привязанные данные не будут настоящей базой данных.
Не будут, и не должны - задача отобразит примитивы, а не сделать БД над примитивами
zamtmn вне форума  
 
Автор темы   Непрочитано 14.03.2013, 18:07
#37
qwertyqwer


 
Регистрация: 09.03.2013
Сообщений: 10


У как тут мысль то пошла=)) а не заглядывал сюда пару дней всего=)
Уже даже не знаю где тут спор а где просто обсуждение, и к месту ли тут я вообще=)))
Но хочу тоже немного поучаствовать=)

trir
с тобой согласен полностью, всё дело в том, что я, как и любой программист с очень малым опытом разработки ИС, пошёл не потому пути для решения проблемы, вот и уткнулся носом в этот автокад и этот файл, и только разобрав предметную область уже достаточно глубоко реально понял, что автокад тут не особо то и нужен, разве что в качестве инструмента отрисовки карт, и будущую ИС следует двигать по направлению ГИС, и собираюсь использовать подход который достаточно ясно описал ShaggyDoc, по скольку в моей будущей ИС БУДЕТ использоваться БД (тут опять моя ошибка по скольку речи о ней не завел ранее)


qwertyqwer
>>это уже будет в VS скорее всего=)
zamtmn
>>Думаешь будет разница?
Как минимум тема топика поменяется, да и форум скорее всего другой будет=))

И в целом прошу меня строго не судить, это мой первый серьезный проект у которого возможно есть будущее, и естественно куча ошибок при его проектировании для меня неизбежна, но на ошибках учатся=)

Последний раз редактировалось qwertyqwer, 14.03.2013 в 18:44.
qwertyqwer вне форума  
 
Непрочитано 14.03.2013, 19:06
#38
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


qwertyqwer
А ты профессионально занимаешься программированием?
Тут то в основном самоделкины ...
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 15.03.2013, 00:46
#39
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


qwertyqwer
>>Как минимум тема топика поменяется, да и форум скорее всего другой будет=))
тоже самое, вид сбоку

>>ясно описал ShaggyDoc, по скольку в моей будущей ИС БУДЕТ использоваться БД (тут опять моя ошибка по скольку речи о ней не завел ранее)
Любят на этом форуме упоминать волшебное слово БД. Повторяю БД (в смысле источник данных которые будем отображать) тут не причем - это способ решить вопросы связанные с хранением данных. А вот "волшебный" компонент понимающий эту БД и умеющий ее "рисовать" очень даже причем, если он есть - всё в шоколаде. Если нет, то абсолютно также как в случае "Просмотр DXF/DWG в Delphi", за исключением что мы легко и просто храним информацию хоть где, разграничиваем к ней доступ, делаем всякие выборки, т.е. решаем вопросы напрямую с темой топика не связанные, но не спорю тоже важные.

Простой пример. Описания примитивов необходимые для экономичного хранения в БД и экономичного вывода на экран кардинально различаются. Для линии в простейшем случае в базе например может быть такое описание: начало,конец,тип линии. Графическая система (GDI, OGL, DX) не знает что такое сложные типы линий из dwg\dxf, ей подавай координаты каждого штриха и точки (а в типе линии могут еще и тексты с шейпами встретиться) отдельно - будь добр, посчитай их. Со сложными примитивами - сплайнами, блоками и т.д. всё еще сложнее. Вот и набегает между БД (по большому счету без разницы БД это или DXF\DWG) и дисплеем сложная програмная "прокладка" которую ищет ТС.

Последний раз редактировалось zamtmn, 15.03.2013 в 01:02.
zamtmn вне форума  
 
Непрочитано 15.03.2013, 13:28
#40
trir


 
Регистрация: 18.12.2010
Сообщений: 5,114


zamtmn ты нифига не понял. Не путай САПР и ГИС. В случае ГИС все эти вопросы давно решены. Почитай ссылки в Посте №31
trir вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Просмотр DXF/DWG в Delphi

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Документация Проектировщику на Torrents DEM Разное 263 03.09.2024 12:25
В Delphi получить информацию по примитивам в блоках AutoCAD gumel Программирование 17 04.03.2013 08:41
как из Delphi обрезать чертёж digar Программирование 7 21.02.2012 13:36
Lisp и внешний сервер автоматизации на Delphi samos LISP 19 07.10.2011 05:54
AutoCad и Delphi. Добавление точки Зойберг Программирование 15 28.02.2008 23:18