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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание CAD программы с нуля

Создание CAD программы с нуля

Ответ
Поиск в этой теме
Непрочитано 19.11.2013, 00:29 6 | #1
Создание CAD программы с нуля
zamtmn
 
КИПиА
 
Tyumen
Регистрация: 21.03.2005
Сообщений: 1,429

Всем привет!
В свободное время делаю для себя небольшую CAD программу - всегда было интересно как это работает внутри.
На данный момент есть следующие наработки:
  • Довольно быстрый OpenGL рендеринг чертежа
  • Кроссплатформенность (Windows/Linux, x86/x64, win/gtk/qt)
  • поддержка подмножества DXF версии 2000
  • поддержка SHX, TTF шрифтов
  • поддержка типов линий
  • поддержка примитивов POINT, LINE, CIRCLE, POLYLINE, LWPOLYLINE, ARC, ELLIPSE, INSERT, TEXT, MTEXT, 3DFACE, SOLID, SPLINE
  • некоторые потуги автоматизации слаботочных разделов проекта
Cтраничка программы на SourceForge
Cтраничка программы на GitHub
Cтраничка программы на Ohloh

Программа пишется на паскале, компилируется в Lazarus/FPC. Исходный код открыт и лежит в SVN репозитории Git репозитории
Текущую сборку программы можно взять тут (более менее свежие сборки для Windows_x86 и для Linux_x86_64, другие - стареханькие). Для работы требуется аппаратная поддержка OpenGL на целевом компе
Также программу можно собрать самомтоятельно, для этого понадобятся:
  • Lazarus версии не менее 1.6 на данный момент нужна последняя версия Lazarus из trunk, FPC версии не менее 3.0.4
  • SVN клиент чтоб скачать исходные коды (под Windows лучше всего подойдет TortoiseSVN, мануал)
Если Вы соберете zcad для Windows64 также понадобится 64 разрядная версия библиотеки GLU32.DLL (системная не подходит, т.к. старой версии) - прилагаю к этому посту, необходимо будет положить ее рядом с ексешником, заменив идущую в дистрибутиве zcad`а 32 разрядную версию GLU32.DLL

Программа не требует установки и не пишет\читает ничего в системные папки (за исключением TEMP) Под windows не допускаются кирилические (и другие) символы в пути к программе (в путях к dxf файлам допускаются), lunux версия такой болезнью не страдает.

Для запуска доступны следующие ключи командной строки:
  • NLL - отключение загрузки файла докинга окон, окна открываются непристыкованными, но докинг работает
  • SI - полное отключение докинга, зкад работает в однооконном режиме (очень недоделанном)
  • UPDATEPO - отключение закрузки локализации, будет запущена английская версия. Также в этом режиме доступна команда обновления файлов локализации
  • NOSPLASH - отключение показа окна загрузки
  • путь/к/файлу.dxf - открыть указанный файл

Любые замечания/предложения приветствуются!

Вложения
Тип файла: zip glu.zip (903.8 Кб, 352 просмотров)


Последний раз редактировалось zamtmn, 25.07.2018 в 11:55.
Просмотров: 97213
 
Непрочитано 19.11.2013, 02:30
#2
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,648


это один из самых популярных проектов на free pascal на sf.net но повертев туда сюда работать я не почему то не смог. Не хватило времени для разбирательства.
последняя версия которую я закачивал - была на русском, даже слегка на олбанском, хотя в росии sf.net не особо популярен (главным образом лидирует по закачкам италия, германия и сша)
есть ли сейчас нормальный английский перевод?
ETCartman вне форума  
 
Автор темы   Непрочитано 19.11.2013, 09:51
1 | #3
zamtmn

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


До работы там еще как до китая пешком)) В нем можно расставить блоки оборудования, проложить кабеля, получить несколько отчетов... а дальше дорабатывать в нормальном каде))
Нормального английского как и нормального русского пока нет. При запуске смотрится язык системы, если он русский - запускается русская версия, если нет - английская. Английская локализация зашита в код, русская сидит в cad\languades\zcad.ru.po ее можно поправить в любом PO редакторе, можно создать любую другую лакализацию, создав соответствующий PO файл
zamtmn вне форума  
 
Непрочитано 19.11.2013, 11:09
#4
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,619


Offtop: я очень извиняюсь, но почему было не взять нано в качестве платформы и на его базе пилить свои решения? Вот, например, результат нескольких недель работы: youtube.com/watch?v=sE3Zp6_osRY
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Автор темы   Непрочитано 19.11.2013, 12:24
#5
zamtmn

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


swell{d}
Когда появился нанокад, зкад уже был в более менее адекватном состоянии, кроме того, агрессивная пиар кампания нанософта отбила всякий интерес к их продукции. Когдато давно я пытался использовать автокад в качестве "платформы", но в то время было очень мало доступной информации по arx - несложилось.
>>Вот, например, результат нескольких недель работы
Мне не столько важен результат, как сам процесс разработки)) Насколько я понял из видео - по данным из экселя отрисовываются чертежи... но это только полдела, как потом предпологается вносить изменения в чертежи? перечерчивать?
zamtmn вне форума  
 
Непрочитано 19.11.2013, 12:49
#6
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,619


Offtop: можно вопросом на вопрос? а как вы в своей слаботочке вносите изменения?
изменения изменениям рознь. если изменились параметры стенки, задаваемые из экселя - проще заного скрипт прогнать. если появились какие-то мелкие дырки (под слаботочку, например) - просто дорисовать руками.
__________________
.: WikiЖБК + YouTube :.

Последний раз редактировалось swell{d}, 19.11.2013 в 13:47.
swell{d} вне форума  
 
Автор темы   Непрочитано 19.11.2013, 13:26
#7
zamtmn

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


>>а как вы в своей слаботочке вносите изменения?
Я хочу чтобы чертеж был некой моделью, т.е. не только строился по внешним данным, а содержал эти данные.
>>если изменились параметры стенки, задаваемые из экселя - проще заного скрипт прогнать.
>>если появились какие-то мелкие дырки (под слаботочку, например) - просто дорисовать руками.
Имхо не стоит мешать эти подходы. если генерируется - пусть генерируется - не надо руками его править.
Но если всетаки есть соблазн поправить, надо иметь способ получить назад измененные исходные данные из исправленного чертежа
zamtmn вне форума  
 
Непрочитано 19.11.2013, 13:47
#8
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,619


Offtop: получить на 100% готовые чертежи мне не представляется возможным. в любом случае что-то для 5-10% стен придётся дорабатывать руками.
т.е. у меня на одной чаше весов - время на доработку "руками", на другой - время для алгоритмизации, параметризации и написания скрипта для решения _непредсказуемых_ задач.

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

п.с. вообще это оофтоп. сори, что засоряю тему
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Непрочитано 19.11.2013, 19:02
| 1 #9
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,648


Цитата:
Сообщение от swell{d} Посмотреть сообщение
[offtop]я очень извиняюсь, но почему было не взять нано в качестве платформы и на его базе пилить свои решения? Вот, например, результат нескольких недель работы:
плюс открытой программы то что она практически ваша с того момента как вы ее скачали. то есть открытый софт (его копия) обладает де-факто свойством частной собственности в сравнении с закрытым, даже бесплатным. Это - вещь. то что и другие могут скачать то же самое - ваши права никак не ущемляет. полно же например одинаковых автомобилей, табуреток, кроватей и пр. вещей. Просто бесплатный софт как нанокад - не ваш. Это как если вас пустили бесплатно даже пожить в квартиру, а вы взялись вкладывать деньги в ее ремонт и реконструкцию. когда оно не ваше - зачем это делать? Хотя конечно какие то обыденные вещи делать можно, ничего плохого про нанокад не скажу.
вообще полно открытых кадов под которые можно было бы пилить что то свое (qcad не pro, freecad и т.д.) но как автор выразился - ему было интересней запилить полностью свой, и в принципе получилось не так плохо.
у меня сейчас критерий достаточности када стал - для нужд cnc плазма. подвинуть-поправить детали, поставить хвостики для луча, и т.д. ничего особо сверхестественного не требуется. автокад2000 какой нибудь справляется прекрасно. Кстати открытая часть qcad имеет поддержку dwg вплоть до последней версии (нет не открытая стоит 30 евро).

Последний раз редактировалось ETCartman, 19.11.2013 в 19:50.
ETCartman вне форума  
 
Непрочитано 19.11.2013, 23:56
#10
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,619


Offtop: Аналогии у Вас странные. Одно дело зайти и жить в чужую квартиру, из которой никогда не выгонят. Другое дело не имея квартиры пойти в лес, срубить много деревьев, построить сруб... Ну вы поняли.. Я занимаюсь парусным спортом, так наш рулевой тоже "такой" - ему делать лодку нравится больше, чем на ней гоняться.
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Автор темы   Непрочитано 20.11.2013, 00:04
#11
zamtmn

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


ETCartman
В триале qcad`а есть поддержка dwg (насколько я понял на oda`вском движке) отключающаяся через несколько минут использования, в гите либрекада тоже есть ветка с началом поддержки dwg полностью своей реализации. Но от одной поддержки толку не много, если программа не перенимает полностью "идеологию" автокада - т.е. теже примитивы, теже стили, теже приемы работы... Ни qcad ни в librecad (да и вообще по сути они однояйцевые близнецы) этого нет, такчто dwg там имхо ненужен...
Недавно вышла новая community версия qcad - программа существенно ускорилась, появился инспектор объектов. Но всеравно скорость обработки больших чертежей в qcad и особенно в librecad пока оставляет желать лучшего.
>>но как автор выразился - ему было интересней запилить полностью свой, и в принципе получилось не так плохо.
Получилось неплохо (сам себя не похвалишь), но очень недоделано - руки всего 2, ночами спать охота... толком довести хоть чтото до конца невыходит
zamtmn вне форума  
 
Непрочитано 20.11.2013, 14:34
| 1 #12
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,648


Цитата:
Сообщение от swell{d} Посмотреть сообщение
[offtop]Аналогии у Вас странные. Одно дело зайти и жить в чужую квартиру, из которой никогда не выгонят. Другое дело не имея квартиры пойти в лес, срубить много деревьев, построить сруб...
Все гораздо проще. Сегодня это бесплатно. Завтра будет платно, и может даже и дорого, потому как хозяин - барин. Стоимость ПО часто привязывается к валюте, а валютные курсы могут меняться, допустим лет 15 назад до кредитной накачики 100-200 долларов были нормальными деньгами. Периоды кредитных накачек меняются периодами кредитного сжатия, когда сие вернется назад, вы будете иметь копию ПО стоимостью несколько средних зарплат, то что вчера не стоило ползарплаты. А у вас вагон файлов с расширением .абвгд и куча своих наработок под конкретное программное обеспечение.
А открытое ПО коль вы его освоите и подгоните под себя, таких проблем вам не создаст. Если вы инженер и программное обеспечение инструмент вашей деятельности, ваш инструмент должен быть ваш. И кстати я бы не сказал что все открытое ПО подобно срубу в деревне. Полно открытых программ гораздо лучше платных даже на сегодняшний день. И полно таких (типа qcad) которые просто требуют слегка переучиться и вполне ничего для многих приложений.

Последний раз редактировалось ETCartman, 20.11.2013 в 14:42.
ETCartman вне форума  
 
Непрочитано 20.11.2013, 15:26
#13
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,619


Offtop: ерунда. нанокад 3.7 бесплатный и будет бесплатным всегда. новые версии - платные, но 3.7 будет бесплатным всегда. и 3.7 бодрее 2000 акада
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Непрочитано 20.11.2013, 15:35
#14
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,648


Offtop: где взять 3.7 ? На сегодня 5 версия - бесплатная, но лицензия выдается на год
ETCartman вне форума  
 
Непрочитано 20.11.2013, 15:43
#15
Kinzer


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


swell{d}, Offtop: open sourceэто как секта (в хорошем понимании, если такое есть) лучше не спорить.
Kinzer вне форума  
 
Непрочитано 20.11.2013, 15:57
#16
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,619


ETCartman, Offtop: гуглим "nanocad free" - там должна быть 3.7, т.к. 5 пока только по подписке
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Автор темы   Непрочитано 20.11.2013, 15:57
#17
zamtmn

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


swell{d}
>> Другое дело не имея квартиры пойти в лес, срубить много деревьев, построить сруб... Ну вы поняли..
Думаете купить крутые хоромы и обставить всё мебелью из горбыля на гвоздях сильно лучше?
То что на видео всё происходит в нанокаде - не заслуга нанокада, он ничем не лучше других клонов, а темболее первоисточника. Там вполне мог бы быть и q и libre, и для таких несложных чертежей это было бы экономически более выгодно (не в обиду, на мой неопытный взгляд...), просто вам было так удобнее.
Мне нужны свои кастомные примитивы, в свое время я не нашел простого способа сделать их в автокаде - для меня проще такое решение
такчто вопрос
>>но почему было не взять ... в качестве платформы
для меня не стоял, поддержу ETCartman, делать чтото серъезное под закрытое ПО имеет смысл только надеясь на существенную прибыль - я на это не расчитываю - хобби. Можно было подключиться в разработку qcad и librecad... но свободная версия qcad существует только для галочки (редко обновляется, непонятно как комитить и в каком ключе идет разработка...), librecad на тот момент вообще не существовало. В итоге по положению на сейчас zcad во многих параметрах переплюнет и q и libre
zamtmn вне форума  
 
Непрочитано 20.11.2013, 17:32
#18
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,648


я согласен что любители открытого ПО напоминают иногд секту. Сектантское состоит в отрицании коммерческого ПО полностью. Но я допустим коммерческое не отрицаю, а открытое очень помогает в тех случях когд покупк чего либо не оправдана экономически а воспользовться той или иной опцией нужно. в частности все программы для 2д черчения для меня - анахронизм, но иногд нужно что то простое набросать
ETCartman вне форума  
 
Непрочитано 20.11.2013, 18:22
#19
Kinzer


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


ETCartman, Offtop: Об этом и речь. Каждый подбирает себе инструмент по возможностям и потребностям. И открытое ПО не всегда перевешивает на чаше весов, имхо. А для хобби конечно открытое ПО более очевидный и правильный выбор, наверное, хотя опять же зависит от человека, его возможностей и предложений коммерческого софта.
Kinzer вне форума  
 
Непрочитано 20.11.2013, 21:30
#20
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,648


Цитата:
Сообщение от Kinzer Посмотреть сообщение
Об этом и речь. Каждый подбирает себе инструмент по возможностям и потребностям.
Ну да - например Solidworks имеет открытый аналог (самый мощный на сегодняшний день) Freecad. Тоже feature-based parametric принцип. Возможно в принципе работать во Freecad, но это будет занимать гораздо больше времени. Если конечно освоить все Freecad-овские фичи, в том числе python интерфейс, то со временем разрыв в производительности можно сократить для многих задач. Но поскольку такого рода работа моя основная, я бы предпочел купить Solidworks (это примерно $3K - в данном случае цена вполне адекватна для такой программы и того где она мне нужна).
2D черчение нужно для небольшой коррекции файлов для CNC - очень редко. Полно открытых и бесплатных чертилок годятся для этого. A9CAD (кстати dwg до 2005)
чистый freeware в том числе commercial, qcad, еще ряд программок.
Но покупать даже Autocad LT или даже в 3 раза более дешевые intellicad аналоги для этого - кажется несообразно дорого. Ну 30 евро за QCAD Pro - копейки, раз побухать
а 400 уже много.
Для расчетов например. Иногда нужно посчитать тепловую задачу. Покупать "дешевую" программу за 20 тыс - за раз - много. И ее тоже надо будет учить и тестировать как и открытую. Есть для этого CalculiX - по многим функциям даже превосходящий коммерческие программы. Я его потестю для себя и буду пользовать.
Пока времени нет взглянуть лучше на ZCAD но я обязательно сделаю это. Мне кажется лучше всего написать подробный мануал для тех кто хочет включиться в разработку. Но это может занять времени довольно много. Хотя плюс что и Lazarus вполне простая система тоже. Я пытаюсь тоже делать что то открытое для хобби и времени тоже немного. Но хотелось бы взглянуть на код ZCADа и может быть что то позаимствовать оттуда для себя
ETCartman вне форума  
 
Автор темы   Непрочитано 23.11.2013, 01:10
#21
zamtmn

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


ETCartman
Мануал написать можно (ну или хорошо прокоментировать исходники, что имхо лучше), но только при заинтересованности в нем. просто так, в ящик - неохота.
>>Но хотелось бы взглянуть на код ZCADа и может быть что то позаимствовать оттуда для себя
ZCAD в принципе получился довольно сложен и по началу будет трудно врубиться что-где смотреть, также всё написано в одиночку - грязно и мало коментариев. Такчто если соберешся и с лету не разберешся - стукни в аську или в мыло. Я прекрасно понимаю что эти косяки нужно исправлять, но всё сразу не получится, по мере интереса.
zamtmn вне форума  
 
Непрочитано 23.11.2013, 15:22
#22
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Плюс к тому же желательно видеть историю изменений, а комментирование исходников - это вообще обязательная практика
gomer вне форума  
 
Автор темы   Непрочитано 23.11.2013, 16:47
#23
zamtmn

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


Историю изменений можно отследить в свн клиенте, вплоть до строк которые менялись
zamtmn вне форума  
 
Непрочитано 23.11.2013, 17:59
#24
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


ну, я имел ввиду history.txt
gomer вне форума  
 
Непрочитано 23.11.2013, 19:07
#25
hexD

КМД
 
Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 511
<phrase 1=


посыл темы в чем? я чето не догнал...
hexD вне форума  
 
Автор темы   Непрочитано 23.11.2013, 19:11
#26
zamtmn

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


hexD
в первом посте снизу под спойлером
zamtmn вне форума  
 
Непрочитано 23.11.2013, 19:27
#27
hexD

КМД
 
Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 511
<phrase 1=


Если позволите один ненавязчивый вопрос - ZCad работает "на" SQLite?
hexD вне форума  
 
Непрочитано 23.11.2013, 20:00
#28
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,648


Цитата:
Сообщение от gomer Посмотреть сообщение
Плюс к тому же желательно видеть историю изменений, а комментирование исходников - это вообще обязательная практика
это обязательная когда вы работаете программистом и пишете за почасовую оплату. комментирование иногда отнимает больше времени чем написание кода на самом деле. когда вы пишете для хобби то это просто усложняет работу. по хорошему должно быть руководство разработчика которое описывает общую работу программы (такой достаточно сложной как ZCAD), отдельные ее функциональные части и так далее. Вообще для открытого софта это важная веха - получить устойчивый и распределенный коллектив разработчиков. при таком раскладе проект не заглохнет в случае если у автора пропадет интерес.
ETCartman вне форума  
 
Непрочитано 23.11.2013, 20:07
#29
bahil


 
Сообщений: n/a


Комменты в исходнике обязательны. Не важно "для себя" или "не для себя".
Очень помогают при отладке и модификации.
 
 
Непрочитано 23.11.2013, 21:22
#30
Serge Krasnikov

Конструктор, инженер-механик
 
Регистрация: 03.10.2003
Новосибирск
Сообщений: 5,787


Цитата:
Сообщение от ETCartman Посмотреть сообщение
Offtop: где взять 3.7 ? На сегодня 5 версия - бесплатная, но лицензия выдается на год
http://www.nanocad.ru/products/download.php?id=371
__________________
"а все, что я говорю, - в граните отливается"
Serge Krasnikov вне форума  
 
Автор темы   Непрочитано 24.11.2013, 03:57
#31
zamtmn

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


bahil
>>Комменты в исходнике обязательны. Не важно "для себя" или "не для себя".
не спорю. но по мановению палки коменты в ~100к строк исходников не появятся.
hexD
>>ZCad работает "на" SQLite?
нет. работает сам по себе. в зависимотях тоько OpenGL

Последний раз редактировалось zamtmn, 24.11.2013 в 04:04.
zamtmn вне форума  
 
Непрочитано 25.11.2013, 18:40
#32
YarUnderoaker

Негропроект, инженегр-конструктор
 
Регистрация: 16.02.2008
Черкассы
Сообщений: 829


Заглянул в модули рендера - увидел glVertex, glScale
Сейчас когда все (даже Intel) железо поддерживает OpenGL 3.3 (шейдеры и вершинные буфера) основывать рендер на столь устаревших и непродуктивных методам очень недальновидно
YarUnderoaker вне форума  
 
Автор темы   Непрочитано 25.11.2013, 21:21
#33
zamtmn

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


>>увидел glVertex, glScale
Ниче это не . Я за версиями гоняться не собираюсь, максимум glVertex заменится на VBO, но он есть и в 1.х в виде расширения. Применительно к кад в новых версиях нет ничего (может плохо смотрел), наоборот, имею большое желание сделать вариант рендера вообще без GL.
zamtmn вне форума  
 
Непрочитано 25.11.2013, 22:01
#34
DEM

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


ХЗ, по мне так шибко тяжеловато разбираться в твоих исходниках.
Если бы хотя бы по более было бы задокументированно, то еще ничего.
Ну или хотя бы примитивов было по больше....
__________________
Шаг 12й......
Мои публикации
DEM вне форума  
 
Автор темы   Непрочитано 26.11.2013, 12:22
#35
zamtmn

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


DEM
Просто так разбираться конечно тяжело. Но если есть желание чтото приделать - то я документирую нужные места, возможно пишу скелет на который ты потом наращиваешь мясо...

>>Ну или хотя бы примитивов было по больше....
недавно появились размерные примитивы - повернутый и выровненный, доделываю радиальный и диаметральный. Чего конкретно не хватает?
zamtmn вне форума  
 
Непрочитано 26.11.2013, 12:30
#36
DEM

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


Меня интересовали как ты помнишь сплайны и 3d фейсы
__________________
Шаг 12й......
Мои публикации
DEM вне форума  
 
Автор темы   Непрочитано 26.11.2013, 12:56
#37
zamtmn

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


3dфейс - есть и это имхо очень простой примитив, не сложнее линии
сплайн появился но только по управляющим точкам, с контрольными я работать не умею(( - там очень хитрая математика всплывает. В автокаде насколько я понял и контрольные точки и направления начала и конца - это надстройка над управляющими точками. Во всяком случае созданый в автокаде по контрольным точкам и направлению сплайн будет верно отображаться в зкаде.
По сути у меня для сплайнов сделана полурабочая заглушка - показываются, редактируются но какието серъезные действия с ними упираются в математику, требуется либо реализовывать эту математику (мне не по силам) либо прилаживать чтото типа OpenNURBS.
Лично мне сплайны не интересны и в зкаде они появились для обкатки типов линий на криволинейных объектах, как самый сложный случай этих криволинейных объектов

Последний раз редактировалось zamtmn, 26.11.2013 в 13:08.
zamtmn вне форума  
 
Непрочитано 26.11.2013, 14:11
#38
DEM

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


Цитата:
Сообщение от zamtmn Посмотреть сообщение
3dфейс - есть и это имхо очень простой примитив, не сложнее линии
Мне нужен был многоточечный а не простой....
__________________
Шаг 12й......
Мои публикации
DEM вне форума  
 
Автор темы   Непрочитано 26.11.2013, 14:28
#39
zamtmn

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


ЕМНИП в 3дфейсе 3 или 4 вершины, если больше это уже не 3дфейс а чтото другое.
Тебе нужен был тесселятор, в зкаде он недавно появился в виде тесселятора TTF шрифтов на основе GLU, могу оформить его отдельным классом - умеет тесселировать любые полигоны с дырками
zamtmn вне форума  
 
Непрочитано 26.11.2013, 14:31
#40
DEM

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


НУ по всей видимости так....
Пока ничего добавлять не надо, я сейчас под автокадом работаю...
Другое дело что было бы свободное время, можно было бы попробовать сделать универсальную прогу для создания расчетных схем и просмотра результатов...
__________________
Шаг 12й......
Мои публикации
DEM вне форума  
 
Автор темы   Непрочитано 26.11.2013, 23:27
#41
zamtmn

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


>>Другое дело что было бы свободное время, можно было бы попробовать сделать универсальную прогу для создания расчетных схем и просмотра результатов...
Мое свободное время уходит на ковыряние в "движке" зкада, такчто могу только помогать в этом нелегком деле))
>>Пока ничего добавлять не надо, я сейчас под автокадом работаю...
Я не тороплюсь чтото добавить, по большому счету меня всё устраивает как есть. Но прекрасно понимаю что делая для себя в итоге хорошего будет мало - с себя взятки гладки - правильность и красота приносится в жерту скорости и простоте((.
Например сплошь и рядом в в зкаде одни и теже вещи делаются разными способами - сейчас я думаю так лучше, год назад думал по другому, а 2 года назад вообще не думал)) Нужно все перерабатывать-стандартизовывать и описывать.
Пожалуй попробую тут спросить совета:
Одна из частей зкада менеджер команд, самый простой способ расширения возможностей программы - написание новой команды и регистрация их в менеджере, тогда она становится доступной для пользователя из интерфейса.
В простейшем случае (без интерактивности) команда это просто функция которой передается выполнение в момент ввода ее имени пользователем в комстроку или нажатия соответствующей кнопки интерфейса. Регистрация такой команды происходит с помощью процедуры:
Код:
[Выделить все]
function CreateCommandFastObjectPlugin(ocs:ComFuncWithOper;name:pansichar;SA,DA:TCStartAttr):pCommandFastObjectPlugin;
ocs-адрес функции
name-имя команды
SA,DA-соответственно атрибуты разрешения и запрещения выполнения команды
например команда SelectAll - выбор всех примитивов в чертеже регистрируется так:
Код:
[Выделить все]
CreateCommandFastObjectPlugin(@SelectAll_com,'SelectAll',CADWG,0);
т.е. в исходниках имя процедуры - SelectAll_com, в интерфейсе она будет доступна по имени SelectAll, для своего выполнения она требует наличия открытого чертежа и ничто ее не может запретить.

Пока для атрибутов разрешения\запрещения определена только константа
Код:
[Выделить все]
const
     CADWG=1;
при указании ее при регистрации зкад соответственно разрешит выполнение команды только при наличии открытого чертежа, сюда также сразу просится наличие выбраных примитивов, чтобы например при указании (CADWG or CASelEntsPresent) команда могла запуститься только при наличии выбранных примитивов.
Это все для минимизации внутренних проверок внутри команд, какие еще ситуации тут стоит предусмотреть?
Также думаю при регистрации надо добавить атрибут "прозрачного выполнения" - например при черчении полилинии вызов команды UNDO не должен отменять команду черчения, только последний сегмент полилинии, а вызов команды LINE должен отменить черчение полилинии и чертить линию.
Возможно стоит при регистрации также указать какие действия выполнять по завершению команды, например отменить выбор примитивов или оставить их выбранными для следующей команды, перерисовать чертеж или нет

----- добавлено через ~24 ч. -----
Еще более интересная ситуация с "интерактивными" командами, когда требуется указание координат мышкой. Сейчас это классы со своими обработчиками OnMouseClick, OnKeyPress и т.п. Очень сложно и громоздко, собственно по этому и сделано всего несколько команд черчения.
Гораздо удобнее это иметь в виде:
Код:
[Выделить все]
Procedure DrawLine;
...
p1=GetPoint();
p2=GetPoint();
CreateLine(p1,p2);
...
от пользователя получены 2 точки и создана линия.
Но с этой GetPoint большая проблема - видимо придется внутри нее крутить свой цикл обработки сообщений помимо Application.Run и неочень понятно как быть если пользователь во время ее выполнения захочет потыкать в другие элементы управления - последовательность выполнения нарушится.

Также неясно как в этом случае быть с резиновыми примитивами, которые тянутя за мышкой, если для примера выше еще можно выкрутится
Код:
[Выделить все]
Procedure DrawLine;
...
p1=GetPoint();
p2=GetPointAndDrawLineTo(p1);
CreateLine(p1,p2);
...
то на все случаи жизни "резиновые" функции получения координат не напишешь(( нужно в GetPoint както отдавать информацию о том какие примитивы по каким законам тянуть за мышью. Как этот вопрос решается в автокаде?
zamtmn вне форума  
 
Автор темы   Непрочитано 28.11.2013, 11:00
#42
zamtmn

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


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

----- добавлено через ~11 ч. -----
добавил обещаный модуль
http://svn.shamangrad.net/zcad/trunk...ndsexample.pas
команда создания выровненного размера, пока без "резиновости"
zamtmn вне форума  
 
Автор темы   Непрочитано 29.11.2013, 23:31
#43
zamtmn

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


Интерфейс "интерактивности" устаканился.
Код:
[Выделить все]
function Get3DPoint(prompt:GDBString;out p:GDBVertex):GDBBoolean;
function Get3DPointInteractive(prompt:GDBString;out p:GDBVertex;const InteractiveProc:TInteractiveProcObjBuild;const PInteractiveData:GDBPointer):GDBBoolean;
Get3DPoint - простое ожидание точки указаной пользователем (мышкой или клавой), возвращает true если всё прошло нормально и указанные координаты будут лежать в параметре p. Если вернулся false - команда была отменена (нажат еск, запущена другая команда), в параметре p при этом будет лежать мусор.

Get3DPointInteractive - тоже самое, но с "резиновыми" возможностями. при перемещении мышки будет вызываться подпрограмма указанная в параметре InteractiveProc, ей будет переданы координаты мыши, состояние левой кнопки и PInteractiveData который может указывать на любые пользовательские данные, например на примитив который надо тянуть за мышкой. InteractiveProc должна быть объявлена так:
Код:
[Выделить все]
procedure(const PInteractiveData:GDBPointer;Point:GDBVertex;Click:GDBBoolean);
PInteractiveData - указатель на пользовательские данные, Point - положение мышки, Click - состояние левой кнопки мышки.
например если в Get3DPointInteractive передать такую процедуру
Код:
[Выделить все]
procedure InteractiveLineManipulator(const PInteractiveData:GDBPointer;Point:GDBVertex;Click:GDBBoolean);
begin
     PGDBObjLine(PInteractiveData)^.CoordInOCS.lEnd:=Point;
     PGDBObjLine(PInteractiveData)^.FormatEntity(gdb.GetCurrentDWG^);
end;
то линия указанная в PInteractiveData быдет таскаться концом за мышкой.

По сути это получились теже классы с onMouseMove и onMouseClick, но реализованные в процедурах. Проще "резиновость" имхо не сделать
zamtmn вне форума  
 
Непрочитано 30.11.2013, 08:46
#44
Pum-purum

PHP-разработчик
 
Регистрация: 12.05.2008
Ижевск
Сообщений: 1,153


zamtmn, как происходит процесс программирования? Где вы набираете код? Что за язык? Могу ли я вам чем-то помочь?)
Pum-purum вне форума  
 
Непрочитано 30.11.2013, 10:29
#45
hexD

КМД
 
Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 511
<phrase 1=


вот здесь в сорцах есть крутая программка, предел возможностей любителя-одиночки...
http://www.cs.technion.ac.il/~gershon/GuIrit/
hexD вне форума  
 
Автор темы   Непрочитано 30.11.2013, 11:43
#46
zamtmn

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


Pum-purum
Пишу в Lazarus, это IDE для freepascal. То что нужно и ссылки где взять - перечислены в первом посте. Помочь можно, даже нужно - написанием чего либо, тестиванием или просто высказав пожеланья-замечания

hexD
Да, по видео - чтото серъезное. Но сырцы я ненашел, и не совсем в тему - 3D моделирования я не касаюсь

Последний раз редактировалось zamtmn, 30.11.2013 в 11:55.
zamtmn вне форума  
 
Непрочитано 30.11.2013, 14:45
#47
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от hexD Посмотреть сообщение
вот здесь в сорцах есть крутая программка, предел возможностей любителя-одиночки...
У этой программки серьезный 3D движок, разрабатывавшийся не одним поколением студентов я так думаю, а сама она - лишь фантик для этого движка
zamtmn, можете INSERT реализовать?
gomer вне форума  
 
Автор темы   Непрочитано 30.11.2013, 14:55
#48
zamtmn

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


>>можете INSERT реализовать?
Что конкретно?
INSERT есть, но он сделан чуток по другому - без коментариев и сплошь и рядом одному мне понятные "магические" заклинания)).
Вынести и оформить с коментариями?
zamtmn вне форума  
 
Непрочитано 30.11.2013, 20:49
#49
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Что конкретно?
Я имел ввиду вставку блоков из внешних файлов с помощью диалогового окна или хотя бы через ком. строку
gomer вне форума  
 
Непрочитано 30.11.2013, 20:58
#50
hexD

КМД
 
Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 511
<phrase 1=


Цитата:
Сообщение от gomer Посмотреть сообщение
У этой программки серьезный 3D движок, разрабатывавшийся не одним поколением студентов я так думаю,
студенты и серъезный движок вещи несовместимые ) я.т.д., там профессор шибко вумный, и имхо это его детище...но ктож его знает...особенно впечатляют возможности различных интерактивных(гуй) трансформаций, поковыряв гуй поглубже не стану называть его фантиком, тоже чья то немалая работа...жаль что на лысом С,(а не на асме ))) ), но как грится для случая энтузиазма - то что доктор прописал...
hexD вне форума  
 
Автор темы   Непрочитано 30.11.2013, 21:22
#51
zamtmn

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


>>Я имел ввиду вставку блоков из внешних файлов с помощью диалогового окна или хотя бы через ком. строку
Это можно, даже можно сказать тоже есть - в пустой чертеж теже ОПСные извещатели вставляются из внешних файлов. Вот предпросмотр вставляемых блоков пока хз с какой стороны подходить
zamtmn вне форума  
 
Автор темы   Непрочитано 02.12.2013, 01:48
#52
zamtmn

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


переделал "примерную" команду создания выровненного размера - добавил "резиновость"
http://svn.shamangrad.net/zcad/trunk...ndsexample.pas

Сейчас надо аналогичную Get3DPoint процедуру для выбора примитивов
Миниатюры
Нажмите на изображение для увеличения
Название: dimaligned.gif
Просмотров: 168
Размер:	110.8 Кб
ID:	117690  
zamtmn вне форума  
 
Автор темы   Непрочитано 06.12.2013, 22:05
#53
zamtmn

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


825 ревизия
+черчение выровненных и повернутых размеров
+комбобокс текущего размерного стиля
+черчение дуг
+опции для черчения окружностей (не связанные с выбором примитивов)

зы.
Приму помощь в виде написания окон редактирования стилей текста и стилей размеров, там ничего сложного - чистое формошлепство. Если кто хочет освоить Lazarus - самое то
zamtmn вне форума  
 
Автор темы   Непрочитано 14.12.2013, 11:24
#54
zamtmn

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


Добавил возможность "декорирования" параметров в инспекторе, Т.е. теперь при клике на строчке слоя открывается не вложенное поддерево с параметрами этого слоя, а комбобокс с определенными в чертеже слоями. Но это уже не автоматическая генерация содержимого инспектора и требует дополнительных усилий. Осталось решить вопрос по привязке к параметрам инспектора отдельных окон редактирования этих параметров и получится конфетка а не инспектор))
zamtmn вне форума  
 
Непрочитано 15.12.2013, 22:22
#55
DEM

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


Может попробовать какой-то аналог экселя присобачить....
__________________
Шаг 12й......
Мои публикации
DEM вне форума  
 
Непрочитано 15.12.2013, 23:16
#56
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


может еще кофеварку присобачить?
gomer вне форума  
 
Непрочитано 16.12.2013, 07:16
#57
DEM

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


Цитата:
Сообщение от gomer Посмотреть сообщение
может еще кофеварку присобачить?
Лучше принтер для купюр...
__________________
Шаг 12й......
Мои публикации
DEM вне форума  
 
Автор темы   Непрочитано 16.12.2013, 08:36
#58
zamtmn

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


Смех смехом, а инспектор штука нужная - благодаря ему можно забивать на бесконечное написание гуя. Собственно програмистов делфи\лазаря и не любят за это - обычно у них программы начинаются с формошлепства и весь код размазан по куче обработчиков onЧетоТам.
В краце как работает: при старте зкада парсится файл rtl\system.pas - там лежат все описания типов которые в дальнейшем доступны в инспекторе объектов. Описания на паскале и просто выдраны из исходников. Сначала я делал это руками, но потом написал небольшую утилитку - utils\typeexporter.exe, она проверяет все файлы исходников зкада отмеченные в utils\filelist.txt и экспортирует помеченные описания типов в rtl\system.pas.
т.е. я например определяю какуюто структуру данных в программе:
Код:
[Выделить все]
...
type
  TMyData=record
    data1,data2:integer;
  end;
...
И в дальнейшем хочу видеть ее в инспекторе. добавляю ссылку на файл с описанием TMyData в utils\filelist.txt если его там еще нет, помечаю TMyData для экспорта и по возможности даю параметрам "человеческие" имена. Получается чтото вроде
Код:
[Выделить все]
...
type
{EXPORT+}
  TMyData=record
    data1:GDBInteger;(*Поле данных 1*)
    data2:GDBInteger;(*Поле данных 2*)
  end;
{EXPORT-}
...
После запуска typeexporter.exe можно будет соответствующими процедурами "засовывать" данные типа TMyData в инспектор.
в описании доступны некоторые модификаторы для инспектора, они оформляются в виде коментариев в коде:
(*'какоето имя'*) - более понятное пользователю имя параметра, без него параметр называется также как в программе
(*oi_readonly*) - запрет редактирования параметра пользователем в инспекторе
(*hidden_in_objinsp*) - не отображать параметр в инспекторе

Кто считает что в зкадном инспекторе отображается много лишнего - это я просто забыл/лень поставить (*hidden_in_objinsp*) в соответствующем месте

Offtop: Товарищи офтоперы, отныне флуд и офтопик в теме разрешается только в обмен на чтото полезное, т.е. хочешь пофлудить - сначала (ну или потом) ченить закомить или подкинь идейку)). По курсу один офтопик пост на одно чтото полезное

Последний раз редактировалось zamtmn, 16.12.2013 в 09:38.
zamtmn вне форума  
 
Автор темы   Непрочитано 03.01.2014, 22:58
#59
zamtmn

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


>>Осталось решить вопрос по привязке к параметрам инспектора отдельных окон редактирования этих параметров и получится конфетка а не инспектор))
Выхожу из запоя)) - завершил "причесывание" инспектора. Теперь к любым типам данных в инспекторе можно привязать "быстый редактор" в виде кнопочки рядом со значением - он будет вызван при нажатии этой кнопочки (наподобии как до этого было сделано с boolean), и внешнюю процедуру отображения этого значения - т.е. теперь в инспекторе могут быть картинки толщин или типов линий и т.п., а не только сухие цифры/тексты.
В предидущей теме было замечание про "неинтуитивность" настройки привязок - стало всё интуитивно, осталось нарисовать форму этого редактора))
zamtmn вне форума  
 
Автор темы   Непрочитано 20.01.2014, 11:14
#60
zamtmn

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


Добавилась возможность указывать значения для инспектора в чертеже. Полная мелочь, а кровушки попила))
Миниатюры
Нажмите на изображение для увеличения
Название: dwg2objinsp.gif
Просмотров: 137
Размер:	262.8 Кб
ID:	120707  
zamtmn вне форума  
 
Автор темы   Непрочитано 03.02.2014, 11:44
#61
zamtmn

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


Очередное "минорное" добовление. с виду не заметно, а реализовать было довольно тяжко))
- изменения примитивов через инспектор объектов теперь undo\redo`тся
zamtmn вне форума  
 
Непрочитано 03.02.2014, 16:55
#62
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


zamtmn, не нужно менять геометрию по каждому чиху в инспекторе
gomer вне форума  
 
Автор темы   Непрочитано 03.02.2014, 20:43
#63
zamtmn

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


Пожалуй да, сейчас у меня сделано 2 варианта
-по каждому чиху
-по надатию ентера
надо реализовать по ентеру и по потере фокуса
zamtmn вне форума  
 
Непрочитано 12.02.2014, 01:55
#64
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,648


http://andorra.sourceforge.net/index...ction=features
ETCartman вне форума  
 
Автор темы   Непрочитано 12.02.2014, 15:43
#65
zamtmn

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


Игровые движки для cad бесполезны - под другое заточены

----- добавлено через ~23 ч. -----
Чето пропало желание чтото серъезное делать, только мелочи((
В порядке хваставства - обзавелся монитором 2560х1440 - пришлось увеличить дефолтные шрифты в системе. Интерфейс зкада на увеличеных шрифтах смотрится нормально, единственное пришлось увеличить высоту строк в испекторе. Такчто в новых версиях на обычных разрешениях инспектор будет выглядеть "жирно", для возвращения прежнего вида нужно уменьшить параметр "Object inspector row height" на вкладке "интерфейс" инспектора, старое значение параметра 21. или поправить файл /rtl/sysvar.pas заменив строку
Код:
[Выделить все]
INTF_ObjInspRowH:=31
на
Код:
[Выделить все]
INTF_ObjInspRowH:=21
zamtmn вне форума  
 
Непрочитано 17.02.2014, 21:52
#66
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,648


http://sourceforge.net/projects/free...Version%202.6/
делфи
ETCartman вне форума  
 
Автор темы   Непрочитано 18.02.2014, 00:39
#67
zamtmn

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


ETCartman
Спасибо за ссылку. В сети встречается довольно много похожих программ как серъезных, так и совсем простых, большинство из них я уже смотрел как устроены. К сожалению ничего интересного подчерпнуть до сих пор неполучилось - разве что как образцы оформления кода (но и тут у меня свои тараканы - нелюбовь к дизайнеру, классам, пропертям...)
zamtmn вне форума  
 
Непрочитано 18.02.2014, 02:00
#68
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,648


там может быть можно вытащить экспорт модели в IGES
вообще это узкоспециализированная программа для расчета корпусов судов (геометрия, гидростатика, сопротивление). В принципе простая конечно - все пляшет от параметрической модели.
ETCartman вне форума  
 
Автор темы   Непрочитано 18.02.2014, 10:08
#69
zamtmn

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


>>там может быть можно вытащить экспорт модели в IGES
Зачем он?
zamtmn вне форума  
 
Непрочитано 18.02.2014, 10:28
#70
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,648


ну это как бы уже настоящий cad формат. хотя в чертильном смысле он мало чего значит - скорее обмен геометрией. для расчетов например
ETCartman вне форума  
 
Автор темы   Непрочитано 18.02.2014, 11:04
#71
zamtmn

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


В смысле настоящий 3d формат? дело не столько в формате, сколько в примитивах возможных в данном формате и спосабах работы с ними. Основной у меня пока dxf - соответственнно всё и пляшет от него - примитивы, стили и т.д. Добавлять другой формат - получится не полноценная реализация, а некоторое "пересечение" добавляемого формата и dxf.
Т.е. сделать экспорт существующих в зкаде примитивов и стилей кудалибо большого труда не составит (возможно с потерями), а полноценная реализация довольно проблематична.
Также написание полноценных 3д примитивов - в одиночку для меня невыполнимая задача. Огромную роль играет мотивация - интересно мне чтото - оно появляется легко и непринужденно... пытаюсь сделать "план развития" - не особо интересные вещи так и остаются в txt файле)) ИМХО всякие фичи должны делаться заинтересованными людьми, тут даже деньги не помогут как личная заинтересованность.
zamtmn вне форума  
 
Автор темы   Непрочитано 28.02.2014, 14:25
#72
zamtmn

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


Появился новый режим выделения - кнопка SN над инспектором объектов. В этом режиме при выделении устройства\кабеля\трассы автоматически "довыделяются" устройства с такимже именем. Удобно при внесении изменений в уже выполненную связку схема структурная-схема подключений-план расположения.
zamtmn вне форума  
 
Непрочитано 12.03.2014, 21:11
#73
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,648


А вот между прочим попробовал qcad и пришел к крамольному выводу что хотя они и не пытались создать прямой клон типа A9CAD
тем не менее пользоваться им на порядок удобней, а все несоответствия осваиваются очень быстро. Как плюс - проф версия (со всеми версиями dwg и CNC) стоит смешные копейки
(в бесплатной как и у вас - dxf2000). Конечно это сделано для простых чертежей, но по моему упрощения там вполне разумны.
в конечном итоге самые великие инженерные вещи созданы в доавтокадовскую эпоху, на кульмане, а уж возможности кульмана данная программа перекрывает
ETCartman вне форума  
 
Автор темы   Непрочитано 12.03.2014, 22:35
#74
zamtmn

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


Последняя версия qcad порадовала - наконецто появился инспектор объектов.
Но имхо всеравно не очень юзабельна - нет полярной трассировки, типов линий, размерных стилей - это то что сразу бросается в глаза... а главное тормозит(( Возможности кульмана конечно давно перекрыты, но для быстрого интуитивно понятного черчения - еще далеко
zamtmn вне форума  
 
Автор темы   Непрочитано 14.06.2014, 14:46
#75
zamtmn

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


Давно не копал зкад - копил энтузиазм))
Накопил и решил поковыряться в сторону "мультирендерности", т.е организовать возможность выбора различных API для графической системы. Почемуто всегда считал что автокад при отключеном ускорении использует для рисования GDI+, в инете куча хвалебных статей по этому интерфейсу. Попробовал и обломался - скорость GDI+ на порядок меньше GDI при выводе линий.
Или я чтото делаю нетак, или за старость интерфейса микрософт лишила его хардварной акселерации... Cделал небольшой тестик http://sourceforge.net/projects/zcad...t.zip/download - простое рисование случайных линий аредствами GDI, GDI+ и AGG. Буду благодарен если обладатели WindowsXP запостят сюда его результаты (циферки под первой и второй панелью, AGG не интересует, с ним всё ясно). Также интересуют результаты от обладателей интегрированных видеокарт и ATI\AMD
zamtmn вне форума  
 
Непрочитано 15.06.2014, 03:20
#76
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,274
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
OpenGL driver info: Intel Intel(R) HD Graphics 2000 3.1.0 - Build 9.17.10.3517
Draw 10000 random lines
Canvas: 13msec
GDIPlus: 456msec
AGG: 762msec
OpenGL: 2msec
Но у меня W7 x64
Александр Ривилис вне форума  
 
Непрочитано 15.06.2014, 12:13
#77
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Цитата:
OpenGL driver info: Intel Intel(R) HD Graphics 4.0.0 - Build 10.18.10.3282
Draw 10000 random lines
Canvas: 30msec
GDIPlus: 888msec
AGG: 1409msec
OpenGL: 1msec
Win8x64
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 15.06.2014, 14:46
#78
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,065


Цитата:
OpenGL driver info: ATI Technologies Inc. AMD Radeon HD 7700 Series 4.2.11733 Compatibility Profile Context
Draw 10000 random lines
Canvas: 23msec
GDIPlus: 928msec
AGG: 1580msec
OpenGL: 1msec
win7 x64
__________________
_бложиг
Boxa на форуме  
 
Непрочитано 15.06.2014, 14:55
#79
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,619


Цитата:
OpenGL driver info: NVIDIA Corporation GeForce 8600 GT/PCIe/SSE2 3.3.0
Draw 10000 random lines
Canvas: 25msec
GDIPlus: 757msec
AGG: 1022msec
OpenGL: 0msec
win8 x32
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Непрочитано 15.06.2014, 16:09
#80
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
OpenGL driver info: NVIDIA Corporation GeForce GT 630/PCIe/SSE2 4.2.0
Draw 10000 random lines
Canvas: 21msec
GDIPlus: 685msec
AGG: 1184msec
OpenGL: 0msec
win7 x64
gomer вне форума  
 
Автор темы   Непрочитано 15.06.2014, 16:20
#81
zamtmn

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


Спасибо! похоже XP уже не найтешь на рабочих компах))

Для полноты картины мои результаты на Win7x64:
Цитата:
OpenGL driver info: NVIDIA Corporation GeForce GTX 460/PCI/SSE2 4.1.0
Draw 10000 random lines
Canvas: 14msec
GDIPlus: 486msec
AGG: 809msec
OpenGL: 1msec
Цитата:
OpenGL driver info: NVIDIA Corporation GeForce GTX 460/PCI/SSE2 4.1.0
Draw 100000 random lines
Canvas: 134msec
GDIPlus: 4882msec
AGG: 8016msec
OpenGL: 12msec
Более менее можно будет пользоваться только Canvas (т.е. GDI методами). GDIPlus совсем не юзабельно, только в качестве рендера в метафайлы, для экспорта картинок((
zamtmn вне форума  
 
Непрочитано 15.06.2014, 17:13
#82
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


zamtmn, займитесь лучше базовым функционалом... Ну и вот еще, команда import... pdf файлы, серьезно? После импортирования dxf2000 в zcad (кстати неправильному) команда arc приводит к фаталу при выборе первой точки...
gomer вне форума  
 
Автор темы   Непрочитано 15.06.2014, 18:02
#83
zamtmn

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


>>zamtmn, займитесь лучше базовым функционалом...
Это самый что нинаесть базовый функционал, хренова что я это дело не предусмотрел когдато давным давно((
В двух словах как устроено сейчас и как планирую:
Сейчас примитивы умеют всё: и рисрваться и выделяться и привязки и трассировки, классы примитивов изза этого очень громоздки и тяжелы для понимания, а нужно еще добавлять расчленение, да мало ли что.
Планирую сделать некую прослойку между примитивом и графической системой. типа как в автокаде примитив объясняет движку как себя рисовать (worddraw или как там его в arx). Вроде как вырисовывается 3 уровня
- первый - база DXF примитивов c методом "worddraw" в котором они обясняют движку как выглядят
- второй "элементарные" примитивы (линии, дуги, фейсы еще чегонибудь) полученые движком из DXF примитивов. На этом уровне работают привязки, трассировки. По информации из этого уровня любой DXF примитив можно расчленить на состовляющие, не реализуя метод explode в классе DXF
- третий - переработка элементарных примитивов с второго уровня в примитивы понятные системе отображения в случае OpenGL - 3d точки, в случае GDI - 2d точки. На этом уровне работает выделение примитивов мышкой.

>>Ну и вот еще, команда import... pdf файлы, серьезно?
Поддержка pdf заявлена библиотекой которую я планировал использовать для импорта (fpvectorial)... но либа не развивается, естественно поддержки pdf пока там нет(( импорт вообще мной не проработан, на данный момент возможно вообще не работает, я им неразу не пользовался
zamtmn вне форума  
 
Непрочитано 23.06.2014, 13:36
#84
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Про GDI - вспомнил вдруг, есть-же еще Aforge, так их AForge.Imaging.Drawing.Line(...) так-же рисует в Bitmap, но т.к. там требует явного предварительного открытия BitmapData - он по скорости получается чуть быстрее, но главное его можно паралелить на любое количество потоков (как впрочем если и самому написать Брезенхема и писать напрямую в память). А с учетом "реальных" машин - считай скорость вырастет в 2-4 раза.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 23.06.2014, 14:22
#85
zamtmn

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


Aforge - не думаю что это можно просто зацепить к лазарю и использовать в линуксе, ктомуже если это чисто софтовый растеризатор - результаты будут на уровне AGG (он тоже софтовый, растеризует в битмап в памяти) из теста.
>>как впрочем если и самому написать Брезенхема и писать напрямую в память
не, это я делать точно не планирую)) ограничусь набором классов для легкого добавления в зкад любой "конечной рисовалки" и реализую эти рисовалки для GDI, opengl, возможно dx - если от него будет прок по сравнению с opengl на "слабых" компах
zamtmn вне форума  
 
Непрочитано 23.06.2014, 14:28
#86
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Цитата:
Сообщение от zamtmn Посмотреть сообщение
результаты будут на уровне AGG
Не он в один поток по скорости примерно как GDI - в несколько соответственно * на кол-во ядер. Все остальное - тебе видней, я с лазарем не знаком - но формально Aforge это обычный .Net dll.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 03.07.2014, 11:36
#87
zamtmn

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


В последних SVN комитах появился выбор варианта рендера OpenGL\GDI пока с кучай косяков и не все примитивы умеют через GDI рендериться - но уже понятно что скорость будет аховая((
zamtmn вне форума  
 
Автор темы   Непрочитано 15.07.2014, 23:23
#88
zamtmn

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


Выложил бинарники - 948 ревизия с пробой GDI рендера. снова нужен тест на XP (с классической темой оформления) на предмет наличия мерцания в области отрисовки чертежа - на W7 с классической темой вроде я поборол мерцание, но есть подозрения что в XP они остались(( Перед созданием\загрузкой чертежа нужно в инспекторе на вкладке Рендер в параметре Render backend Выбрать "GDI" иначе будет работать opengl вариант отрисовки
zamtmn вне форума  
 
Непрочитано 16.07.2014, 00:31
#89
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Выложил бинарники - 948 ревизия с пробой GDI рендера.
Теперь все заново программировать? Часть объектов не отображается, сетка и ручки тоже... Это на семерке
gomer вне форума  
 
Автор темы   Непрочитано 16.07.2014, 00:53
#90
zamtmn

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


>>Часть объектов не отображается, сетка и ручки тоже...
То что не отображается в этот момент пытается отрисовать себя GLными методами на несозданый GLный контекст

>>Теперь все заново программировать?
Не заново конечно, но переделывать нужно очень много, своеобразный глобальный рефакторинг. Особенно тошно становится при взгляде на текстовые примитивы - этож надобыло когдато такой хрени накодить))
Я в архитектуре CAD программ понимаю не много, соответственно развитие зкада это постоянные переделки. Но опенглный рендер будет работать нормально на всем этапе "переделки" и на выходе будет более универсальный и простой код примитивов
zamtmn вне форума  
 
Непрочитано 16.07.2014, 01:13
#91
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


осознание собственных заблуждений - это хорошо. Каждый через это проходит. Я так понимаю вы хотите сделать печать из zcad?
gomer вне форума  
 
Автор темы   Непрочитано 16.07.2014, 01:58
#92
zamtmn

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


Зачаток печати в зкаде был и даже работал, правда только в режиме "fit to paper", т.к. функцию подрезки примитивов по рамке печатаемой области выполняли края листа бумаги)), сейчас печать не работает. С "рендерным бакендом" GDI в виндовс печать получится почти автоматически, достаточно (почти достаточно ) будет контекст для рендера создать с принтера, а не с экрана.

>>Я так понимаю вы хотите сделать печать из zcad?
Я давно думал над "мультирендером", но основная подача всетаки некий абстрактный апи для рендера (OpenGL очень специфичен) и упрощение примитивов - вынос "сложных" и вобщемно ненужных чертежному примитиву вещей в отдельный "слой" - набор "низкоуровневыых" графических примитивов.
Мне нужны дуговые сегменты в полилиниях, добавлять их сейчас в примитив - потом замаешся поддерживать (я уже добавил так TTF в текстовые примитивы ), думаю добавить дуги в "низкоуровневые" примитивы будет проще и правильней
zamtmn вне форума  
 
Автор темы   Непрочитано 27.09.2014, 16:19
#93
zamtmn

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


Возник вопрос по анонимным блокам. Могу я их проигнорировать при чтении dxf?
Насколько я понимаю они создаются для примитивов типа размеры, штриховки и т.п. Т.е. содержат в себе внешний вид "составных" автокадовских примитивов. Программа читающая dxf может отобразить размеры и штриховки используя соответствующие анонимные блоки, не заморачиваясь генерацией примитивов на остове стилей. В этом случае я могу их не читать - всеравно поддерживаемые примитивы в зкаде перегенерируются, а не поддерживаемые игнорируются.
Существуют какиенибудь другие сценарии использования анонимных блоков?

Update:
*Aномер это от чего анонимный блок?
По состоянию на сейчас зкад "деанонимизирует" анонимные блоки, после сохранения появляется куча простых блоков вида *Dномер, *Aномер и т.п. и при дальнейшей обработке чертежа в автокаде возможны конфликты имен

Последний раз редактировалось zamtmn, 27.09.2014 в 16:31.
zamtmn вне форума  
 
Непрочитано 27.09.2014, 16:51
#94
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Насколько я понимаю это блоки копирования вставки
gomer вне форума  
 
Автор темы   Непрочитано 27.09.2014, 17:03
#95
zamtmn

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


После вставки вроде A$номер и неанонимный, анонимные начинаются со звездочки

----- добавлено через ~1 ч. -----
провел небольшой эксперимент:
*Dномер - размеры, можно игнорировать, на них есть ссылка только в размерном примитиве, уна у меня не обрабатывается
*Aномер - штриховки, возможно что то еще, вроде можно игнорировать, штриховки пока неподдерживаются
*Uномер - непонятно что, если юзать всякие экзотические стрелки на концах размерных примитивах, то в блоках этих стрелок появляются ссылки на анонимные блоки такого вида
zamtmn вне форума  
 
Автор темы   Непрочитано 30.09.2014, 20:06
#96
zamtmn

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


Цитата:
Сообщение от gomer Посмотреть сообщение
zamtmn, не нужно менять геометрию по каждому чиху в инспекторе
Не прошло и полгода, всвязи с забагованностью инспектора он помаленьку довольно сильно переписался)) Теперь чихи пропускаются, изменения комитятся к примитивам по нажатию ентера и потере фокуса.
zamtmn вне форума  
 
Автор темы   Непрочитано 03.11.2014, 16:21
#97
zamtmn

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


Выложил версию 1045. В ней еще доработал инспектор объектов, теперь он рисуется в соответствии с системными настройками - всякие подсветки при наведении мышки и прочие плюшки.

update:
Проверил работу на win xp, 7, 8. висты у меня нет, поэтому буду благодарен если кто выложит скриншот с висты

Последний раз редактировалось zamtmn, 03.11.2014 в 17:00.
zamtmn вне форума  
 
Автор темы   Непрочитано 16.11.2014, 00:06
#98
zamtmn

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


Как оказалось старый инспектор больше по душе большинству пользователей, в том числе и мне - сделал возможность отката к старой версии и еще немного настроек.
Выглядит примерно так:

Сейчас ломаю голову как проще сделать возможность множественной обработки примитивов в инспекторе и уйти от "физического" представления примитивов в инспекторе к более дружественному к пользователю
zamtmn вне форума  
 
Непрочитано 16.11.2014, 22:37
#99
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


zamtmn, не заморачивайтесь на таком, не стоит оно того, лучше пилите размеры, а еще атрибуты в блока и спецсимволы в тексте
gomer вне форума  
 
Автор темы   Непрочитано 16.11.2014, 23:04
#100
zamtmn

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


Инспектор вообще получился самой кровопьющей запчастью, незнаю что на меня нашло - обычно на внешний вид глубоко пофиг))
>>а еще атрибуты в блока и спецсимволы в тексте
Спецсимволы в тексте основные есть, что добавить?
Атрибуты тоже есть, но своеобразные)). Любому примитиву можно присвоить набор типизированных "переменных", а для устройств можно прилепить текст\мтекст в "динамическую" часть и организовать отображение этих "переменных" в любой комбинации на чертеже. Совместимо с автокадом только в одну сторону (только отобразить, в автокаде не создать), но ИМХО гораздо мощьнее чем обычные атрибуты.
Про размеры пока промолчу, уж больно они в автокаде замарочистые
zamtmn вне форума  
 
Непрочитано 17.11.2014, 00:06
#101
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Спецсимволы в тексте основные есть, что добавить?
Я имею ввиду символы заданные как %%число, где число - номер символа в таблице ascii-кодов например %%247 - это "÷", %%169 - "©", если не ошибаюсь...
В размерах хотелось бы видеть хотя бы цвет текста и правильный масштаб, а не по стилю, если размер переопределен. и еще "стрелки", то бишь выноски
насчет атрибутов, я имею ввиду автокадовские, хотелось бы все таки, чтоб они отображались
кстати я когда-то делал формочки для вставки блока и массива, если надо могу скинуть
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 01:07
#102
zamtmn

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


>>%%число
добавил в тестовом режиме. в автокаде это работает насколько я понял только для текстов, в мтекстах данная последовательность не работает. Спецсимволы у меня поддерживались и до этого в виде \U+число

>>насчет атрибутов, я имею ввиду автокадовские, хотелось бы все таки, чтоб они отображались
могу сделать только в виде преобразования в текст, примитив пока не планирую добавлять

>>кстати я когда-то делал формочки для вставки блока и массива, если надо могу скинуть
что за формы? интересно, скинте. Но лучше бы форму редактора размерных стилей))
zamtmn вне форума  
 
Непрочитано 17.11.2014, 01:55
#103
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


как то так, формы конечно не доделанные, но хоть что-то
а насчет размеров, я уже говорил, делайте общий менеджер стилей, это значительно сэкономит ресурсы
Вложения
Тип файла: zip project1.zip (172.6 Кб, 33 просмотров)
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 07:22
#104
zamtmn

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


Давайте так - я добавляю формы в zcad (под лиценцией LGPL2, авторство за Вами), делаю увязку с движком (интеграция в интерфейс, получение имен блоков, указание точек на чертеже, создание вставок блоков), Вы доводите формы внутри zcad`а.
zamtmn вне форума  
 
Непрочитано 17.11.2014, 19:30
#105
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Вы доводите формы внутри zcad
С этого момента поподробнее... вообще эта черепаха такая медленная...
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 20:17
#106
zamtmn

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


В первом посте я примерно расписал что нужно чтоб поучавствовать в разработке:
- ставите TortoiseSVN, checkout`ите исходники зкада себе, в дальнейшем update`те последние изменения, прошедшие с момента checkout`а
- регаетесь на шаманграде, добавляетесь в разработчиков зкада, с этого момента вы с помошью TortoiseSVN можете commit`ить свои изменения которые вы внесли у себя в репозиторий на шаманграде

Для компиляции зкада вам понадобятся свежие lazarus и fpc, желательно девелоперские. Вы какими версиями распологаете?

После того как я добавлю ваши формы в зкад - вы открываете zcad.lpi находите их там и дальше делаете что душе угодно, незабывая в моменты когда всё более менее работает комитить проделаное в репозиторий.
zamtmn вне форума  
 
Непрочитано 17.11.2014, 20:21
#107
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Для компиляции зкада вам понадобятся свежие lazarus и fpc,
Поставил себе лазарь 1.1 с fpc2.7.1 x64, но он не работает почему-то... до этого был 1.0.12 но тоже ошибки выдавал при компиляции
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 20:30
#108
zamtmn

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


>> до этого был 1.0.12 но тоже ошибки выдавал при компиляции
этот непойдет, слишком много было изменений в лазаре с тех времен

>>Поставил себе лазарь 1.1 с fpc2.7.1 x64, но он не работает почему-то...
Этот пойдет, я поправлю зкад чтоб он собирался и в вашем 1.1 и в моем 1.3. То что неработает - решаемо, думаю неуказаны какиенибудь пути или еще какаянибудь "мелочь", на что ругается?
zamtmn вне форума  
 
Непрочитано 17.11.2014, 20:33
#109
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Код:
[Выделить все]
procedure TmyPOFile.Add(const Identifier, OriginalValue, TranslatedValue,
  Comments, Context, Flags, PreviousID: string; SetFuzzy: boolean = false; LineNr: Integer = -1);
var
   t:boolean;
begin
     t:=self.FAllEntries;
     self.FAllEntries:=true;
     inherited; // здесь останавливается
     self.FAllEntries:=t;
end;
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 20:38
#110
zamtmn

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


т.е. lazarus работает, некомпилится зкад))
Дайте точную версию лазаря, (в окне Abount Lazarus, щелкните правой кнопкой мыши появится меню с возможностью вставить всё нужное в бужер обмена), я откачу своего лазаря до вашей версии и утрясу проблемы
zamtmn вне форума  
 
Непрочитано 17.11.2014, 20:42
#111
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Lazarus 1.1 r42508 FPC 2.7.1 x86_64-win64-win32/win64
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 21:24
#112
zamtmn

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


Обновите исходники зкада (при закрытом лазаре, вообще он подхватывает изменения, но малоли) и попробуйте еще раз.

т.к. вы внесли изменения в своюю версию
Код:
[Выделить все]
procedure TmyPOFile.Add(const Identifier, OriginalValue, TranslatedValue,
  Comments, Context, Flags, PreviousID: string; SetFuzzy: boolean = false; LineNr: Integer = -1);
var
   t:boolean;
begin
     t:=self.FAllEntries;
     self.FAllEntries:=true;
     inherited; // здесь останавливается
     self.FAllEntries:=t;
end;
тамже где их внес я, при обновлении будут красные строчки - конфликты. щелкайте на них другой кнопкой мыши и указывайте "resolve as thiers" (или чтото подобное, главное thiers, a не mine), т.е. чтобы к вам пришла моя версия изменений. Конфликты неизбежная штука, когда пользователи одновременно чтото меняют в одном месте, если бы изменения были в разных строках программы - всё было бы ок

Последний раз редактировалось zamtmn, 17.11.2014 в 21:42.
zamtmn вне форума  
 
Непрочитано 17.11.2014, 21:42
#113
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


я пока еще ничего не менял, просто скопировал папку на рабочий стол
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 21:48
#114
zamtmn

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


Если вы добавили // здесь останавливается при редактировании поста то не меняли, если вписали это в лазаре, потом пытались компилировать или сохранили при выходе - изменения внесены (в вашу копию, не в репозиторий).
В любом случае, страшного ничего нет, на то он и контроль версий, чтоб хоть что откатить хоть до чего. Я просто предупредил про возможность конфликта

>>просто скопировал папку на рабочий стол
Я кстати только сегодня победил русские буквы в путях, еще не тестировал толком. возможно попрежнему неработает.
Старенький лазарь точно будет дуреть от кирилицы в путях))
zamtmn вне форума  
 
Непрочитано 17.11.2014, 21:58
#115
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


так как добавиться в разработчики?
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 21:59
#116
zamtmn

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


Регистрация на shamangrad.net есть? сообщите мне тамошний ник

----- добавлено через ~4 ч. -----
Формы я добавил - \cad_source\gui\blockinsertwnd.pas и \cad_source\gui\arrayinsertwnd.pas соответственно, команды показа форм TestInsert1_com и TestInsert2_com в модуле \cad_source\commands\gdbcommandsexample.pas
zamtmn вне форума  
 
Непрочитано 18.11.2014, 22:21
#117
gesper

Проектирование разделов ЭО и ЭМ
 
Регистрация: 18.04.2009
Москва
Сообщений: 128


Цитата:
Сообщение от gomer Посмотреть сообщение
я пока еще ничего не менял, просто скопировал папку на рабочий стол
Для доступа на рабочий стол используется путь с русскими буквами - не лучшее место для хранения. Для разработки под zcad нужно чтобы путь был из латинских букв, без русских.
gesper вне форума  
 
Непрочитано 18.11.2014, 23:53
#118
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


нашел еще пару багов: русские имена блоков отображаются некорректно в инспекторе, при переносе повернутого текста за ручки угол его сбрасывается в 0
gomer вне форума  
 
Автор темы   Непрочитано 19.11.2014, 00:03
#119
zamtmn

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


>>Для разработки под zcad нужно чтобы путь был из латинских букв, без русских.
Будь проклят тот кто придумал локализовать названия системных папок))

>>нашел еще пару багов
так и запишем, поправлю
zamtmn вне форума  
 
Непрочитано 19.11.2014, 00:06
#120
gesper

Проектирование разделов ЭО и ЭМ
 
Регистрация: 18.04.2009
Москва
Сообщений: 128


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Будь проклят тот кто придумал локализовать названия системных папок))
Я не понимаю, чего сложного на конечных функциях работы с файловой системой тебе было вписать UTF8ToSys?
gesper вне форума  
 
Автор темы   Непрочитано 19.11.2014, 00:29
#121
zamtmn

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


Дело не совсем в этом. Проблема была в FPC (свн версий) - там уже долгое время идет переработка внутреннего представления строк, RTL местами к этому был не готов - в некоторых ситуациях некоторые стандартные функции на разных системах (например XP и 7) возвращали результаты в разных кодировках. UTF8ToSys не помогал, помогали другие костыли. Но т.к. это была недоделка RTL, я не правил, ждал улучшений в FPC. Сейчас вроде zcad работает на кирилических путях, но сам Lazarus попрежнему иногда лажает если работать с проектом на не анси путях.

>>чего сложного на конечных функциях работы с файловой системой тебе было вписать UTF8ToSys?
Кодировки это отдельная песня, там далеко не всё так просто.
zamtmn вне форума  
 
Автор темы   Непрочитано 21.12.2014, 09:26
#122
zamtmn

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


Выложил ревизию 1141. Появилось окно управления текстовыми стилями
zamtmn вне форума  
 
Автор темы   Непрочитано 05.01.2015, 14:35
#123
zamtmn

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


Всех с прошедшим!
Возник такой вопрос - с какой версии в автокаде в стилях размеров появились типы линий для размерной и выносных линий (которые DIMLTYPE, DIMLTEX1 и DIMLTEX2) не могу найти в документации как они сохраняются в DXF в таблице размерных стилей?
zamtmn вне форума  
 
Непрочитано 05.01.2015, 14:40
#124
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,746


Может быть, поможет http://autolisp.ru/2009/11/02/dimstyle-create/
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 05.01.2015, 20:08
#125
zamtmn

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


К сожалению не помогло. Внутри автокада из лиспа и снаружи в dxf многое различается, хотя похожего конечно гораздо больше
Экспериментально выяснил - типы линий размерных стилей сохраняются довольно странно, в виде данных для внешних приложений
Цитата:
ACAD_DSTYLE_DIM_LINETYPE
ACAD_DSTYLE_DIM_EXT1_LINETYPE
ACAD_DSTYLE_DIM_EXT2_LINETYPE
видимо для обратной совместимости
zamtmn вне форума  
 
Автор темы   Непрочитано 05.03.2015, 14:02
#126
zamtmn

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


Пытаюсь встроить в инспектор объектов возможность работы с примитивами при множественном выборе, раньше такая возможность была только для "переменных" привязаных к примитивам.
Возможно ктонибудь посоветует фичи которых нехватает в обычном автокадовском инспекторе, у меня таких 2:
- отсутствие разных "суммарных" сворйств из коробки (спасибо Александру Ривилис за решение в виде GeomProps)
- отсутствие быстрой возможности исключать из набора примитивы определенного типа, только "обратная" возможность - оставлять в наборе примитивы определенного типа
Постораюсь реализовать интересные предложения
zamtmn вне форума  
 
Автор темы   Непрочитано 16.03.2015, 15:04
#127
zamtmn

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


В ревизии 1259 в первом приближении инспектор заработал с множественным выбором, пока свойства зарегестрированы только для линий и окружностей. Старый вариант доступен если убрать галку "always use multi select wrapper" в контекстном меню инспектора

Последний раз редактировалось zamtmn, 16.03.2015 в 20:35.
zamtmn вне форума  
 
Автор темы   Непрочитано 12.05.2015, 09:24
#128
zamtmn

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


rev1349 - появилась поддержка luprec, auprec, lunits, aunits, unitmode, insunits, angdir, angbase переменных. Работает в инспекторе и размерных стилях. Традиционно "на половину")) - ввод значений возможен только в "фиксированном" десятичном виде.
zamtmn вне форума  
 
Автор темы   Непрочитано 18.05.2015, 19:53
#129
zamtmn

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


В связи с появлением настройки точности в интерфейсе всплыл интересный момент - отображение величин одинаковых только в пределах заданной точности, а по факту различных. Например в чертеже установлена точность до второго знака, и имеется 2 отрезка с X координатами начала 1.12 и 1.121 соответственно. Автокад эти координаты в инспекторе покажет как 1.12, брикскад пометит их как различные (что имхо вернее). Я решил эти случаи рассматривать как отдельные и помечаю их знаком "приблизительно равно" как на скрине
Миниатюры
Нажмите на изображение для увеличения
Название: aprox.PNG
Просмотров: 189
Размер:	159.6 Кб
ID:	150069  
zamtmn вне форума  
 
Автор темы   Непрочитано 08.06.2015, 16:47
#130
zamtmn

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


версия 1386
Приделал создание крэшрепортов и изменил систему логирования.
Раньше в лог сыпалось всё подряд - изза чего лог был кашей, восновном из цифер понятных только мне, а запуск зкада с медленного на запись носителя был проблематичным. Теперь появились несколько уровней логирования (подглядел гдето на хабре):
Код:
[Выделить все]
LM_Trace - вывод всего подряд
LM_Debug - журналирование моментов вызова процедур
LM_Info - журналирование важных операций
LM_Warning - все что идет не по плану
LM_Error - некритичные ошибки
LM_Fatal - ошибки приводящие к аварийному завершению
По умолчанию лог инициализируется в "уровне" LM_Error т.е. в него попадают сообщения LM_Error и ниже (LM_Fatal), всё что "уровнем" выше игнорируется (LM_Trace,LM_Debug,LM_Info,LM_Warning) Переключать "уровни" можно указав название уровня в параметре коммандной строки - т.е. например
Цитата:
zcad.exe LM_Info
вызовет запись в лог сообщений LM_Info, LM_Warning, LM_Error, LM_Fatal. Пока я не сильно разгреб уже существующий код, просто пометил основную "кашу" как LM_Trace, со временем вычищу.

При вылетах теперь генерируется файл %TEMP%\zcadcrashreport.txt содержащий стек вызовов на момент вылета, последние 100 сообщений лога и некоторую информацию типа версии зкада, путей запуска, версии ОС и т.п. Сейчас при нахождении ошибки в зкаде достаточно запустить программу с ключем LM_Trace (самый подробный лог), повторить ошибку и выслать файл %TEMP%\zcadcrashreport.txt мне на zamtmn(собака)yandex.ru. Заранее признателен))
zamtmn вне форума  
 
Автор темы   Непрочитано 10.09.2015, 13:44
#131
zamtmn

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


версия 1506
- окончательный вариант GDI рендера чертежа в области отображения. TTF текст теперь рисуется соответствующими GDIшными функциями, а не набором треугольников как в opengl, соответственно работает сглаживание и выглядит посимпатичнее
- добавлен еще один вариант рендера - используя стандартный LCL Canvas. Он будет использоваться для получения превьюшек блоков и печати чертежей
- существенно снижен расход памяти на текстовые примитивы
zamtmn вне форума  
 
Непрочитано 10.12.2015, 05:49
#132
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,648


а где можно скачать бинарники для линукс 64 бит?
PS прошу прощения - скачал и запустил уже.

Последний раз редактировалось ETCartman, 10.12.2015 в 05:59.
ETCartman вне форума  
 
Автор темы   Непрочитано 10.12.2015, 10:24
#133
zamtmn

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


Бинарники на соусфорже, исходники на шаманграде, точные координаты в первом посте
Единственное - сборки отличные от win32 обновляю очень редко, всеравно последнее время вожусь с потрохами, снаружи этих изменений почти невидно.

зы. вышел RC Lazarus1.6 основаный на FPC3.0, теперь zcad можно собрать официальной сборкой лазаря
zamtmn вне форума  
 
Автор темы   Непрочитано 29.03.2016, 21:36
#134
zamtmn

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


Версия 1845.
Наконец то поборол паразитные внутренние зависимости в программе - исходники поделил на 2 части и тотально всё переименовал - графический движек и собственно zcad.
Приладил систему автодокументирования (PasDoc) - на выходе красота, осталось только всё задокументировать))

В качестве минимального окружения для компиляции буду поддерживать Lazarus1.6 и FPC3.0. Поддержку более старых версий порезал
zamtmn вне форума  
 
Автор темы   Непрочитано 16.06.2016, 17:29
#135
zamtmn

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


Всем привет! вылезла пара вопросов:
Кто нибудь в курсе как автокад осуществляет пересчет веса линий в толщину в пикселях на эrране? это где нибудь докуменировано?
Ползунок AdjustDisplayScale c приложеного скриншота хранится в какой переменной?
Миниатюры
Нажмите на изображение для увеличения
Название: lw.PNG
Просмотров: 97
Размер:	56.7 Кб
ID:	172180  
zamtmn вне форума  
 
Непрочитано 16.06.2016, 17:50
#136
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Днепройт
Сообщений: 3,989


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Ползунок AdjustDisplayScale c приложеного скриншота хранится в какой переменной?
В реестре хранится. Тут обсуждали: http://forums.autodesk.com/t5/visual...n/td-p/1048768
__________________
Да здравствует фикус! (С)
kp+ вне форума  
 
Непрочитано 16.06.2016, 18:47
#137
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Вспомнил, что была давно такая тема, а сейчас вижу, что вполне живая! С чем и поздравляю автора!
Оценить могу только картинки, а они впечатляют

Понимаю, что с суконным рылом, но вдруг пригодится - сейчас выложил в блоге свою пользовательскую фантазию о CAD.
...а вообще - мне кажется, что лучше сразу писать не повторение, а что-то новое. Тогда результаты приятнее.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 16.06.2016, 22:20
#138
zamtmn

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


kp+
Цитата:
В реестре хранится. Тут обсуждали: http://forums.autodesk.com/t5/visual...n/td-p/1048768
Спасибо. Яснее не стало, но хоть чтото))

АлексЮстасу
Цитата:
Вспомнил, что была давно такая тема, а сейчас вижу, что вполне живая! С чем и поздравляю автора!
Поздравлять особо несчем... с переменным успехом ковыряюсь.

Цитата:
...а вообще - мне кажется, что лучше сразу писать не повторение, а что-то новое. Тогда результаты приятнее.
Базовые вещи всяко приходится "копировать" - нужна совместимость. А дальше - зависит от фантазии))
zamtmn вне форума  
 
Непрочитано 16.06.2016, 23:30
#139
Marsikus

software quality engineer
 
Регистрация: 19.09.2009
Харьков, Украина
Сообщений: 446


Интересный проект! Не думали перевести исходники его на GitHub?
__________________
energokot.blogspot.com
Marsikus вне форума  
 
Автор темы   Непрочитано 16.06.2016, 23:40
#140
zamtmn

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


Имхо нет разницы где лежат исходники, главное не прячутся. Или дело в git vs svn?
zamtmn вне форума  
 
Непрочитано 17.06.2016, 02:26
#141
Marsikus

software quality engineer
 
Регистрация: 19.09.2009
Харьков, Украина
Сообщений: 446


Ну, отчасти и в этом. SVN я в работе не застал, так что Git стал привычней, к тому же современные проекты в большинстве своем в git и лежат на GitHub, и я каждый день с такими проектами работаю. Год назад в качестве увлечения тестировал LibreCAD, на GitHub и баги репортить удобно.
__________________
energokot.blogspot.com
Marsikus вне форума  
 
Автор темы   Непрочитано 17.06.2016, 11:10
#142
zamtmn

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


Для пользователя разница не велика - вбивать git pull или svn up, а если юзать какойнибудь гуй - то ее вообще нет. ЕМНИП у LibreCAD багтрекер какраз на соусфорже лежит.
По мне git маленько для инопланетян, svn проще и привычней))
zamtmn вне форума  
 
Непрочитано 17.06.2016, 13:33
#143
Marsikus

software quality engineer
 
Регистрация: 19.09.2009
Харьков, Украина
Сообщений: 446


Либрекад давненько на гитхабе обосновались: https://github.com/LibreCAD/LibreCAD
А то что гит может сношать мозг - это да, привыкать к нему приходится долго и тяжко.
__________________
energokot.blogspot.com
Marsikus вне форума  
 
Автор темы   Непрочитано 18.06.2016, 15:46
#144
zamtmn

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


Вобщем сделал преобразование веса в пиксели по рабочекрестьянски)) получилось не похоже на автокад. но тоже неплохо))
Миниатюры
Нажмите на изображение для увеличения
Название: lw.gif
Просмотров: 97
Размер:	286.5 Кб
ID:	172281  

Последний раз редактировалось zamtmn, 18.06.2016 в 15:54.
zamtmn вне форума  
 
Непрочитано 18.06.2016, 17:32
#145
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от zamtmn Посмотреть сообщение
с переменным успехом ковыряюсь.
Базовые вещи всяко приходится "копировать" - нужна совместимость. А дальше - зависит от фантазии))
Выглядит очень даже
Есть ли в Вашем CAD аналог XRecord, расширенных данных?

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

Как у Вас сделаны 3D полилинии? По-моему, удачно сделано в MicroStation - в нем есть один универсальный примитив, полилинии (linestring), которые являются двумерными или трехмерными в зависимости от значений Z вершин. При этом их полилинии отображают типы линий, в отличие от автокадовских. Может быть вообще не нужен и примитив "отрезок" - это же тоже частный случай полилиний?
Кстати, в MicroStation гораздо лучше чем в Автокаде сделаны стили линий - без непреодолимых штрихов в началах-концах, с отражением форм в оч. коротких линиях, с возможностью привязки форм к вершинам.
Еще в MicroStation быстрее чертить из-за того, что вызванные команды активны до вызова другой команды. Т.е. не нужно все время вызывать команду, если, допустим, нужно начертить много линий или вставить подряд много блоков. Эта поддержано окошками каждой из команд с их параметрами, появляющимися при вызове команд.
И пример совместимости же - MicroStation работает с dwg, как с родным, имея свой устойчивый и удачный формат dgn. Т.е. пользователи MicroStation просто открывают (или даже в нем создают!) dwg, и прямо в нем работают.
Еще - MicroStation гораздо лучше работает с большими объемами данных.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 18.06.2016, 19:29
#146
zamtmn

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


>>Есть ли в Вашем CAD аналог XRecord, расширенных данных?
Да есть. к любому примитиву можно привязать любые типизированные данные. Эти данные будут сохраняться в dxf вместе с примитивом, отображаться\редактироваться в инспекторе объектов.

>>Как у Вас сделаны 3D полилинии?
Я хоть с MicroStation не сталкивался, но видимо похоже на нее. Тип линий на 3Д полилинию применяется и отображается (возможно потом уберу) на ней.
Насколько я понимаю в автокаде у 3Д полилинии не отображается тип линий потому что у этого примитива нет нормали - что логично.
В зкаде сейчас есть отрезки, 2Д и 3Д поли - всё чуток недоделаное: у отрезков нет нормали, у всех поли нет сглаживаний, у 2д нет дуговых сегментов... список недоделок можно продолжать безконечно))

>>Еще в MicroStation быстрее чертить из-за того, что вызванные команды активны до вызова другой команды
Это не фундаментальное различие. команду можно написать чтоб она работала "зациклено" или только 1 раз. Тут больше дело в немодальном окне параметров команды. Я для параметров команды использую инспектор объектов - имхо очень удобно. Пользователей это почемуто нервирует))


>>Но принципы работы и пр. могут же быть совсем другими - без копирования пороков. В т.ч. и связанных с форматом данных.
Я вот не представляю как микростейшен сохранит в DWG свою 3Д полилинию с формами в узлах - она не отобразится в автокаде. Или отобразится, но превратится в какието другие примитивы
zamtmn вне форума  
 
Непрочитано 18.06.2016, 21:41
#147
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от zamtmn Посмотреть сообщение
к любому примитиву можно привязать любые типизированные данные. Эти данные будут сохраняться в dxf вместе с примитивом, отображаться\редактироваться в инспекторе объектов.
О!
Но идея "Вариант подхода к построению CAD или модернизации CAD" Вас, похоже, не вдохновила?
Цитата:
Сообщение от zamtmn Посмотреть сообщение
у этого примитива нет нормали
Это что за зверь? По-моему, неотображение типов линий у 3D полилиний - явная автокадовская слабость. Мнение, как пользователя...
Цитата:
Сообщение от zamtmn Посмотреть сообщение
Это не фундаментальное различие. команду можно написать чтоб она работала "зациклено" или только 1 раз.
Фундаментальное для пользователей. По-моему, действие чаще нужно повторять несколько раз, и с зацикленностью быстрее, меньше кликов. А, главное, нет недостатков - сейчас в Автокаде, если действие нужно произвести один раз, все равно нужен клик на другую команду.
Цитата:
Сообщение от zamtmn Посмотреть сообщение
Я вот не представляю как микростейшен сохранит в DWG свою 3Д полилинию с формами в узлах - она не отобразится в автокаде. Или отобразится, но превратится в какието другие примитивы
Ну, да, естественно. Может вообще утратить тип линий. ...По каким-то причинам лучше работать в Автокаде, а по каким-то - в MicroStation.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 18.06.2016, 23:13
#148
zamtmn

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


>>Но идея "Вариант подхода к построению CAD или модернизации CAD" Вас, похоже, не вдохновила?
Если я правильно понял, то идея не нова. Я далек от ГИС поэтому мое ИМХО:
1 - Есть примитивы, у этих примитивов есть свойства. Разделять реализацию этих свойств не надо - какая разницы координата это или какойнибудь GUID спрятаный внутри xdata
2 - Также ненадо разделять привычную отрисовку чертежа в области отображения\редактирования и получение табличного\древовидного представления чертежа.
Т.е. что процесс черчения, что процесс табличной обработки чертежа это по сути одно и тоже - "чуток" разное представление одних и техже данных. Эти способы должны друг друга дополнять - мне лень крутить огромный чертеж и искать на нем шкаф ШУ1, я включаю табличное\древовидное представление - фильтрую по свойствам... сортирую по свойствам... и вот он искомый шкаф)) Подобный "навигатор" (или "менеджер" хз как лучше назвать) для зкада в планах (надеюсь не несбыточных ) на реализацию.

>>Это что за зверь? По-моему, неотображение типов линий у 3D полилиний - явная автокадовская слабость. Мнение, как пользователя...
Направление вдоль которого работает THICKNESS и перпендикулярно которому отображается тип линии. Нет направления - нет возможности отрисовать тип
zamtmn вне форума  
 
Непрочитано 19.06.2016, 00:27
#149
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,274
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от zamtmn Посмотреть сообщение
у отрезков нет нормали
Есть: http://adn-cis.org/forum/index.php?t...20610#msg20610
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 19.06.2016, 00:39
#150
zamtmn

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


было:
Цитата:
В зкаде сейчас есть отрезки, 2Д и 3Д поли - всё чуток недоделаное: у отрезков нет нормали
то что в автокаде она есть я в курсе.
zamtmn вне форума  
 
Непрочитано 19.06.2016, 00:45
#151
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,274
Отправить сообщение для Александр Ривилис с помощью Skype™


zamtmn
Прошу прощения. Я не понял, что речь шла не об AutoCAD.
Александр Ривилис вне форума  
 
Непрочитано 19.06.2016, 11:32
#152
DanielDem


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


Здравствуйте!
Скажите а не планируете переходить на платформу NET?

Сам сделал небольшую программу для ПОДД на WPF и теперь тоже расширяю под CAD
DanielDem вне форума  
 
Непрочитано 19.06.2016, 12:34
#153
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 116


Цитата:
Сообщение от zamtmn Посмотреть сообщение
>>Еще в MicroStation быстрее чертить из-за того, что вызванные команды активны до вызова другой команды
Это не фундаментальное различие. команду можно написать чтоб она работала "зациклено" или только 1 раз. Тут больше дело в немодальном окне параметров команды. Я для параметров команды использую инспектор объектов - имхо очень удобно. Пользователей это почемуто нервирует))
Свойства в инспеторе очень даже удобно менять, как то все в одном месте. Первое время как то не привычно, потом все как по рельсам, удобно! Тем более есть возможность добавить что то свое, если есть желание и знания, открытый исходный код это круто.


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Еще - MicroStation гораздо лучше работает с большими объемами данных.
Я пробовал работать около 1 млн. примитивов (точно не помню) на ZCADе полет отличный. Машинка пентиум 4, оперативки 1-2гига. Думаю Автокады после 2008, даже не установятся на такую)))
veb86 вне форума  
 
Непрочитано 19.06.2016, 19:12
#154
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Если я правильно понял, то идея не нова. Я далек от ГИС поэтому мое ИМХО:
...
"ГИС работают на компьютерах, мы ГИС не занимаемся, следовательно компьютеры нам не годятся".
Я тоже ГИС не занимаюсь, но какая разница, откуда идеи, если они проверенные и продуктивны для любого черчения?

Я не программист. Т.е. оч. смутно и неверно представляю, что, чем, как программно реализуется. Я только пользователь и технолог.
Как пользователь и технолог я уверен, что из меню объектов чертить легче, быстрее и качественнее.
И как пользователь и технолог вижу большие возможности расширенных данных - с их помощью можно превратить графические элементы в "объекты", а чертеж в "информационную модель". Под "объектами" я понимаю графические элементы с присоединенными к ним расширенными данными, состоящими из полей для нужных характеристик и идентификатора типа объектов.
Т.е., допустим, не просто блок с названием "ШУ1", а этот блок с полем данных названия типа объекта "шкаф ШУ1" и с полями для его характеристик. Не просто полилиния какого-то цвета и веса в слое "Трубы", но с присоединенными данными названия типа объекта "труба d100", материала, толщины стенок, назначения, производителя и т.п.

Если при создании графических элементов сам CAD всегда и сразу будет присоединять записи расширенных данных с нужными полями, то черчение будет сразу созданием таких "объектов".
При этом пользователь может чертить совершенно как обычно, вообще не используя расширенные данные - если не хочет или нет необходимости. А может использовать по полной, но делать ему это будет много легче, чем если бы это были отдельные процессы. И рассогласования, неполнота данных сразу практически исключены.
Если сам CAD будет автоматически сохранять описания этих "объектов" во внешнем текстовом файле, и будет автоматически пополнять меню объектов, то это очень облегчит и улучшит управление такими "объектами" и их применение.

Вот, например, возможности, которые дает описание "объектов" (я изложил в блоге в "OD/DB...", но там, похоже, слишком много букв...):
Миниатюры
Нажмите на изображение для увеличения
Название: Возможности_описания_стандарта_3.png
Просмотров: 46
Размер:	68.5 Кб
ID:	172295  
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 19.06.2016, 20:03
#155
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 116


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Т.е., допустим, не просто блок с названием "ШУ1", а этот блок с полем данных названия типа объекта "шкаф ШУ1" и с полями для его характеристик. Не просто полилиния какого-то цвета и веса в слое "Трубы", но с присоединенными данными названия типа объекта "труба d100", материала, толщины стенок, назначения, производителя и т.п.
Если я Вас правильно понял, это все возможно сделать, даже как бы это уже есть, но только применительно к кабелям, тип кабеля, его сечение, потом этим кабелем чертишь как обычной полилинией. Так же расставил пожарные извещатели, выбрал их тип "ИП ....", потом растравляешь их уже этим типом, если надо быстро изменить тип, то групповое выделение и меняешь. Все это программа обрабатывает ни как тупо блок с каким то именем, а больше как индивидуальный примитив (извещатель дымовой, извещатель тепловой). из всего этого можно получить спецификацию, одним нажатием кнопки.
Все это можно попробовать рассчитывать и заставить программу скажем самой получать сечение проводов исходя из нагрузки и автомата защиты, да и автомат защиты она сама подобрать может надо только прогать...

Последний раз редактировалось veb86, 19.06.2016 в 23:17.
veb86 вне форума  
 
Непрочитано 19.06.2016, 20:20
#156
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от DanielDem Посмотреть сообщение
Скажите а не планируете переходить на платформу NET?
зкад написан на freepascal, который не поддерживает .NET, к тому же зкад написан как кроссплатформенное приложение, так что нет.
gomer вне форума  
 
Автор темы   Непрочитано 19.06.2016, 21:11
#157
zamtmn

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


DanielDem
Цитата:
Скажите а не планируете переходить на платформу NET?
Точно нет.

АлексЮстасу
В составе toolpac была ккомнда "рисовать по образцу". Она случайно не заменит описаное меню объектов?
Работает примерно так: тыкаешь в "целевой" примитив, следующими действиями команда рисует копию "целевого" примитива. Т.е. ткнул в полилинию - дальше рисуешь такуюже с такойже толщиной, слоем, типом ... (вот про расширеные данные непомню). Ткнул в вставку блока - дальше вставляешь такиеже вставки... Смысл вроде тотже, громоздкого меню нет))
zamtmn вне форума  
 
Непрочитано 19.06.2016, 21:28
#158
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Смысл вроде тотже, громоздкого меню нет))
Разница примерно такая же, как между изображением купюр на экране и электронными деньгами.

Пришлите какой-нибудь чертеж, достаточно представительный набором отображаемых объектов. Я попробую продемонстрировать возможности OD/DB-подхода с помощью своего приложения-прототипа.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 19.06.2016, 22:14
#159
zamtmn

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


Ок. Выручает вас подобное меню и ускоряет. очень хорошо. Мне оно поможет наврятли((
Я сомневаюсь в возможности автоматически катологизировать "ВСЕ" и выдать "ВСЕ" пользователю в виде "меню" которым удобно пользоваться. ИМХО для подобного "меню" возможно только ручное\полуручное создание.

В зкаде есть чтото подобное, строится "автоматически" на основе файлов описаний изделий, определений блоков в базе УГО. привожу картинку.
На картинке меню бд зкада, выбран некий кабель у которого вариантов исполнений по сечению\жильности в районе сотни - это всё предлагаете тащить в "меню"? Я лучше застрелюсь чем подобным меню буду пользоваться))

Кроме того - начертить это всеголишь полдела. Надо потом еще отредактировать начерченое. Т.е. сегодня начертили "обезличеный" кабель. завтра уточнили мощьность и выбрали этому кабелю сечение\жильность.
Миниатюры
Нажмите на изображение для увеличения
Название: menu.png
Просмотров: 52
Размер:	140.6 Кб
ID:	172303  
zamtmn вне форума  
 
Непрочитано 20.06.2016, 04:25
#160
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Гм... Вы меня не раз и по-разному сейчас озадачили.
Цитата:
Сообщение от zamtmn Посмотреть сообщение
Выручает вас подобное меню и ускоряет. очень хорошо. Мне оно поможет наврятли((
Вот это меню, которое Вы приложили, Вас выручает, Вам помогает?
Цитата:
Сообщение от zamtmn Посмотреть сообщение
Я сомневаюсь в возможности автоматически катологизировать "ВСЕ" и выдать "ВСЕ" пользователю в виде "меню" которым удобно пользоваться. ИМХО для подобного "меню" возможно только ручное\полуручное создание.
Вашим меню Вам удобно пользоваться? В нем каталогизировано "ВСЕ"?
И я же не писал, что автоматом можно создать полноценное меню. Наоборот, писал, что необходима возможность редактирования.
Цитата:
Сообщение от zamtmn Посмотреть сообщение
В зкаде есть чтото подобное, строится "автоматически" на основе файлов описаний изделий, определений блоков в базе УГО. привожу картинку.
На картинке меню бд зкада, выбран некий кабель у которого вариантов исполнений по сечению\жильности в районе сотни - это всё предлагаете тащить в "меню"? Я лучше застрелюсь чем подобным меню буду пользоваться))
В этом меню "сотни вариантов" реализованы, втащены? Вы это меню используете? Не застрелимшись?
Цитата:
Сообщение от zamtmn Посмотреть сообщение
Кроме того - начертить это всеголишь полдела. Надо потом еще отредактировать начерченое. Т.е. сегодня начертили "обезличеный" кабель. завтра уточнили мощьность и выбрали этому кабелю сечение\жильность.
Вы этими средствами редактируете, уточняете, выбираете?

Озадачивает главным образом то, что у Вас уже реализовано многое (может и вообще все, а, может, и больше), что я только предлагаю. Но что Вы объявляете ненужным.

Что с помощью этого меню бд можно делать?
Судя по картинке, выбрав в нем тип объекта, можно просматривать и присваивать значения свойств (у меня - "характеристик") объектов. Свойства==характеристики Вы реализовали средствами XData или XRecord? Или как-то иначе?

Из этого меню бд можно чертить, выбрав нужный тип объекта?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 20.06.2016, 09:40
#161
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 116


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Гм... Вы меня не раз и по-разному сейчас озадачили.
Вы меня тоже озадачали вчера пытался понять OD/BD, читал статью в вашем блоге, и не осилил понять что вы предлагаете, может из-за кривого перевод. можете пример программы привести которая по такой схеме работает, или разложить все по полочкам как для чайников?
Я знаю Ревит, там есть возможность создать объект, придать ему форму, вид. наделить его необходимыми атрибутами, потом что то с этими атрибутами делать - OD/BD про это?
veb86 вне форума  
 
Непрочитано 20.06.2016, 10:38
#162
trir


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


да, только объекты ты сам и придумываешь
trir вне форума  
 
Непрочитано 20.06.2016, 11:05
#163
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,987


и что потом делать с ними-тоже)
Сергей812 вне форума  
 
Непрочитано 20.06.2016, 11:36
#164
trir


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


рисуешь, модифицируешь, аналезируешь
trir вне форума  
 
Непрочитано 20.06.2016, 11:50
#165
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 116


Ну тогда в ZCADе это есть, просто отсутствует менеджер создания объектов, зкадовский объект будет представлять из себя графическое обозначение его можно нарисовать и положить в спец место, а затем в спец файле прописать атрибуты. Всю последовательность создания такого объекта я не знаю, ни разу не делал))) Все требует времени... создавать не так удобно как в ревите, но возможно при желании, и в спецификации объекты считаться начнут и на планы удобно вставлять, да и кнопку добавить к ZCADу совсем не сложно, надо пару строчек в один текстовый файл добавить. а на создание менеджера объекта, уйдет уйма времени.
veb86 вне форума  
 
Непрочитано 20.06.2016, 11:55
#166
trir


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


я хочу, что бы мои объекты лежали в БД и я мог редактировать их из любого CAD'а...
trir вне форума  
 
Непрочитано 20.06.2016, 12:06
#167
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 116


Цитата:
Сообщение от trir Посмотреть сообщение
я хочу, что бы мои объекты лежали в БД и я мог редактировать их из любого CAD'а...
По идеи объект в ZCADе на данном этапе больше похож на блок, только умный блок, наверное можно отчасти сравнить с динамическим блоком в автокаде, хранится графическое обозначение в отдельном файле в спец папке, описание объекта в текстовом файле в другой папке. Наверное все это можно поместить в БД, только зачем. Вот есть модуль СПДС у автокада и не только у него. если этого модуля нет в другом каде то фиг вам, а не редактирование. Так и с этой БД будет, зкад с ней работать сможет, а другие Кады кто обучать работе будет?
veb86 вне форума  
 
Непрочитано 20.06.2016, 12:28
#168
DEM

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


ЩА занимаюсь написанием скриптов под FreeCad. Очень даже удобно.
Причем есть возможность создания своих "элементов" программно...
__________________
Шаг 12й......
Мои публикации
DEM вне форума  
 
Непрочитано 20.06.2016, 12:56
#169
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 116


Цитата:
Сообщение от DEM Посмотреть сообщение
ЩА занимаюсь написанием скриптов под FreeCad. Очень даже удобно.
Причем есть возможность создания своих "элементов" программно...
Я пробовал в FreeCad нарисовать 100 тыщ отрезков, freecad умирает сразу. Я думаю отрезок это самая простая фигура. Может я что то не так делал. Применительно к проектированию он плохо подходит, он для другого
veb86 вне форума  
 
Автор темы   Непрочитано 20.06.2016, 13:13
#170
zamtmn

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


АлексЮстасу
Цитата:
Вот это меню, которое Вы приложили, Вас выручает, Вам помогает?
Это меню было сделано 6 лет назад http://forum.dwg.ru/showpost.php?p=523919&postcount=89 за это время я непомню чтоб я им активно пользовался((

Цитата:
Вашим меню Вам удобно пользоваться? В нем каталогизировано "ВСЕ"?
Мое меню под мои объекты, с моим форматом "расширеных" данных, в него попадает только то что специально подготовлено. Возможности добавить туда чтото другое нет (если только простые голые блоки)

Цитата:
В этом меню "сотни вариантов" реализованы, втащены? Вы это меню используете? Не застрелимшись?
Нет сотен вариантов там нет)) Грубо говоря в моем меню появится только 1 пункт "труба такаято, по госту такомуто" а "сотни" вариантов диаметров\толщин стенок реализованы подругому, вне меню.

Цитата:
Что с помощью этого меню бд можно делать?
Судя по картинке, выбрав в нем тип объекта, можно просматривать и присваивать значения свойств (у меня - "характеристик") объектов. Свойства==характеристики Вы реализовали средствами XData или XRecord? Или как-то иначе?
В этом "меню" собраны определения блоков (УГО) знакомых зкаду и определения оборудования (набор свойств) знакомых зкаду. УГО из меню можно вставлять в чертеж, оборудование можно добавлять из бд программы к бд чертежа и далеше уже копию из БД чертежа привязывать к объектам на чертеже.
Я не пишу под автокад, xdata\xrecord у меня просто нет. Есть чтото похожее на них. В каждом конкретном случае я советуюсь с своей левой пяткой как реализовать конкретное свойство - засунуть его непосредственно в примитив, или засунуть его в аналог xdata примитива. Поэтому если я буду добавлять например трубы в программу - получится новый примитив "труба" а не полилиния с набором параметров.

Цитата:
Из этого меню бд можно чертить, выбрав нужный тип объекта?
Пока только вставлять УГО и потом добавлять свойства. были мысли по вставке уго сразу с нужным набором свойств, но почемуто не пошло это дело.
zamtmn вне форума  
 
Непрочитано 20.06.2016, 13:33
#171
DEM

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


Цитата:
Сообщение от veb86 Посмотреть сообщение
Я пробовал в FreeCad нарисовать 100 тыщ отрезков, freecad умирает сразу. Я думаю отрезок это самая простая фигура. Может я что то не так делал. Применительно к проектированию он плохо подходит, он для другого
Мне для МКЭ нуно...
Преобразование МКЭ геометрии в укрупненные блоки....
__________________
Шаг 12й......
Мои публикации
DEM вне форума  
 
Непрочитано 20.06.2016, 16:57
#172
hexD

КМД
 
Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 511
<phrase 1=


Цитата:
Сообщение от veb86 Посмотреть сообщение
По идеи объект в ZCADе на данном этапе больше похож на блок, только умный блок, наверное можно отчасти сравнить с динамическим блоком в автокаде, хранится графическое обозначение в отдельном файле в спец папке, описание объекта в текстовом файле в другой папке. Наверное все это можно поместить в БД, только зачем. Вот есть модуль СПДС у автокада и не только у него. если этого модуля нет в другом каде то фиг вам, а не редактирование. Так и с этой БД будет, зкад с ней работать сможет, а другие Кады кто обучать работе будет?
Фу, какой моветон
hexD вне форума  
 
Непрочитано 20.06.2016, 22:02
#173
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 116


Цитата:
Сообщение от hexD Посмотреть сообщение
Фу, какой моветон
Писал на работе, над словами долго не думал, дергали. Обидеть никого не хотел.
veb86 вне форума  
 
Непрочитано 22.06.2016, 02:18
#174
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Мое меню под мои объекты, с моим форматом "расширеных" данных, в него попадает только то что специально подготовлено. Возможности добавить туда чтото другое нет (если только простые голые блоки)
Ну, да, по мне нужно, чтобы пользователи могли сами формировать описания объектов, добавлять/убирать сам. Т.е. чтобы это было предельно несложно. Заготовки описаний объектов может в идее и мой гипотетический CAD делать. А пользователь сможет дорабатывать.
Цитата:
Сообщение от zamtmn Посмотреть сообщение
Нет сотен вариантов там нет)) Грубо говоря в моем меню появится только 1 пункт "труба такаято, по госту такомуто" а "сотни" вариантов диаметров\толщин стенок реализованы подругому, вне меню.
Гм... Если Ваши "сотни вариантов" определяются характеристиками, то это не разновидности объектов, а различия характеристик.
Цитата:
Сообщение от zamtmn Посмотреть сообщение
если я буду добавлять например трубы в программу - получится новый примитив "труба" а не полилиния с набором параметров.
По мне, чем проще и единообразней, тем лучше для пользователей. Мне кажется, что создания новых объектов, прокси-объектов и т.п. по-возможности нужно всячески избегать.

А что у Вас получается тогда в результате? CAD, т.е. инструмент универсальный, для всех или средство для тематического моделирования?
__________________
количество моих сообщений не говорит о знании Автокада

Последний раз редактировалось АлексЮстасу, 22.06.2016 в 03:09.
АлексЮстасу вне форума  
 
Непрочитано 22.06.2016, 16:14
#175
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 116


извините что лезу в Ваш разговор
Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Ну, да, по мне нужно, чтобы пользователи могли сами формировать описания объектов, добавлять/убирать сам. Т.е. чтобы это было предельно несложно. Заготовки описаний объектов может в идее и мой гипотетический CAD делать. А пользователь сможет дорабатывать.
Я тоже это хочу но это огромный функционал которого нет...

Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
По мне, чем проще и единообразней, тем лучше для пользователей. Мне кажется, что создания новых объектов, прокси-объектов и т.п. по-возможности нужно всячески избегать.
Я считаю что нагружать один из элементов электронного черчения (линия, полилинния, круг ...) не стоит, они для черчения. Вот сейчас в зкаде есть кабель, если открыть другим кадом это будет просто полилиния, ни каких прокси-объектов нет. я тоже наверное соглашусь zamtmn что лучше разделить на разные примитивы "труба" и "кабель". Так будет проще с программной стороны.

Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
А что у Вас получается тогда в результате? CAD, т.е. инструмент универсальный, для всех или средство для тематического моделирования?
Сугубо мое личное мнение, в начале что бы начать что то делать грандиозно новое (автоматизированное вычисление, пользовательская расширяемая БД элементов, внутренний простой язык программирования (что бы расчетки самим писать, как в freecad) и т.д.) нужно хотя бы добиться того что есть базового в коммерческих кадах (штриховка, обрезка, растяжка итд). Автор не может охватить все сразу, поэтому если и есть в зкаде тематичность то это вызвано тем что автору хочется автоматизировать свою работу, но при этом не забывая о базовом расширении функционала. Как я понимаю все желающие могут присоединится к проекту и развить свою тематичность в зкаде, проект опенсоурс. я присоединился, поэтому и начал писаться в теме. Несколько месяцев пишу под зкад модуль, планы как у всех грандиозные замахнулся высоко, что выйдет из этого не знаю , но промежуточными результатами доволен. Я электрик, программистом назвать себя могу с большим трудом, развиваю свою тему. А в зкаде развивать можно море всего, в разные стороны... язык программирования быстрый, кодовая структура када удобная, со своими особенностями...
veb86 вне форума  
 
Автор темы   Непрочитано 22.06.2016, 21:55
#176
zamtmn

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


АлексЮстасу
Цитата:
А что у Вас получается тогда в результате? CAD, т.е. инструмент универсальный, для всех или средство для тематического моделирования?
Пока получается 3 сущности - движек, кад и "электрические причиндалы" к каду. Можно использовать отдельно движек, можно движек+кад без электрики. Последнее время ковыряюсь в основном с "универсальной" частью - движком.
zamtmn вне форума  
 
Непрочитано 23.06.2016, 02:23
#177
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от veb86 Посмотреть сообщение
тоже наверное соглашусь zamtmn что лучше разделить на разные примитивы "труба" и "кабель". Так будет проще с программной стороны.
Разве не достаточно определить полилинии через расширенные данные как "труба", "кабель" и т.п.? Определить названием типа объекта в поле в расширенных данных "название объекта", где записано "труба", "кабель" и пр. И для трубы в расширенных данных свой набор полей для характеристик, а для кабеля - свой. Что может быть проще и универсальнее?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 23.06.2016, 10:15
#178
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 116


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Определить названием типа объекта в поле в расширенных данных "название объекта", где записано "труба", "кабель" и пр. И для трубы в расширенных данных свой набор полей для характеристик, а для кабеля - свой. Что может быть проще и универсальнее?
Такое сделать можно, и нагрузить обычную полилинию другой информацией. Но, я так думаю это скажется на размере сохранения файла(лишняя информация будет тоже сохранятся, там где она не нужна), тем более при программировать станет сложнее. Если сейчас ты при программировании выстраиваешь цепочки между электрическими приборами, где связующим является кабель (кабелей на чертеже в любом случае на порядок меньше чем обычных полилиний), то с введением этого универсализма произойдут дополнительные не нужные проверки. Я понимаю что вы хотите получить, я в основном вообще черчу отрезками, а не полилиниями (привычка). И в будущем можно было бы сделать программную конвертацию (отрезок -> кабель) и (полилиния -> кабель) ну и наверное обратная конвертация. Имея возможность конвертировать на лету, необходимость нагружать полилинию отпадет
veb86 вне форума  
 
Непрочитано 23.06.2016, 13:22
#179
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от veb86 Посмотреть сообщение
Такое сделать можно, и нагрузить обычную полилинию другой информацией. Но, я так думаю это скажется на размере сохранения файла(лишняя информация будет тоже сохранятся, там где она не нужна), тем более при программировать станет сложнее.
Во многих случаях эта дополнительная информация сведется к названию типа объекта. Опыты показывают, что расширенные данные несильно нагружают файл, и не приводят к заметному торможению в работе.
Что лишнего и "нагружающего" может быть в информации о том, какой объект отображен, и какие у него характеристики? Я-то думаю, что это такая же основная информация, как и геометрия.
Кроме того, при появлении у графики определений объектов появляются новые полезные возможности - поиска по названиям объектов, восстановления графических свойств, если что-то случайно или специально перекрашивали, меняли слои и пр. И ряд других.
Цитата:
Сообщение от veb86 Посмотреть сообщение
Если сейчас ты при программировании выстраиваешь цепочки между электрическими приборами, где связующим является кабель (кабелей на чертеже в любом случае на порядок меньше чем обычных полилиний), то с введением этого универсализма произойдут дополнительные не нужные проверки.
Если связь графика-объект будет встроенной, то что, собственно, проверять?
Цитата:
Сообщение от veb86 Посмотреть сообщение
Я понимаю что вы хотите получить, я в основном вообще черчу отрезками, а не полилиниями (привычка). И в будущем можно было бы сделать программную конвертацию (отрезок -> кабель) и (полилиния -> кабель) ну и наверное обратная конвертация. Имея возможность конвертировать на лету, необходимость нагружать полилинию отпадет
Во-первых, чертить цельные объекты многими отрезками - все равно, как составлять тексты из отдельных букв. Во-вторых, зачем вообще "конвертировать" графику в объекты, если сразу построить черчение с определением графических элементов как объекты?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 23.06.2016, 13:43
#180
trir


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


1. Объекты можно рисовать по разному, в зависимости от ситуации
2. Нужно прописать взаимодействие объектов с другими объектами
trir вне форума  
 
Непрочитано 23.06.2016, 15:05
#181
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 116


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Во-первых, чертить цельные объекты многими отрезками - все равно, как составлять тексты из отдельных букв.
Хорошо сказали но сидя в голом брикскаде, разницы особо нет чем я кабель виду отрезком или полилинией. Все равно от распределительного щита все приборы одной полилинией не выполнишь, вот как вы сделаете разветвление полилинией? никак, значит она разорванная, если разорванная то какая разница как рисовать и то то разорванное. А вот если я черчу специальным примитивом, то дело совсем по другому. А так любой объект все равно будет состоять из базовых примитивов. Скажите хоть одну программу у которой базовая полилиния имеет дополнительные характеристики, сечения, толщина стенки трубы? я хочу на это посмотреть. Конечно если это не спец софт.

Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Что лишнего и "нагружающего" может быть в информации о том, какой объект отображен, и какие у него характеристики? Я-то думаю, что это такая же основная информация, как и геометрия.
Кроме того, при появлении у графики определений объектов появляются новые полезные возможности - поиска по названиям объектов, восстановления графических свойств, если что-то случайно или специально перекрашивали, меняли слои и пр. И ряд других.
Тут я ничего не понял вот круг, вы открыли характеристику и написали бочка, и что теперь для программы это бочка. Так делать я считаю не стоит. Круг - это круг. Пользователь должен осознавать что сейчас он чертит линию, или кабель, или трубу и самое главное что программа это тоже понимала. Мне стало интересно понять ход ваших мыслей, но я их не улавливаю. Не посылайте меня в блог OD/BD там много чего читать, плохой перевод. коротенько вы по любому раскладывали свои мысли по полкам в другом месте...
veb86 вне форума  
 
Непрочитано 23.06.2016, 15:48
#182
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от veb86 Посмотреть сообщение
от как вы сделаете разветвление полилинией?
В принципе, есть, минимум, два варианта:
1) участок до разветвления дать одной полилинией, к которой привязать столько соответствующих записей расширенных данных, сколько она отображает "кабелей",
2) участок до разветвления дублировать графически столькими полилиниями кабелей, сколько их есть.
Я сторонник первого варианта.
Ничто не мешает к одному графическому элементу привязывать несколько записей расширенных данных. В данном контексте - определять элементы как типы объектов. Т.е. как кабели, стены и пр.
В том числе одну линию можно таким способом определить не только как несколько однородных объектов, но и как разнородные объекты. Допустим, в каких-то случаях те же кабели и каналы для них можно отобразить одной линией, определив ее и как кабели, и как канал. И т.п.
Цитата:
Сообщение от veb86 Посмотреть сообщение
Скажите хоть одну программу у которой базовая полилиния имеет дополнительные характеристики, сечения, толщина стенки трубы? я хочу на это посмотреть
Я тоже хочу на такой CAD посмотреть! А еще - иметь. Именно в этом суть моих предложений о построении CAD. Там оч. коротко.
Цитата:
Сообщение от veb86 Посмотреть сообщение
вот круг, вы открыли характеристику и написали бочка, и что теперь для программы это бочка. Так делать я считаю не стоит. Круг - это круг. Пользователь должен осознавать что сейчас он чертит линию, или кабель, или трубу и самое главное что программа это тоже понимала.
Бочку достаточно описать только графическим элементом круг в том случае, если мы рассчитываем только на визуальное восприятие и интерпретацию непосредственно человеком. Т.е. создаем графическую модель - модель, рассчитанную на идентификацию, интерпретацию человеком. Если же мы хотим создать модель "информационную", т.е. полностью пригодную и компьютерной обработке, то нужно этот круг определить. Моделью чего он является. Бочки, допустим.
Если же встроить в сам CAD процесс определения элементов, сделать неразрывным графику и семантику, то не нужно отдельного процесса определения - выбрал черчение круга с обычной кнопки/команды CIRCLE, в меню появится объект "окружность_N", изменил это название на "бочка", и черти круги==бочки пока мышь не сдохнет. В другом файле подгрузил этот файл описания объектов, раздал сотрудникам, субподрядчикам и пр. этот файл описания - и бочки чертятся у всех одним примитивом, в одном слое, цвете и т.п.
__________________
количество моих сообщений не говорит о знании Автокада

Последний раз редактировалось АлексЮстасу, 24.06.2016 в 03:35.
АлексЮстасу вне форума  
 
Непрочитано 23.06.2016, 16:30
#183
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,065


Цитата:
Сообщение от veb86 Посмотреть сообщение
Скажите хоть одну программу у которой базовая полилиния имеет дополнительные характеристики, сечения, толщина стенки трубы? я хочу на это посмотреть. Конечно если это не спец софт.
Это ADT 2014:

А вообще на работе последние лет 5 так и работаем, базовая линия стен имеет некоторое описание (армирование, выпуска, диаметр труб) и по этим линиям и описаниям создается спецификации. Все в базовом автокаде.

Я внимательно слежу за дискуссией, но последнее время перестал понимать суть...
__________________
_бложиг
Boxa на форуме  
 
Непрочитано 24.06.2016, 05:16
#184
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от Boxa Посмотреть сообщение
А вообще на работе последние лет 5 так и работаем, базовая линия стен имеет некоторое описание (армирование, выпуска, диаметр труб) и по этим линиям и описаниям создается спецификации. Все в базовом автокаде.

Я внимательно слежу за дискуссией, но последнее время перестал понимать суть...
Пардон за предположение - возможно, что мы с Вами под расширенными данными понимаем разное. Я имею в виду не эти "расширенные данные" из закладки Свойства, а аналоги автокадовских XData, XRecord. С их помощью можно привязать к элементам практически любого объема и содержания описательную информацию прямо в dwg. И в них описать все необходимые характеристики объектов в виде полей данных нужного формата, в которые можно записывать значения этих характеристик. Т.е. не в одном поле "Notes" все сразу. А, например, свое поле для диаметра, свое - для толщин стенок. А также поля для назначения, материала, производителя и пр., и пр. Соответственно, можно производить ввод, редактирование значений характеристик прямо в Автокаде при черчении объектов. И можно организовать поиск в dwg по значениям в этих полях, пр. анализ и подсчеты.
Одно из полей во всех таких записях можно специально отвести под идентификаторы типов объектов. Где будет записано название типов объектов - "кабель", "стена", "бочка" или т.п.
Т.е., если в CAD сразу соединить графические элементы с их описательными данными, то чертеж из модели графической превращается в модель "информационную". Причем, без особых дополнительных усилий пользователя.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 24.06.2016, 10:39
#185
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 116


Цитата:
Сообщение от Boxa Посмотреть сообщение
А вообще на работе последние лет 5 так и работаем, базовая линия стен имеет некоторое описание (армирование, выпуска, диаметр труб) и по этим линиям и описаниям создается спецификации. Все в базовом автокаде.
Про это не знал, потому что последние 4 года работал на лицензионном bricscad 2009 (тихий ужас) и последние 2 года на 2014 (по лучше, но до 2008 автокада еще работать и работать) Нас таких двое привилегированных (продвинутых в плане ПО) в конторе, остальные на 2009 сидят. Это глубинка! Поэтому новые фишки автокада не знакомы((( Совершено с Вами согласен, такая фишка реально ускорила бы жизнь, если бы у нас такое было

Цитата:
Сообщение от Boxa Посмотреть сообщение
Я внимательно слежу за дискуссией, но последнее время перестал понимать суть...
я тоже плохо понимаю, статью которую мне предложили вчера я прочитать не успел.
Но мне кажется что АлексЮстасу хочет, что бы в свойствах любого объекта можно было добавлять свойства, типа кнопку нажал добавилось поля, присвоил имя полю, дал значение и потом этот объект копируешь вместе со свойствами. Потом фильтр запустил поиск по свойствам и нашел что нужно. Это конечно было бы удобно, только для поиска, создания спецификаций, но все что так добавить не будет взаимодействовать с другими объектами, взаимодействие надо описывать от источника до потребителя - серьезный расчет не возможно поместить в таблицу (пример Эксел 2007 циклов нет, в новых не знаю), потому что много циклов, промежуточных величин, анализа.
Обязательно попозже прочитаю статью.
veb86 вне форума  
 
Автор темы   Непрочитано 24.06.2016, 18:35
#186
zamtmn

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


АлексЮстасу
Цитата:
Пардон за предположение - возможно, что мы с Вами под расширенными данными понимаем разное. Я имею в виду не эти "расширенные данные" из закладки Свойства, а аналоги автокадовских XData, XRecord. С их помощью можно привязать к элементам практически любого объема и содержания описательную информацию прямо в dwg. И в них описать все необходимые характеристики объектов в виде полей данных нужного формата, в которые можно записывать значения этих характеристик. Т.е. не в одном поле "Notes" все сразу. А, например, свое поле для диаметра, свое - для толщин стенок. А также поля для назначения, материала, производителя и пр., и пр. Соответственно, можно производить ввод, редактирование значений характеристик прямо в Автокаде при черчении объектов. И можно организовать поиск в dwg по значениям в этих полях, пр. анализ и подсчеты.
Именно так у меня и сделано. Сейчас на этапе компиляции я ограничиваю распространение "эти "расширенные данные"" только на примитивы которым они нужны (кабель, устройсттво), но это не принципиально. Привязвть можно что хочешь к чему хочешь.
Причем привязывать не просто текстовые значения а типизированые данные: целые, вещественные, ссылки, и главное перечислимые типы
Цитата:
дно из полей во всех таких записях можно специально отвести под идентификаторы типов объектов. Где будет записано название типов объектов - "кабель", "стена", "бочка" или т.п.
Это спорно. Полилиния какбы кабель и полилиния какбы стена? Если всеравно для нас это кабель и стена зачем какбы?

Boxa
Цитата:
А вообще на работе последние лет 5 так и работаем, базовая линия стен имеет некоторое описание (армирование, выпуска, диаметр труб) и по этим линиям и описаниям создается спецификации. Все в базовом автокаде.
Незавидую. Имхо считается-специфицируется всё наверно очень красиво, но чтобы поддержать это в актуальном состоянии затрачивается много сил. В автокаде отсутствуют встроенные средства чтобы отслеживать такое. Что сы видим выделив "базовая линия" в инспекторе? ссылку на какойто файл с описанием в hyperlink?

Цитата:
Я внимательно слежу за дискуссией, но последнее время перестал понимать суть...
Я уже тоже не очень в сути. Народ тянет потеоретезировать
zamtmn вне форума  
 
Непрочитано 24.06.2016, 21:15
#187
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Сейчас на этапе компиляции я ограничиваю распространение "эти "расширенные данные"" только на примитивы которым они нужны (кабель, устройсттво), но это не принципиально. Привязвть можно что хочешь к чему хочешь.
Что за этап компиляции?
И не оч. понимаю, а каким элементам чертежа не нужно определять, что они отображают?
Цитата:
Сообщение от zamtmn Посмотреть сообщение
Причем привязывать не просто текстовые значения а типизированые данные: целые, вещественные, ссылки, и главное перечислимые типы
Да, конечно! Это позволит вводить только допустимые значения.
Цитата:
Сообщение от zamtmn Посмотреть сообщение
Это спорно. Полилиния какбы кабель и полилиния какбы стена? Если всеравно для нас это кабель и стена зачем какбы?
Как это - спорно?..
Или Вы как-то иначе определяете, что вот эта полилиния - стена, а эта - кабель? Как вообще без этого? Как это - все равно? В каких случаях это может быть все равно - кабель начерчен или стена?
Цитата:
Сообщение от veb86 Посмотреть сообщение
Это конечно было бы удобно, только для поиска, создания спецификаций, но все что так добавить не будет взаимодействовать с другими объектами, взаимодействие надо описывать от источника до потребителя - серьезный расчет не возможно поместить в таблицу
Я не предлагаю решить одним способом все задачи. Описанный в блоге подход в первую очередь предназначен для облегчения, улучшения черчения, создания моделей, сбора, описания базовой информации об объектах. При этом все данные представляются в виде уже пригодном для полного программного анализа или манипуляций.
Цитата:
Сообщение от Boxa Посмотреть сообщение
последнее время перестал понимать суть...
У меня суть такая - пытаюсь поделиться идеей с автором CAD, как можно было бы построить или модернизировать CAD за счет черчения сразу и всегда "объектами", а не графическими элементами. Под "объектами" я понимаю здесь графические элементы, идентифицированные с помощью расширенных данных как типы объектов (кабель, стена, бочка и т.п.), и с возможностью определять в расширенных данных значения их характеристик (толщина стенок, материал, производитель и пр.). Уже вроде бы установили, что автор-zamtmn сам давно использует подобный подход, но ограниченно.
А так - в основном пытаемся продираться сквозь различия в терминологии, в опыте, в оценках, в задачах и т.п.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 25.06.2016, 11:48
#188
zamtmn

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


АлексЮстасу
Цитата:
Что за этап компиляции?
И не оч. понимаю, а каким элементам чертежа не нужно определять, что они отображают?
Сейчас запрещено обычным примитивам иметь расширенные данные, их имеют только специальные "узкоспециализированные" примитивы. Обычным линиям-полилиниям и т.п. специально запрещено иметь расширенные данные.

Цитата:
Как это - спорно?..
Или Вы как-то иначе определяете, что вот эта полилиния - стена, а эта - кабель?
При моем подходе полилиния\стена\кабель - это разные примитивы. Пусть по сути это простая полилиния с чуть разным поведением и своим набором "расширенных" данных, но всё завернуто в разные примитивы.

ИМХО то что Вы описываете в статьях имеет смысл в виде "меню стилей" или чертежных стандартов. "Расширенные" данные в него тянуть не надо, т.к. сами по себе эти данные смысла никакого не имеют - нужна программа их обрабатывающая. Логично в эту программу запихнуть и функционал манипуляции данными. Судя по картинкам в статьях - функционал отображения "данных" в окне свойств у вас есть, не "глобализируйте\универсализируйте", решайте свои конкретные задачи
zamtmn вне форума  
 
Непрочитано 25.06.2016, 14:26
#189
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,987


Цитата:
Сообщение от zamtmn Посмотреть сообщение
т.к. сами по себе эти данные смысла никакого не имеют - нужна программа их обрабатывающая
Давно пытаюсь подвести Александра к этой мысли - что без обработки данных это все полузаготовка. Т.е., как минимум, должно еще что-то вроде открытого API для упрощенного взаимодействия с массивом данных, занесенных в расширенные данные примитивов. А когда пойдет разговор об обработке данных - то неизбежно всплывет вопрос - зачем хранить все данные в расширенных данных примитивов, когда для групповой обработки их все равно придется извлекать в какую то программную структуру/БД. Так как каждый раз обращаться к примитиву и читать расширенные данные - при большем количество элементов станет слишком накладно.
Сергей812 вне форума  
 
Непрочитано 25.06.2016, 19:24
#190
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от zamtmn Посмотреть сообщение
При моем подходе полилиния\стена\кабель - это разные примитивы. Пусть по сути это простая полилиния с чуть разным поведением и своим набором "расширенных" данных, но всё завернуто в разные примитивы.
Т.е. у Вас часть чертежа - модель чисто графическая ("обычные" примитивы), а часть - модель "информационная" (специальные примитивы). По-моему, это уже внутреннее противоречие. Неоднородность данных с соответствующими последствиями.
Во-вторых, если я правильно понял (про компиляцию), созданием примитивов-объектов и их поведением управляет программист, а не пользователь. Соответственно - не гибко, долго, неудобно для пользователей, непредсказуемо.
Цитата:
Сообщение от zamtmn Посмотреть сообщение
ИМХО то что Вы описываете в статьях имеет смысл в виде "меню стилей" или чертежных стандартов. "Расширенные" данные в него тянуть не надо, т.к. сами по себе эти данные смысла никакого не имеют - нужна программа их обрабатывающая. Логично в эту программу запихнуть и функционал манипуляции данными.
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Давно пытаюсь подвести Александра к этой мысли - что без обработки данных это все полузаготовка.
Вы совершенно правы - я не предлагаю решение всех задач CAD. Я предлагаю начать с первой их задачи. Но с прицелом на остальные.
Предлагаю расширить возможности в первую очередь именно черчения, сбора данных за счет идентификации графических элементов как объекты и описания их характеристик. И тем самым превратить чертежи из чисто графических моделей в "информационные", сразу при черчении, задать в унифицированной форме основную нужную информацию об объектах. Благодаря чему будет удобнее, проще решать остальные задачи - то, что вы подразумеваете под манипулированием, обработкой.
Исхожу из того, что черчение==создание моделей - это первая задача CAD. Просто технически, хронологически. Очень часто - и главная, и единственная. Последнее - про тех самых примерно 70-80% пользователей, предпочитающих базовый Автокад. Для многих из них (неизвестно для скольких) использование CAD ограничивается процессом вычерчивания и визуального анализа. Да, многие из них (пусть даже большинство) используют самые разнообразные вспомогательные программы для анализа этих моделей, расчетов, подсчетов и отчетов. И разнообразные способы идентификации графических элементов как объекты и описания их характеристик. Так почему бы сразу не обеспечить всех пользователей достаточным способом описания этих данных? Что заметно ускорит, упростит подготовку данных. И в унифицированной форме, что облегчит создание программ обработки и подсчетов. Тем более, что сделать это технически несложно, и ускоряет, улучшает уже само черчение.
Да, это меньше, чем все, но это же немало.
Вот о том, как решить эту задачу оптимальнее, удобнее для анализа, манипулирования данными и т.п. - это, конечно, вопрос.
Например, ваши мнения уже противоречат друг другу - Вы, zamtmn, считаете расширенные данные подходящим средством, а Вы, Сергей812, считаете их неудобными.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 26.06.2016, 00:15
#191
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,987


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Например, ваши мнения уже противоречат друг другу - Вы, zamtmn, считаете расширенные данные подходящим средством, а Вы, Сергей812, считаете их неудобными.
уже писал выше - чтобы как то обработать расширенные данные, их сначала надо извлечь. Чтобы изменить одно значение - надо переписывать весь блок расширенных данных примитива. Поэтому идея хранить всю информацию именно в расширенных данных примитива подкупает своей простотой программной реализации, но с точки зрения обработки, формирования взаимосвязей и т.д. требует постоянных обращений к БД чертежа.
Сергей812 вне форума  
 
Непрочитано 26.06.2016, 03:09
#192
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Поэтому идея хранить всю информацию именно в расширенных данных примитива подкупает своей простотой программной реализации, но с точки зрения обработки, формирования взаимосвязей и т.д. требует постоянных обращений к БД чертежа.
Ок. Пожарный вариант - разделить процессы черчения, сбора данных с обработкой. Для обработки выгружать в удобный вид. В какой бы, кстати? Что порекомендуете?
А, заодно, есть удобная альтернатива расширенным данным для описания характеристик?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 26.06.2016, 11:53
#193
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,987


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
А, заодно, есть удобная альтернатива расширенным данным для описания характеристик?
если корпоративная система - то БД однозначно (заодно вынести туда все настройки по слоям и т.д. Это также защитит частично программу - без БД даже рисовать не получиться нормально). Если локально - то тоже можно БД, xml, бинарник - вариантов много. Но от расширенных данных все равно не уйдете - идентификатор БД придется писать куда то.

Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Для обработки выгружать в удобный вид. В какой бы, кстати? Что порекомендуете?
ну если хотите опять универсальности - то посмотрите реализацию LINQ, например. Хотя это не панацея. Для начала надо сформировать правила обработки, иначе получиться очередной промежуточный костыль. А правила обработки для каждого раздела отличаются.

p.s. может все таки не будем в чужой ветке писать опять про вашу программу?)
Сергей812 вне форума  
 
Непрочитано 26.06.2016, 19:25
#194
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
p.s. может все таки не будем в чужой ветке писать опять про вашу программу?)
Зря так пишете - я в эту тему зашел с не реализованной никак еще идеей о возможном подходе к построению CAD.
Если zamtmn не захочет обсуждать перспективность использования расширенных данных, альтернативы им - испарюсь немедленно. Но может же быть и наоборот - вдруг zamtmn идея понравится? Да и обсуждается же то, что в ZCAD сделано, как сделано или может быть сделано.
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
если корпоративная система - то БД однозначно (заодно вынести туда все настройки по слоям и т.д. Это также защитит частично программу - без БД даже рисовать не получиться нормально). Если локально - то тоже можно БД, xml, бинарник - вариантов много. Но от расширенных данных все равно не уйдете - идентификатор БД придется писать куда то.
Идею внешней БД на стадии создания чертежей, моделей я (пока что) полностью не поддержу. Массовому пользователю, по-моему, не подходит - слишком сложно.
А, вот, что "от расширенных данных все равно не уйдете" вдохновляет
По-моему, пока что они - самое удобное. Начертил что-то - оно уже идентифицировано, уже есть поля для характеристик, уже описаны ограничения для значений в полях. Сразу доступны для выбора по идентификаторам, по значениям характеристик, сразу можно как-то манипулировать. И все предельно компактно, просто - практически не сложнее, чем обычный графический чертеж.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 27.06.2016, 10:36
#195
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 116


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
уже писал выше - чтобы как то обработать расширенные данные, их сначала надо извлечь. Чтобы изменить одно значение - надо переписывать весь блок расширенных данных примитива. Поэтому идея хранить всю информацию именно в расширенных данных примитива подкупает своей простотой программной реализации, но с точки зрения обработки, формирования взаимосвязей и т.д. требует постоянных обращений к БД чертежа.
Думаю что все таки правильнее хранить в расширенных данных. Что то особенное все равно обработать не получится, если пользоваться методом АлексЮстасу, хотя если изощрится то все возможно.

задача десятилетия: "описание программы АлексЮстасу" . Буду говорить о себе, мое не понимание упирается изначально в то что я электрик и рассматриваю задачу со своей колокольни, у меня не так много УГО(их много но ходовых не так что бы уж прям) и они все как правило блоки. А АлексЮстасу топограф, у них обозначений море, полный полет фантазии, линию начертил вот вам деревянный забор, другая линия бордюрный камень и т.д. поэтому его и смущает подход когда все оборачивать примитивами, при топографии примитивов реально много надо создавать и никогда не знаешь что еще появится или придумаешь нового. Вот какое решение я вижу, если что подправте:
1. вам надо создать меню которое хорошо будет общаться с БД, возможно даже показывать картинки(на памяти у меня только tangentools https://yandex.ru/images/search?text...oreask=1&lr=49, но она работала с блоками, а вам лучше БД xml было бы здорово)
2. внутри этого меню сделать кнопки (линия, полилиния, вставить, копировать, создать), выделил элемент из меню (бетонный забор) нажал кнопку "полилиния" определенную, и ей чертишь, со свойствами которые заранее заложены в меню. Выбрал элемент лиственное дерево, вставил или копировал что бы вставка зацикленная была.
3. после всего этого можно уже анализировать весь полученный массив лини с расширениями и ими манипулировать.
4. думаю основные линии трогать не надо(пускай полилиния останется полилинией), а Ваша полилиния будет называться как то по особенному. (Это вопрос для обсуждения вообще не ясно, как лучше нужно по работать что бы понять в любом случаи объединить потом полилинии будет не сложно)

Что нужно что бы это сделать, Вам нужны адепты которые будут программировать, не знаю уж на базе чего вы захотите это видеть, но ZCAD не плохая платформа, тем более открытая. Ищите программистов, договоритесь zamtmn что бы разграничить узкие места или как то их решить сообща и проблема решена... Сразу скажу я падаван в программировании, мне такое не под силу и возможности такие не очень нужны, я в первую очередь все равно решаю свои задачи, свои проблемы...

Последний раз редактировалось veb86, 27.06.2016 в 10:48.
veb86 вне форума  
 
Непрочитано 27.06.2016, 13:41
#196
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,715


Цитата:
Сообщение от veb86 Посмотреть сообщение
задача десятилетия
Да, здесь тема zamtmn, и обсуждать здесь не его идеи стоит только в той мере, в какой он заинтересован.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 29.11.2016, 23:07
#197
zamtmn

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


Всем здравия.
Давно не появлялся, но проект живет потихоньку.
Обдумываю одно небольшое, но очень перспективное нововведение. На данный момент различные дополнительные свойства устройств хранятся отдельно в этих самых устройствах. Например "представление" устройства на схеме автоматизации и "представление" устройства на плане - при изменении например свойства эл.мощности в одном, в другом она останется неизменной, а при изменении например имени одного устройства, они вообще "разъедутся" - станут разными. Надо эти параметры централизовано хранить гдето в одном месте.
Варианты:
1 - Централизовано хранить гдето вне чертежа все устройства имеют ссылки на место хранения
2 - Централизовано хранить в одном из устройств на чертежа все остальные устройства имеют ссылки на "главное" устройство, при удалении "главного" устройства "главным" станет другое представление
3 - Ввести новую сущность - определение устройства - невидимый блок, не удаляемый обычными средствами, остальные устройства имеют на него ссылку.

1 - вроде как самый правильный, но затратный, т.к. эту внешнюю сущность надо реализовать.
2 - попроще, на данном этапе не приведет к тотальной переделке существующего кода, в дальнейшем позволит менее болезненно свалить на первый вариант при необходимости.
3 - самый простой в реализации, но кроме "централизации" плюсов не несет никаких.

С удовольствием выслушаю, если кому есть что сказать по теме. Да и без темы тоже))
zamtmn вне форума  
 
Непрочитано 30.11.2016, 00:01
#198
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,987


Вариант 1. Причем предусмотреть в самой записи флаг изменения данных и ссылки на устройства тоже. На мой взгляд это облегчит обновление чертежей, и будет более унифицировано.
Сергей812 вне форума  
 
Автор темы   Непрочитано 06.12.2016, 19:28
#199
zamtmn

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


На пути централизации нарисовались подводные камни. Оказалось что полностью весь набор свойств хранить централизовано не получается, некоторые вещи всеравно нужно хранить "локально" в "устройстве". Изза этого путаница одно и тоже может быть там и тут.
zamtmn вне форума  
 
Непрочитано 06.12.2016, 23:23
#200
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,987


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Изза этого путаница одно и тоже может быть там и тут.
так для этого и писал
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
и ссылки на устройства тоже
поменяли в чертеже - обновили информацию в центральном хранилище. Поменяли информацию в центральном хранилище - сразу по ссылках обновили информацию в чертежах (открывая в фоновом режиме при необходимости).
Сергей812 вне форума  
 
Автор темы   Непрочитано 07.12.2016, 06:52
#201
zamtmn

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


>>так для этого и писал
Проблема не тут. Простой пример:
Например есть кабель питающий прибор ARK1. Начинается он на шкафе распределительном ШР1, заканчивается на ARK1.
На чертеже это выглядит так: на плане первого этажа "кусок" кабеля от ШР1 до стояка, на плане второго этажа "кусок" кабеля от стояка до символа разрыва, на виде от символа разрыва до блока ARK1.
Т.е. фактически кабель состоит из 3х примитивов - 2 на планах, 1 на виде. причем на планах масштаб например 1:100, а на виде 1:50.
Получается для 2х кусков на планах масштабный коэффициент хранится централизовано 1:100, а третий кусок на виде имеет его локальное "переопределение" 1:50.
Таких ситуаций вынуждающих некоторые свойства хранить локально может быть очень много, поэтому тупо взять и вынести все куда то в "центр" не получилось.
"Путаница" возникает тут - пользователь выделил 3й кусок кабеля на "виде", в инспекторе появился его масштаб 1:50 - пользователь должен помнить что он видит и редактирует "локальное" переопределение а не "глобальное" значение.
Пока в качестве "решения" рассматриваю по разному раскрасить "локальные" и "глобальные" параметры в инспекторе

Последний раз редактировалось zamtmn, 07.12.2016 в 07:00.
zamtmn вне форума  
 
Непрочитано 07.12.2016, 09:19
#202
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 116


Цитата:
Сообщение от zamtmn Посмотреть сообщение
>>так для этого и писал
Проблема не тут. Простой пример:
Например есть кабель питающий прибор ARK1. Начинается он на шкафе распределительном ШР1, заканчивается на ARK1.
На чертеже это выглядит так: на плане первого этажа "кусок" кабеля от ШР1 до стояка, на плане второго этажа "кусок" кабеля от стояка до символа разрыва, на виде от символа разрыва до блока ARK1.
Т.е. фактически кабель состоит из 3х примитивов - 2 на планах, 1 на виде. причем на планах масштаб например 1:100, а на виде 1:50.
Получается для 2х кусков на планах масштабный коэффициент хранится централизовано 1:100, а третий кусок на виде имеет его локальное "переопределение" 1:50.
Таких ситуаций вынуждающих некоторые свойства хранить локально может быть очень много, поэтому тупо взять и вынести все куда то в "центр" не получилось.
"Путаница" возникает тут - пользователь выделил 3й кусок кабеля на "виде", в инспекторе появился его масштаб 1:50 - пользователь должен помнить что он видит и редактирует "локальное" переопределение а не "глобальное" значение.
Пока в качестве "решения" рассматриваю по разному раскрасить "локальные" и "глобальные" параметры в инспекторе
А зачем масштаб хранить централизовано, пускай масштаб хранится только локально. Вариант с тем что если локально не переопредели, то брать их централизовано тоже прикольный. Все правильно, реализовать надо и такую и такую возможность. А вообще, я все таки представляю работу с масштабом в виде зон, обвел вид или план супер прямоугольником, и присвоил в нем масштаб, и уже все кабели внутри при построении будут получать масштаб из этого прямоугольника, в локальное хранилище.
veb86 вне форума  
 
Непрочитано 07.12.2016, 09:40
#203
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,987


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Получается для 2х кусков на планах масштабный коэффициент хранится централизовано 1:100, а третий кусок на виде имеет его локальное "переопределение" 1:50.
А для этого и придумали листы и видовые экраны с масштабированием в том же акаде)
Сергей812 вне форума  
 
Автор темы   Непрочитано 07.12.2016, 11:00
#204
zamtmn

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


Это всего лишь пример иллюстрирующий проблему. Гдето-чтото придумали... гдето это использовали... гдето не использовали - другой вопрос, проблемы с необходимостью локального хранения некоторых свойств не касается.
zamtmn вне форума  
 
Непрочитано 07.12.2016, 12:03
#205
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,987


да и собственно что нужно: длина кабеля (с учетом подъемов/спусков и запаса на монтаж) и куда он подходит. Если будет функция, которая будет забирать в центральное хранилище длину кабеля с учетом хранящегося локально в кабеле масштаба - то для дальнейшей обработки и выдачи информации в виде КЖ, спецификации и т.д. этот локальный масштаб особо и не нужен.
Сергей812 вне форума  
 
Автор темы   Непрочитано 07.12.2016, 17:00
#206
zamtmn

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


По большому счету ниче никому ненужно)) но когда доходит до дела - всё состоит из таких "мелочей"
Таже длина кстати тоже есть локальная - для конкретного куска и глобальная - сумма длин кусков и "межстоячного" расстояния
zamtmn вне форума  
 
Непрочитано 07.12.2016, 17:05
#207
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,987


Цитата:
Сообщение от zamtmn Посмотреть сообщение
По большому счету ниче никому ненужно)) но когда доходит до дела - всё состоит из таких "мелочей"
и в какой момент времени понимаешь - что нужно все бросить и сделать заново по иной идеологии - но жалко) И просто лень)
Сергей812 вне форума  
 
Автор темы   Непрочитано 07.12.2016, 17:20
#208
zamtmn

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


Я не считаю что у меня с идеологией чтото нетак - не усложняю на ровном месте.

Последний раз редактировалось zamtmn, 07.12.2016 в 17:36.
zamtmn вне форума  
 
Автор темы   Непрочитано 10.08.2017, 14:06
#209
zamtmn

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


Давно не брал я в руки шашек))
В lazarus`е появиились более менее рабочие докающиеся тулбары.
В связи с тем что было очень много жалоб на проблемы с изменениием размера главного окна программы связаные с "эмуляцией" тулбаров докающимися формами - переделываю интерфейс на настоящие тулбары.
Теперь выглядит примерно так:

----- добавлено через ~3 мин. -----
http://imgur.com/a/V2jAK настройка и ресайз
Миниатюры
Нажмите на изображение для увеличения
Название: toolbars.png
Просмотров: 150
Размер:	172.3 Кб
ID:	192044  
zamtmn вне форума  
 
Автор темы   Непрочитано 26.08.2017, 17:20
#210
zamtmn

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


"Новый" релиз https://sourceforge.net/projects/zca...atest/download с новым интерфейсом
zamtmn вне форума  
 
Непрочитано 28.08.2017, 18:48
#211
Marsikus

software quality engineer
 
Регистрация: 19.09.2009
Харьков, Украина
Сообщений: 446


Цитата:
Сообщение от zamtmn Посмотреть сообщение
"Новый" релиз https://sourceforge.net/projects/zca...atest/download с новым интерфейсом
Поздравляю с новым релизом!
__________________
energokot.blogspot.com
Marsikus вне форума  
 
Непрочитано 28.08.2017, 20:55
#212
ProjectMaster


 
Регистрация: 21.08.2017
Сообщений: 1,064


Цитата:
Сообщение от zamtmn Посмотреть сообщение
"Новый" релиз https://sourceforge.net/projects/zca...atest/download с новым интерфейсом
Я попробовал за запустить - возникает глюк. Отрисованные объекты (отрезки полилинии) пропадают. Если перемещать средней кнопкой модель - становиться видно. Оставляю в покое - пропадают. Видимо глюк графической библиотеки. Система windows 7x64.
А Вы программу вообще с нуля пишите или какие-то библиотеки в качестве основы брали?
База данных для хранения объектов чертежа своя или сторонняя?

Последний раз редактировалось ProjectMaster, 28.08.2017 в 21:01.
ProjectMaster вне форума  
 
Автор темы   Непрочитано 28.08.2017, 22:44
#213
zamtmn

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


>>возникает глюк
Поставте драйвера от производителя видеокарты, или включите рендеринг через гди (Рендер\Render backend в инспекторе) перед загрузкой чертежа
Всё свое.
zamtmn вне форума  
 
Непрочитано 28.08.2017, 23:13
#214
ProjectMaster


 
Регистрация: 21.08.2017
Сообщений: 1,064


Цитата:
Сообщение от zamtmn Посмотреть сообщение
>>возникает глюк
Поставте драйвера от производителя видеокарты, или включите рендеринг через гди (Рендер\Render backend в инспекторе) перед загрузкой чертежа
Всё свое.
Прошу понять меня правильно. Эйнштейну приписывают слова (примерно), что талант заключается в умении приложить все усилия для достижения цели, а гений состоит в умении отказаться от этой цели (несмотря на все усилия) в пользу другой. Может быть, плюнуть и переделать программу на что-то более масштабируемое и универсальное (типа ObjectArx на c++).
На мой взгляд, на авттокадах/нанокадах/брикскадах и т.д. ваша программа могла бы найти больше пользователей.
Я когда-то на старой дельфи пытался создать свой автокад (я конструктор ПГС). Была куча наработок. Хорошо, что дельфа плохо работала с памятью и мне пришлось переучиться на c++. В результате я сэкономил кучу времени на создание уже имеющихся функций и посвятил себя тому, что в существующих программах реализовано плохо, либо совсем не реализовано. Я сэкономил кучу времени.

Последний раз редактировалось ProjectMaster, 28.08.2017 в 23:19.
ProjectMaster вне форума  
 
Непрочитано 29.08.2017, 00:02
#215
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,987


В третьем нанокаде была похожая ситуация - при масштабировании рабочего пространства нано произвольно решал: что ему при данном масштабе отображать из примитивов, а что нет. Потом побороли эту "фичу" в одном из следующих релизов)
Сергей812 вне форума  
 
Автор темы   Непрочитано 29.08.2017, 00:43
#216
zamtmn

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


ProjectMaster
Про то что не на том пишу я уже устал объяснять)) Это хобби - я не экономлю время и не зарабатываю деньги на этом.

Сергей812
Фича тут в том что дефолтный драйвер opengl в составе windows очень обрезан, я довольно давно выкинул его поддержку - она нужна только для одноразовых смотрельщиков(( решить вопрос раз и навсегда можно написанием directx бакенда отрисовки. но мне это не очень интересно
zamtmn вне форума  
 
Непрочитано 29.08.2017, 00:58
#217
ProjectMaster


 
Регистрация: 21.08.2017
Сообщений: 1,064


Цитата:
Сообщение от zamtmn Посмотреть сообщение
ProjectMaster
Про то что не на том пишу я уже устал объяснять)) Это хобби - я не экономлю время и не зарабатываю деньги на этом.
На самом деле, я сам примерно такой. Я думал как сделать, чтобы мой личный автокад работал быстрее автодесковского. Я решил, что нужно создать отдельный поток данных для opengl'а, компилируемых из базы данных графичеких объектов таким образом, чтобы обеспечивать минимальное число вспомогательных операций (типа сначала все линии красные рисуются и т.д.).
И хранение в базе объектов такое, чтобы хранились не сами объекты, а их отличия от предыдущих. Но до реализации так и не дошел. Это означает, что параллельные отрези (которых в чертежах очень много) можно хранить не 6 числами (x1,y1,z1,x2,y2,z2), а только смещением от базового объекта и коэффициентом масштаба (dx, dy, dz).
ProjectMaster вне форума  
 
Автор темы   Непрочитано 29.08.2017, 01:07
#218
zamtmn

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


>>можно хранить не 6 числами
Возможно это имеет смысл при хранении данных на диске, но не внутри программы в озу

У меня ниче такого нет, всё по старинке))
zamtmn вне форума  
 
Непрочитано 29.08.2017, 01:42
#219
ProjectMaster


 
Регистрация: 21.08.2017
Сообщений: 1,064


Цитата:
Сообщение от zamtmn Посмотреть сообщение
>>можно хранить не 6 числами
Возможно это имеет смысл при хранении данных на диске, но не внутри программы в озу

У меня ниче такого нет, всё по старинке))
Я вот сейчас пытаюсь в с++ посчитать осадку свайного поля под 4-х секционным 18-этажным зданием на основе текстовых файлов SCAD'а и автоматически сформулировать вторую расчетную схему с новыми коэффициентами постели - это как кросс, только для свай (для тех, кто в теме). А все потому, что не доверяю ни кроссу, ни лире.
Каждый по своему развлекается. :-). Среди электриков почему-то программистов намного больше, чем среди конструкторов. Кстати, прогу пришлось из дельфы как раз переделывать.
Чуть попозже протестирую и народу выложу.

Последний раз редактировалось ProjectMaster, 29.08.2017 в 01:47.
ProjectMaster вне форума  
 
Автор темы   Непрочитано 29.08.2017, 01:57
#220
zamtmn

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


Для такой задачи формошлепство в делфи - идеальный случай. срр тут ненужное усложнение.
Но это имхо и офтоп
zamtmn вне форума  
 
Непрочитано 29.08.2017, 03:42
#221
bigden


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


Цитата:
Сообщение от ProjectMaster Посмотреть сообщение
вот сейчас пытаюсь в с++ посчитать осадку свайного поля под 4-х секционным 18-этажным зданием на основе текстовых файлов SCAD'а
это сетка из скада или свою генерируете?
bigden вне форума  
 
Непрочитано 29.08.2017, 06:34
| 1 #222
ShaggyDoc

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


Цитата:
Сообщение от ProjectMaster Посмотреть сообщение
Может быть, плюнуть и переделать программу на что-то более масштабируемое и универсальное (типа ObjectArx на c++).
На мой взгляд, на авттокадах/нанокадах/брикскадах и т.д. ваша программа могла бы найти больше пользователей.
Много чего "может быть". Советовать можно что угодно, и советы могут быть справедливыми.

Но zamtmn делает программу для себя. По своей концепции. Именно "с нуля". Не взял какие-нибудь CAD-компоненты, которые есть для Delphi. Ради интереса и для "унутреннего употребления". При этом он уже приобрел бесценный опыт. И с другими делится. Да, что-то не получается, где-то не туда пошел, вернулся. Ничего страшного.

Конечно, этот проект никогда не будет коммерчески успешным, так он и не задумывался таким.

Удачи, zamtmn.
ShaggyDoc вне форума  
 
Непрочитано 29.08.2017, 07:53
#223
ProjectMaster


 
Регистрация: 21.08.2017
Сообщений: 1,064


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Для такой задачи формошлепство в делфи - идеальный случай. срр тут ненужное усложнение.
Но это имхо и офтоп
На самом деле - нет. Object Pascal не поддерживается напрямую производителями основных CAD. Большинство алгоритмов, которыми можно воспользоваться, написаны на c++. Некоторые функции можно просто скопировать и не переводить на Object Pascal.
C++ я выучил за месяц, читая книжку в автобусе по дороге на работу. Время, потраченное на изучение C++ с лихвой экономиться при разработке.
У c++ есть система шаблонов типа vector и система перегружаемых операторов для классов, которые в разы упрощают работу с кодом. Для c++ есть современные компиляторы, которые позволяют работать на 64-разрядной архитектуре, поэтому для больших задач скорость работы программы на с++ больше возможности увеличить.

P.s.
Я не сравниваю возможности Net и чистого c++, так как не специалист в Net. Возможно, Net предпочтительнее c++.

----- добавлено через ~6 мин. -----
Цитата:
Сообщение от bigden Посмотреть сообщение
это сетка из скада или свою генерируете?
Сваи моделируются связями односторонней жесткости в SCAD. В Скаде создается группа из элементов односторонней жесткости с именем, соответствующей геологической колонки.
Выводится txt файл расчетной схемы и txt файл нагрузок на связи конечной жесткости.

Потом осадка каждой сваи считается методом послойного суммирования как для условного фундамента с учетом влияния соседних условных фундаментов. Нагрузка от грунта при выемке котлована не учитывается. Для каждой сваи-пружинки считается откорректированный коэффициент жесткости.

Программа формирует txt файл расчетной схемы с учетом откорректированных жесткостей свай,которые получены методом послойного суммирования.

----- добавлено через ~8 мин. -----
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Удачи, zamtmn.
Присоединюсь.

Последний раз редактировалось ProjectMaster, 29.08.2017 в 08:28.
ProjectMaster вне форума  
 
Автор темы   Непрочитано 29.08.2017, 08:39
#224
zamtmn

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


Да у С комюнити больше, да это промстандарт... Но алгоритмы они одинаковые что на паскале, что на с
С++ непомерно сложнее и просто си и паскаля, толку от его выучивания за месяц нет никакого - нужна практика. Это что за алгоритмы на нем пишут))?

>>У c++ есть...
В современном паскале это тоже всё есть.
холивар с[++] vs pascal завязываем, или открываем другую тему. Тут мне гораздо интересней услышать претензии к новому интерфейсу

ShaggyDoc, ProjectMaster
Спасибо!
zamtmn вне форума