Работа с SVG |
Здравствуйте, гость ( Вход | Регистрация )
Работа с 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 |
Ну SVG можно легко сжать, ведь это текстовый документ. причём сдесь сжатие, анализоровать-то ты будешь не сжатый файл. 120/2,5 = 48 раз больше (т.е бесполезной информации)По моему удобно. Можно будет например править библиотеки руками- с помощью gzip. Ужас!Да и потом возможно у вас просто конвертор не самый лучший был. я тестил три комерческих, у них было ограничение на рмер входного файла (демки), по утверждению разработчиков, алгоритмы одинаковые. Возможно есть и лучше, но смысл для меня стал ясен - бездумное увлечение XML'ом.Основанный опять же на 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 |
|
|
Текстовая версия | Сейчас: 29.3.2024, 10:20 |