|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,559
![]() |
Спасибо! похоже XP уже не найтешь на рабочих компах))
Для полноты картины мои результаты на Win7x64: Цитата:
Цитата:
|
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,537
|
zamtmn, займитесь лучше базовым функционалом... Ну и вот еще, команда import... pdf файлы, серьезно? После импортирования dxf2000 в zcad (кстати неправильному) команда arc приводит к фаталу при выборе первой точки...
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,559
![]() |
>>zamtmn, займитесь лучше базовым функционалом...
Это самый что нинаесть базовый функционал, хренова что я это дело не предусмотрел когдато давным давно(( В двух словах как устроено сейчас и как планирую: Сейчас примитивы умеют всё: и рисрваться и выделяться и привязки и трассировки, классы примитивов изза этого очень громоздки и тяжелы для понимания, а нужно еще добавлять расчленение, да мало ли что. Планирую сделать некую прослойку между примитивом и графической системой. типа как в автокаде примитив объясняет движку как себя рисовать (worddraw или как там его в arx). Вроде как вырисовывается 3 уровня - первый - база DXF примитивов c методом "worddraw" в котором они обясняют движку как выглядят - второй "элементарные" примитивы (линии, дуги, фейсы еще чегонибудь) полученые движком из DXF примитивов. На этом уровне работают привязки, трассировки. По информации из этого уровня любой DXF примитив можно расчленить на состовляющие, не реализуя метод explode в классе DXF - третий - переработка элементарных примитивов с второго уровня в примитивы понятные системе отображения в случае OpenGL - 3d точки, в случае GDI - 2d точки. На этом уровне работает выделение примитивов мышкой. >>Ну и вот еще, команда import... pdf файлы, серьезно? Поддержка pdf заявлена библиотекой которую я планировал использовать для импорта (fpvectorial)... но либа не развивается, естественно поддержки pdf пока там нет(( импорт вообще мной не проработан, на данный момент возможно вообще не работает, я им неразу не пользовался |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,843
|
Про GDI - вспомнил вдруг, есть-же еще Aforge, так их AForge.Imaging.Drawing.Line(...) так-же рисует в Bitmap, но т.к. там требует явного предварительного открытия BitmapData - он по скорости получается чуть быстрее, но главное его можно паралелить на любое количество потоков (как впрочем если и самому написать Брезенхема и писать напрямую в память). А с учетом "реальных" машин - считай скорость вырастет в 2-4 раза.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,559
![]() |
Aforge - не думаю что это можно просто зацепить к лазарю и использовать в линуксе, ктомуже если это чисто софтовый растеризатор - результаты будут на уровне AGG (он тоже софтовый, растеризует в битмап в памяти) из теста.
>>как впрочем если и самому написать Брезенхема и писать напрямую в память не, это я делать точно не планирую)) ограничусь набором классов для легкого добавления в зкад любой "конечной рисовалки" и реализую эти рисовалки для GDI, opengl, возможно dx - если от него будет прок по сравнению с opengl на "слабых" компах |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,843
|
Не он в один поток по скорости примерно как GDI - в несколько соответственно * на кол-во ядер. Все остальное - тебе видней, я с лазарем не знаком - но формально Aforge это обычный .Net dll.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,559
![]() |
Выложил бинарники - 948 ревизия с пробой GDI рендера. снова нужен тест на XP (с классической темой оформления) на предмет наличия мерцания в области отрисовки чертежа - на W7 с классической темой вроде я поборол мерцание, но есть подозрения что в XP они остались(( Перед созданием\загрузкой чертежа нужно в инспекторе на вкладке Рендер в параметре Render backend Выбрать "GDI" иначе будет работать opengl вариант отрисовки
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,559
![]() |
>>Часть объектов не отображается, сетка и ручки тоже...
То что не отображается в этот момент пытается отрисовать себя GLными методами на несозданый GLный контекст >>Теперь все заново программировать? Не заново конечно, но переделывать нужно очень много, своеобразный глобальный рефакторинг. Особенно тошно становится при взгляде на текстовые примитивы - этож надобыло когдато такой хрени накодить)) Я в архитектуре CAD программ понимаю не много, соответственно развитие зкада это постоянные переделки. Но опенглный рендер будет работать нормально на всем этапе "переделки" и на выходе будет более универсальный и простой код примитивов |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,559
![]() |
Зачаток печати в зкаде был и даже работал, правда только в режиме "fit to paper", т.к. функцию подрезки примитивов по рамке печатаемой области выполняли края листа бумаги)), сейчас печать не работает. С "рендерным бакендом" GDI в виндовс печать получится почти автоматически, достаточно (почти достаточно
![]() >>Я так понимаю вы хотите сделать печать из zcad? Я давно думал над "мультирендером", но основная подача всетаки некий абстрактный апи для рендера (OpenGL очень специфичен) и упрощение примитивов - вынос "сложных" и вобщемно ненужных чертежному примитиву вещей в отдельный "слой" - набор "низкоуровневыых" графических примитивов. Мне нужны дуговые сегменты в полилиниях, добавлять их сейчас в примитив - потом замаешся поддерживать (я уже добавил так TTF в текстовые примитивы ![]() |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,559
![]() |
Возник вопрос по анонимным блокам. Могу я их проигнорировать при чтении dxf?
Насколько я понимаю они создаются для примитивов типа размеры, штриховки и т.п. Т.е. содержат в себе внешний вид "составных" автокадовских примитивов. Программа читающая dxf может отобразить размеры и штриховки используя соответствующие анонимные блоки, не заморачиваясь генерацией примитивов на остове стилей. В этом случае я могу их не читать - всеравно поддерживаемые примитивы в зкаде перегенерируются, а не поддерживаемые игнорируются. Существуют какиенибудь другие сценарии использования анонимных блоков? Update: *Aномер это от чего анонимный блок? По состоянию на сейчас зкад "деанонимизирует" анонимные блоки, после сохранения появляется куча простых блоков вида *Dномер, *Aномер и т.п. и при дальнейшей обработке чертежа в автокаде возможны конфликты имен Последний раз редактировалось zamtmn, 27.09.2014 в 16:31. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,559
![]() |
После вставки вроде A$номер и неанонимный, анонимные начинаются со звездочки
----- добавлено через ~1 ч. ----- провел небольшой эксперимент: *Dномер - размеры, можно игнорировать, на них есть ссылка только в размерном примитиве, уна у меня не обрабатывается *Aномер - штриховки, возможно что то еще, вроде можно игнорировать, штриховки пока неподдерживаются *Uномер - непонятно что, если юзать всякие экзотические стрелки на концах размерных примитивах, то в блоках этих стрелок появляются ссылки на анонимные блоки такого вида |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,559
![]() |
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,559
![]() |
Выложил версию 1045. В ней еще доработал инспектор объектов, теперь он рисуется в соответствии с системными настройками - всякие подсветки при наведении мышки и прочие плюшки.
update: Проверил работу на win xp, 7, 8. висты у меня нет, поэтому буду благодарен если кто выложит скриншот с висты Последний раз редактировалось zamtmn, 03.11.2014 в 17:00. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,559
![]() |
Инспектор вообще получился самой кровопьющей запчастью, незнаю что на меня нашло - обычно на внешний вид глубоко пофиг))
>>а еще атрибуты в блока и спецсимволы в тексте Спецсимволы в тексте основные есть, что добавить? Атрибуты тоже есть, но своеобразные)). Любому примитиву можно присвоить набор типизированных "переменных", а для устройств можно прилепить текст\мтекст в "динамическую" часть и организовать отображение этих "переменных" в любой комбинации на чертеже. Совместимо с автокадом только в одну сторону (только отобразить, в автокаде не создать), но ИМХО гораздо мощьнее чем обычные атрибуты. Про размеры пока промолчу, уж больно они в автокаде замарочистые |
|||
![]() |