crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Работа с SVG
rcdimon
  опции профиля:
сообщение 23.11.2009, 12:29
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 27.10.2009
Пользователь №: 1183

Спасибо сказали: 1 раз(а)




Репутация:   0  


Хочу написать программку для черчения принципиальных схем. Первой идеей было создать библиотеку компонентов в формате SVG. Т.к. он поддерживается QT, легко создать в редакторе (например Inkscape). Рабочее поле программы должно представлять виджет для рисования SVG, способное загружать файлы SVG (комоненты из библиотеки) и способное рисовать новые элементы, такие как соединительные линии, тексты и т.д. Рисовать линии надо по определенным правилам- схема должна получаться по ГОСТ, а пользователь должен рисовать легко и просто.

Собственно в чем вопрос заключается... Почитал документацию по модулю SVG у QT и так и не понял- способен он на это или нет? Обображать SVG он может, как я понял, а может ли рисовать? Всмысле мышкой на рабочей области )

Стоит смотреть в сторону SVG или нет?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.11.2009, 12:50
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Проект Fritzing использует такой подход, он с открытыми исходниками.

Но идея - ГОВНО.
XML - формат пригодный только для межинструментального обмена, он содержит гигантское кол-во лишних данных, долго анализируется.
Я преобразовывал DWG (~2,5 МБ) в SVG? получил ~120 МБ!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rcdimon
  опции профиля:
сообщение 23.11.2009, 13:36
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 27.10.2009
Пользователь №: 1183

Спасибо сказали: 1 раз(а)




Репутация:   0  


Ну SVG можно легко сжать, ведь это текстовый документ. Я так и собираюсь- библиотека компонентов будет представлять из себя файл с каким то расширением, но на самом деле это будет архив, в котором будет лежать XML файл описи компонентов и собственно сами файлы компонентов. Каждому компоненту может потребоваться до трех файлов- Условное Графическое Обозначение для принципиалок, посадочное место на плату и файл описания компонента. По моему удобно. Можно будет например править библиотеки руками- с помощью gzip.

Сама по себе схема может вовсе и не быть SVG файлом. А просто хранить данные о том какие компоненты установлены, их координаты и связи. Никаких километровых чертежей, для которых предназначен DWG, не нужно будет. Да и потом возможно у вас просто конвертор не самый лучший был. А компоненты не бывают такими большими и сложными. анализироваться должно быстро.

Другой вариант- придумать свой простой формат. Основанный опять же на XML так как бинарные файлы я с роду не переношу, а писать свой парсер текста- на Perl- я с удовольствием, а на си не тянет. Ну а рисовать тогда все средствами рисования QT? Я к сожалению не знаю его возможностей пока столь хорошо, поэтому и консультируюсь.

Когда-то в тяжелом детстве я писал на Visual Basic и отлично помню сложности с рисованием в нем. Надо заботиться о перерисовке всей сцены при малейшем ее изменении. А чтобы сделать линию с двух сторон с "квадратиками", чтобы мышкой ее растягивать- это уже целая программа будет. Вот я не хочу заниматься этой мелочевкой.

Я видел в QT Demo пример хороший, где кривую бизье можно легко "шевелить мышкой". Вот что-то типа того и надо.. Только линия не должны быть кривой, она должна быть по ГОСТ )))

Сообщение отредактировал rcdimon - 23.11.2009, 13:39
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.11.2009, 13:50
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(rcdimon @ 23.11.2009, 16:36) *
Ну SVG можно легко сжать, ведь это текстовый документ.
причём сдесь сжатие, анализоровать-то ты будешь не сжатый файл. 120/2,5 = 48 раз больше (т.е бесполезной информации)

Цитата(rcdimon @ 23.11.2009, 16:36) *
По моему удобно. Можно будет например править библиотеки руками- с помощью gzip.
Ужас!

Цитата(rcdimon @ 23.11.2009, 16:36) *
Да и потом возможно у вас просто конвертор не самый лучший был.
я тестил три комерческих, у них было ограничение на рмер входного файла (демки), по утверждению разработчиков, алгоритмы одинаковые. Возможно есть и лучше, но смысл для меня стал ясен - бездумное увлечение XML'ом.

Цитата(rcdimon @ 23.11.2009, 16:36) *
Основанный опять же на XML так как бинарные файлы я с роду не переношу
ну и зря, в бинрных файлах, для данной конкретной софтины море достоинств, для меня ключевые:
* размер
* нет соблазна лесть в него руками
* нет привязок кодировкам

Если нравится текстовый - DXF, но двоичный DWG лучше, его поймут многоие САПРы, он легкий и очень универсальный (поддерживает и 3D)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rcdimon
  опции профиля:
сообщение 23.11.2009, 14:32
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 27.10.2009
Пользователь №: 1183

Спасибо сказали: 1 раз(а)




Репутация:   0  


Цитата
* нет соблазна лесть в него руками

Люблю лазить руками.. особенно куда не просят :-D

Так всетаки вернемся к рисованию. каким способом проще всего сделать рисование? вот такое, какое я описывал. Не знаю как это называется нормально.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 23.11.2009, 14:44
Сообщение #6


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


Самый правильный способ - это рисование с помощью каркаса графического представления. А расположение и свойства объектов сохранять в любом удобном формате - хоть в xml, хоть в dxf.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rcdimon
  опции профиля:
сообщение 23.11.2009, 15:12
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 27.10.2009
Пользователь №: 1183

Спасибо сказали: 1 раз(а)




Репутация:   0  


Вот. Это как раз то, что я хотел услышать, то, что нужно. Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
niXman
  опции профиля:
сообщение 26.11.2009, 3:45
Сообщение #8


Участник
**

Группа: Участник
Сообщений: 169
Регистрация: 18.6.2008
Пользователь №: 204

Спасибо сказали: 1 раз(а)




Репутация:   0  


rcdimon, С Юрием, по поводу электроники и программ облегчающих его не легкий труд, лучше не спорить ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 26.11.2009, 15:23
Сообщение #9


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


2 rcdimon,

хотите сделать нечто похожее на PCad ?

Идея: а что если вместо XML хранить все эти компоненты, либы и т.п в какой нить базе данных, т.е. в формате *.db ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
niXman
  опции профиля:
сообщение 26.11.2009, 18:03
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 169
Регистрация: 18.6.2008
Пользователь №: 204

Спасибо сказали: 1 раз(а)




Репутация:   0  


Если уж очень невмоготу использовать XML файл для хранения схем и при этом желателен минимальный размер, обратите внимание на это: http://ru.wikipedia.org/wiki/Matroska

Прочитав первый параграф, удивитесь ;) Да, все уже написано!

Сообщение отредактировал niXman - 26.11.2009, 18:04
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 17:18