| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
6 | | #1 |
Создание CAD программы с нуля
КИПиА
Tyumen
Регистрация: 21.03.2005
Сообщений: 1,558
|
||
Просмотров: 208448
|
|
||||
Регистрация: 09.12.2008
Сообщений: 4,663
|
это один из самых популярных проектов на free pascal на sf.net но повертев туда сюда работать я не почему то не смог. Не хватило времени для разбирательства.
последняя версия которую я закачивал - была на русском, даже слегка на олбанском, хотя в росии sf.net не особо популярен (главным образом лидирует по закачкам италия, германия и сша) есть ли сейчас нормальный английский перевод?
__________________
мой блог по некоторым вопросам |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
До работы там еще как до китая пешком)) В нем можно расставить блоки оборудования, проложить кабеля, получить несколько отчетов... а дальше дорабатывать в нормальном каде))
Нормального английского как и нормального русского пока нет. При запуске смотрится язык системы, если он русский - запускается русская версия, если нет - английская. Английская локализация зашита в код, русская сидит в cad\languades\zcad.ru.po ее можно поправить в любом PO редакторе, можно создать любую другую лакализацию, создав соответствующий PO файл |
|||
![]() |
|
||||
гадание на конечно-элементной гуще Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,611
|
Offtop: я очень извиняюсь, но почему было не взять нано в качестве платформы и на его базе пилить свои решения? Вот, например, результат нескольких недель работы: youtube.com/watch?v=sE3Zp6_osRY
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
swell{d}
Когда появился нанокад, зкад уже был в более менее адекватном состоянии, кроме того, агрессивная пиар кампания нанософта отбила всякий интерес к их продукции. Когдато давно я пытался использовать автокад в качестве "платформы", но в то время было очень мало доступной информации по arx - несложилось. >>Вот, например, результат нескольких недель работы Мне не столько важен результат, как сам процесс разработки)) Насколько я понял из видео - по данным из экселя отрисовываются чертежи... но это только полдела, как потом предпологается вносить изменения в чертежи? перечерчивать? |
|||
![]() |
|
||||
гадание на конечно-элементной гуще Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,611
|
Offtop: можно вопросом на вопрос? а как вы в своей слаботочке вносите изменения?
изменения изменениям рознь. если изменились параметры стенки, задаваемые из экселя - проще заного скрипт прогнать. если появились какие-то мелкие дырки (под слаботочку, например) - просто дорисовать руками. Последний раз редактировалось swell{d}, 19.11.2013 в 13:47. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
>>а как вы в своей слаботочке вносите изменения?
Я хочу чтобы чертеж был некой моделью, т.е. не только строился по внешним данным, а содержал эти данные. >>если изменились параметры стенки, задаваемые из экселя - проще заного скрипт прогнать. >>если появились какие-то мелкие дырки (под слаботочку, например) - просто дорисовать руками. Имхо не стоит мешать эти подходы. если генерируется - пусть генерируется - не надо руками его править. Но если всетаки есть соблазн поправить, надо иметь способ получить назад измененные исходные данные из исправленного чертежа |
|||
![]() |
|
||||
гадание на конечно-элементной гуще Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,611
|
Offtop: получить на 100% готовые чертежи мне не представляется возможным. в любом случае что-то для 5-10% стен придётся дорабатывать руками.
т.е. у меня на одной чаше весов - время на доработку "руками", на другой - время для алгоритмизации, параметризации и написания скрипта для решения _непредсказуемых_ задач. по поводу исправлений уже начерченных стен - начало положено, но на данный момент не доработано. а именно - при генерации стенки на отдельном листе в экселе все параметры записываются в таблицу. таблица хранит параметры для всех построенных стен. при необходимости повторного построения этой стенки, можно прямо в таблице изменить какой-то параметр (для одной стенки, или для всех сразу) и сразу получить чертежи этих стенок. п.с. вообще это оофтоп. сори, что засоряю тему |
|||
![]() |
|
||||
Регистрация: 09.12.2008
Сообщений: 4,663
|
Цитата:
вообще полно открытых кадов под которые можно было бы пилить что то свое (qcad не pro, freecad и т.д.) но как автор выразился - ему было интересней запилить полностью свой, и в принципе получилось не так плохо. у меня сейчас критерий достаточности када стал - для нужд cnc плазма. подвинуть-поправить детали, поставить хвостики для луча, и т.д. ничего особо сверхестественного не требуется. автокад2000 какой нибудь справляется прекрасно. Кстати открытая часть qcad имеет поддержку dwg вплоть до последней версии (нет не открытая стоит 30 евро). Последний раз редактировалось ETCartman, 19.11.2013 в 19:50. |
|||
![]() |
|
||||
гадание на конечно-элементной гуще Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,611
|
Offtop: Аналогии у Вас странные. Одно дело зайти и жить в чужую квартиру, из которой никогда не выгонят. Другое дело не имея квартиры пойти в лес, срубить много деревьев, построить сруб... Ну вы поняли.. Я занимаюсь парусным спортом, так наш рулевой тоже "такой" - ему делать лодку нравится больше, чем на ней гоняться.
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
ETCartman
В триале qcad`а есть поддержка dwg (насколько я понял на oda`вском движке) отключающаяся через несколько минут использования, в гите либрекада тоже есть ветка с началом поддержки dwg полностью своей реализации. Но от одной поддержки толку не много, если программа не перенимает полностью "идеологию" автокада - т.е. теже примитивы, теже стили, теже приемы работы... Ни qcad ни в librecad (да и вообще по сути они однояйцевые близнецы) этого нет, такчто dwg там имхо ненужен... Недавно вышла новая community версия qcad - программа существенно ускорилась, появился инспектор объектов. Но всеравно скорость обработки больших чертежей в qcad и особенно в librecad пока оставляет желать лучшего. >>но как автор выразился - ему было интересней запилить полностью свой, и в принципе получилось не так плохо. Получилось неплохо (сам себя не похвалишь ![]() |
|||
![]() |
|
||||
Регистрация: 09.12.2008
Сообщений: 4,663
|
Цитата:
А открытое ПО коль вы его освоите и подгоните под себя, таких проблем вам не создаст. Если вы инженер и программное обеспечение инструмент вашей деятельности, ваш инструмент должен быть ваш. И кстати я бы не сказал что все открытое ПО подобно срубу в деревне. Полно открытых программ гораздо лучше платных даже на сегодняшний день. И полно таких (типа qcad) которые просто требуют слегка переучиться и вполне ничего для многих приложений. Последний раз редактировалось ETCartman, 20.11.2013 в 14:42. |
|||
![]() |
|
||||
Регистрация: 09.12.2008
Сообщений: 4,663
|
Offtop: где взять 3.7 ? На сегодня 5 версия - бесплатная, но лицензия выдается на год
__________________
мой блог по некоторым вопросам |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
swell{d}
>> Другое дело не имея квартиры пойти в лес, срубить много деревьев, построить сруб... Ну вы поняли.. Думаете купить крутые хоромы и обставить всё мебелью из горбыля на гвоздях сильно лучше? То что на видео всё происходит в нанокаде - не заслуга нанокада, он ничем не лучше других клонов, а темболее первоисточника. Там вполне мог бы быть и q и libre, и для таких несложных чертежей это было бы экономически более выгодно (не в обиду, на мой неопытный взгляд...), просто вам было так удобнее. Мне нужны свои кастомные примитивы, в свое время я не нашел простого способа сделать их в автокаде - для меня проще такое решение такчто вопрос >>но почему было не взять ... в качестве платформы для меня не стоял, поддержу ETCartman, делать чтото серъезное под закрытое ПО имеет смысл только надеясь на существенную прибыль - я на это не расчитываю - хобби. Можно было подключиться в разработку qcad и librecad... но свободная версия qcad существует только для галочки (редко обновляется, непонятно как комитить и в каком ключе идет разработка...), librecad на тот момент вообще не существовало. В итоге по положению на сейчас zcad во многих параметрах переплюнет и q и libre |
|||
![]() |
|
||||
Регистрация: 09.12.2008
Сообщений: 4,663
|
я согласен что любители открытого ПО напоминают иногд секту. Сектантское состоит в отрицании коммерческого ПО полностью. Но я допустим коммерческое не отрицаю, а открытое очень помогает в тех случях когд покупк чего либо не оправдана экономически а воспользовться той или иной опцией нужно. в частности все программы для 2д черчения для меня - анахронизм, но иногд нужно что то простое набросать
__________________
мой блог по некоторым вопросам |
|||
![]() |
|
||||
Регистрация: 28.10.2007
Сообщений: 531
|
ETCartman, Offtop: Об этом и речь. Каждый подбирает себе инструмент по возможностям и потребностям. И открытое ПО не всегда перевешивает на чаше весов, имхо. А для хобби конечно открытое ПО более очевидный и правильный выбор, наверное, хотя опять же зависит от человека, его возможностей и предложений коммерческого софта.
|
|||
![]() |
|
||||
Регистрация: 09.12.2008
Сообщений: 4,663
|
Цитата:
2D черчение нужно для небольшой коррекции файлов для CNC - очень редко. Полно открытых и бесплатных чертилок годятся для этого. A9CAD (кстати dwg до 2005) чистый freeware в том числе commercial, qcad, еще ряд программок. Но покупать даже Autocad LT или даже в 3 раза более дешевые intellicad аналоги для этого - кажется несообразно дорого. Ну 30 евро за QCAD Pro - копейки, раз побухать а 400 уже много. Для расчетов например. Иногда нужно посчитать тепловую задачу. Покупать "дешевую" программу за 20 тыс - за раз - много. И ее тоже надо будет учить и тестировать как и открытую. Есть для этого CalculiX - по многим функциям даже превосходящий коммерческие программы. Я его потестю для себя и буду пользовать. Пока времени нет взглянуть лучше на ZCAD но я обязательно сделаю это. Мне кажется лучше всего написать подробный мануал для тех кто хочет включиться в разработку. Но это может занять времени довольно много. Хотя плюс что и Lazarus вполне простая система тоже. Я пытаюсь тоже делать что то открытое для хобби и времени тоже немного. Но хотелось бы взглянуть на код ZCADа и может быть что то позаимствовать оттуда для себя
__________________
мой блог по некоторым вопросам |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
ETCartman
Мануал написать можно (ну или хорошо прокоментировать исходники, что имхо лучше), но только при заинтересованности в нем. просто так, в ящик - неохота. >>Но хотелось бы взглянуть на код ZCADа и может быть что то позаимствовать оттуда для себя ZCAD в принципе получился довольно сложен и по началу будет трудно врубиться что-где смотреть, также всё написано в одиночку - грязно и мало коментариев. Такчто если соберешся и с лету не разберешся - стукни в аську или в мыло. Я прекрасно понимаю что эти косяки нужно исправлять, но всё сразу не получится, по мере интереса. |
|||
![]() |
|
||||
Регистрация: 09.12.2008
Сообщений: 4,663
|
это обязательная когда вы работаете программистом и пишете за почасовую оплату. комментирование иногда отнимает больше времени чем написание кода на самом деле. когда вы пишете для хобби то это просто усложняет работу. по хорошему должно быть руководство разработчика которое описывает общую работу программы (такой достаточно сложной как ZCAD), отдельные ее функциональные части и так далее. Вообще для открытого софта это важная веха - получить устойчивый и распределенный коллектив разработчиков. при таком раскладе проект не заглохнет в случае если у автора пропадет интерес.
|
|||
![]() |
|
||||
Конструктор, инженер-механик на пенсии Регистрация: 03.10.2003
Новосибирск
Сообщений: 6,954
|
Цитата:
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
bahil
>>Комменты в исходнике обязательны. Не важно "для себя" или "не для себя". не спорю. но по мановению палки коменты в ~100к строк исходников не появятся. hexD >>ZCad работает "на" SQLite? нет. работает сам по себе. в зависимотях тоько OpenGL Последний раз редактировалось zamtmn, 24.11.2013 в 04:04. |
|||
![]() |
|
||||
Негропроект, инженегр-конструктор Регистрация: 16.02.2008
Черкассы
Сообщений: 904
|
Заглянул в модули рендера - увидел glVertex, glScale
![]() Сейчас когда все (даже Intel) железо поддерживает OpenGL 3.3 (шейдеры и вершинные буфера) основывать рендер на столь устаревших и непродуктивных методам очень недальновидно ![]() |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
>>увидел glVertex, glScale
Ниче это не ![]() |
|||
![]() |
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,999
|
ХЗ, по мне так шибко тяжеловато разбираться в твоих исходниках.
Если бы хотя бы по более было бы задокументированно, то еще ничего. Ну или хотя бы примитивов было по больше....
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
DEM
Просто так разбираться конечно тяжело. Но если есть желание чтото приделать - то я документирую нужные места, возможно пишу скелет на который ты потом наращиваешь мясо... >>Ну или хотя бы примитивов было по больше.... недавно появились размерные примитивы - повернутый и выровненный, доделываю радиальный и диаметральный. Чего конкретно не хватает? |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
3dфейс - есть и это имхо очень простой примитив, не сложнее линии
сплайн появился но только по управляющим точкам, с контрольными я работать не умею(( - там очень хитрая математика всплывает. В автокаде насколько я понял и контрольные точки и направления начала и конца - это надстройка над управляющими точками. Во всяком случае созданый в автокаде по контрольным точкам и направлению сплайн будет верно отображаться в зкаде. По сути у меня для сплайнов сделана полурабочая заглушка - показываются, редактируются но какието серъезные действия с ними упираются в математику, требуется либо реализовывать эту математику (мне не по силам) либо прилаживать чтото типа OpenNURBS. Лично мне сплайны не интересны и в зкаде они появились для обкатки типов линий на криволинейных объектах, как самый сложный случай этих криволинейных объектов Последний раз редактировалось zamtmn, 26.11.2013 в 13:08. |
|||
![]() |
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,999
|
Мне нужен был многоточечный а не простой....
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
ЕМНИП в 3дфейсе 3 или 4 вершины, если больше это уже не 3дфейс а чтото другое.
Тебе нужен был тесселятор, в зкаде он недавно появился в виде тесселятора TTF шрифтов на основе GLU, могу оформить его отдельным классом - умеет тесселировать любые полигоны с дырками |
|||
![]() |
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,999
|
НУ по всей видимости так....
Пока ничего добавлять не надо, я сейчас под автокадом работаю... Другое дело что было бы свободное время, можно было бы попробовать сделать универсальную прогу для создания расчетных схем и просмотра результатов...
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
>>Другое дело что было бы свободное время, можно было бы попробовать сделать универсальную прогу для создания расчетных схем и просмотра результатов...
Мое свободное время уходит на ковыряние в "движке" зкада, такчто могу только помогать в этом нелегком деле)) >>Пока ничего добавлять не надо, я сейчас под автокадом работаю... Я не тороплюсь чтото добавить, по большому счету меня всё устраивает как есть. Но прекрасно понимаю что делая для себя в итоге хорошего будет мало - с себя взятки гладки - правильность и красота приносится в жерту скорости и простоте((. Например сплошь и рядом в в зкаде одни и теже вещи делаются разными способами - сейчас я думаю так лучше, год назад думал по другому, а 2 года назад вообще не думал)) Нужно все перерабатывать-стандартизовывать и описывать. Пожалуй попробую тут спросить совета: Одна из частей зкада менеджер команд, самый простой способ расширения возможностей программы - написание новой команды и регистрация их в менеджере, тогда она становится доступной для пользователя из интерфейса. В простейшем случае (без интерактивности) команда это просто функция которой передается выполнение в момент ввода ее имени пользователем в комстроку или нажатия соответствующей кнопки интерфейса. Регистрация такой команды происходит с помощью процедуры: Код:
name-имя команды SA,DA-соответственно атрибуты разрешения и запрещения выполнения команды например команда SelectAll - выбор всех примитивов в чертеже регистрируется так: Код:
Пока для атрибутов разрешения\запрещения определена только константа Код:
Это все для минимизации внутренних проверок внутри команд, какие еще ситуации тут стоит предусмотреть? Также думаю при регистрации надо добавить атрибут "прозрачного выполнения" - например при черчении полилинии вызов команды UNDO не должен отменять команду черчения, только последний сегмент полилинии, а вызов команды LINE должен отменить черчение полилинии и чертить линию. Возможно стоит при регистрации также указать какие действия выполнять по завершению команды, например отменить выбор примитивов или оставить их выбранными для следующей команды, перерисовать чертеж или нет ----- добавлено через ~24 ч. ----- Еще более интересная ситуация с "интерактивными" командами, когда требуется указание координат мышкой. Сейчас это классы со своими обработчиками OnMouseClick, OnKeyPress и т.п. Очень сложно и громоздко, собственно по этому и сделано всего несколько команд черчения. Гораздо удобнее это иметь в виде: Код:
Но с этой GetPoint большая проблема - видимо придется внутри нее крутить свой цикл обработки сообщений помимо Application.Run и неочень понятно как быть если пользователь во время ее выполнения захочет потыкать в другие элементы управления - последовательность выполнения нарушится. Также неясно как в этом случае быть с резиновыми примитивами, которые тянутя за мышкой, если для примера выше еще можно выкрутится Код:
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
GetPoint реализовать получилось, ближайшее время сделаю модуль с несколькими хорошо документироваными командами для интерактивного черчения
----- добавлено через ~11 ч. ----- добавил обещаный модуль http://svn.shamangrad.net/zcad/trunk...ndsexample.pas команда создания выровненного размера, пока без "резиновости" |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Интерфейс "интерактивности" устаканился.
Код:
Get3DPointInteractive - тоже самое, но с "резиновыми" возможностями. при перемещении мышки будет вызываться подпрограмма указанная в параметре InteractiveProc, ей будет переданы координаты мыши, состояние левой кнопки и PInteractiveData который может указывать на любые пользовательские данные, например на примитив который надо тянуть за мышкой. InteractiveProc должна быть объявлена так: Код:
например если в Get3DPointInteractive передать такую процедуру Код:
По сути это получились теже классы с onMouseMove и onMouseClick, но реализованные в процедурах. Проще "резиновость" имхо не сделать |
|||
![]() |
|
||||
КМД Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 511
![]() |
вот здесь в сорцах есть крутая программка, предел возможностей любителя-одиночки...
http://www.cs.technion.ac.il/~gershon/GuIrit/ |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Pum-purum
Пишу в Lazarus, это IDE для freepascal. То что нужно и ссылки где взять - перечислены в первом посте. Помочь можно, даже нужно - написанием чего либо, тестиванием или просто высказав пожеланья-замечания hexD Да, по видео - чтото серъезное. Но сырцы я ненашел, и не совсем в тему - 3D моделирования я не касаюсь Последний раз редактировалось zamtmn, 30.11.2013 в 11:55. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,537
|
|
|||
![]() |
|
||||
КМД Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 511
![]() |
студенты и серъезный движок вещи несовместимые ) я.т.д., там профессор шибко вумный, и имхо это его детище...но ктож его знает...особенно впечатляют возможности различных интерактивных(гуй) трансформаций, поковыряв гуй поглубже не стану называть его фантиком, тоже чья то немалая работа...жаль что на лысом С,(а не на асме ))) ), но как грится для случая энтузиазма - то что доктор прописал...
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
>>Я имел ввиду вставку блоков из внешних файлов с помощью диалогового окна или хотя бы через ком. строку
Это можно, даже можно сказать тоже есть - в пустой чертеж теже ОПСные извещатели вставляются из внешних файлов. Вот предпросмотр вставляемых блоков пока хз с какой стороны подходить |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
переделал "примерную" команду создания выровненного размера - добавил "резиновость"
http://svn.shamangrad.net/zcad/trunk...ndsexample.pas Сейчас надо аналогичную Get3DPoint процедуру для выбора примитивов |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
825 ревизия
+черчение выровненных и повернутых размеров +комбобокс текущего размерного стиля +черчение дуг +опции для черчения окружностей (не связанные с выбором примитивов) зы. Приму помощь в виде написания окон редактирования стилей текста и стилей размеров, там ничего сложного - чистое формошлепство. Если кто хочет освоить Lazarus - самое то ![]() |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Добавил возможность "декорирования" параметров в инспекторе, Т.е. теперь при клике на строчке слоя открывается не вложенное поддерево с параметрами этого слоя, а комбобокс с определенными в чертеже слоями. Но это уже не автоматическая генерация содержимого инспектора и требует дополнительных усилий. Осталось решить вопрос по привязке к параметрам инспектора отдельных окон редактирования этих параметров и получится конфетка а не инспектор))
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Смех смехом, а инспектор штука нужная - благодаря ему можно забивать на бесконечное написание гуя. Собственно програмистов делфи\лазаря и не любят за это - обычно у них программы начинаются с формошлепства и весь код размазан по куче обработчиков onЧетоТам.
В краце как работает: при старте зкада парсится файл rtl\system.pas - там лежат все описания типов которые в дальнейшем доступны в инспекторе объектов. Описания на паскале и просто выдраны из исходников. Сначала я делал это руками, но потом написал небольшую утилитку - utils\typeexporter.exe, она проверяет все файлы исходников зкада отмеченные в utils\filelist.txt и экспортирует помеченные описания типов в rtl\system.pas. т.е. я например определяю какуюто структуру данных в программе: Код:
Код:
в описании доступны некоторые модификаторы для инспектора, они оформляются в виде коментариев в коде: (*'какоето имя'*) - более понятное пользователю имя параметра, без него параметр называется также как в программе (*oi_readonly*) - запрет редактирования параметра пользователем в инспекторе (*hidden_in_objinsp*) - не отображать параметр в инспекторе Кто считает что в зкадном инспекторе отображается много лишнего - это я просто забыл/лень поставить (*hidden_in_objinsp*) в соответствующем месте Offtop: Товарищи офтоперы, отныне флуд и офтопик в теме разрешается только в обмен на чтото полезное, т.е. хочешь пофлудить - сначала (ну или потом) ченить закомить или подкинь идейку)). По курсу один офтопик пост на одно чтото полезное ![]() Последний раз редактировалось zamtmn, 16.12.2013 в 09:38. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
>>Осталось решить вопрос по привязке к параметрам инспектора отдельных окон редактирования этих параметров и получится конфетка а не инспектор))
Выхожу из запоя)) - завершил "причесывание" инспектора. Теперь к любым типам данных в инспекторе можно привязать "быстый редактор" в виде кнопочки рядом со значением - он будет вызван при нажатии этой кнопочки (наподобии как до этого было сделано с boolean), и внешнюю процедуру отображения этого значения - т.е. теперь в инспекторе могут быть картинки толщин или типов линий и т.п., а не только сухие цифры/тексты. В предидущей теме было замечание про "неинтуитивность" настройки привязок - стало всё интуитивно, осталось нарисовать форму этого редактора)) |
|||
![]() |
|
||||
Регистрация: 09.12.2008
Сообщений: 4,663
|
__________________
мой блог по некоторым вопросам |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Игровые движки для cad бесполезны - под другое заточены
----- добавлено через ~23 ч. ----- Чето пропало желание чтото серъезное делать, только мелочи(( В порядке хваставства - обзавелся монитором 2560х1440 - пришлось увеличить дефолтные шрифты в системе. Интерфейс зкада на увеличеных шрифтах смотрится нормально, единственное пришлось увеличить высоту строк в испекторе. Такчто в новых версиях на обычных разрешениях инспектор будет выглядеть "жирно", для возвращения прежнего вида нужно уменьшить параметр "Object inspector row height" на вкладке "интерфейс" инспектора, старое значение параметра 21. или поправить файл /rtl/sysvar.pas заменив строку Код:
Код:
|
|||
![]() |
|
||||
Регистрация: 09.12.2008
Сообщений: 4,663
|
__________________
мой блог по некоторым вопросам |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
ETCartman
Спасибо за ссылку. В сети встречается довольно много похожих программ как серъезных, так и совсем простых, большинство из них я уже смотрел как устроены. К сожалению ничего интересного подчерпнуть до сих пор неполучилось - разве что как образцы оформления кода (но и тут у меня свои тараканы - нелюбовь к дизайнеру, классам, пропертям...) |
|||
![]() |
|
||||
Регистрация: 09.12.2008
Сообщений: 4,663
|
там может быть можно вытащить экспорт модели в IGES
вообще это узкоспециализированная программа для расчета корпусов судов (геометрия, гидростатика, сопротивление). В принципе простая конечно - все пляшет от параметрической модели.
__________________
мой блог по некоторым вопросам |
|||
![]() |
|
||||
Регистрация: 09.12.2008
Сообщений: 4,663
|
ну это как бы уже настоящий cad формат. хотя в чертильном смысле он мало чего значит - скорее обмен геометрией. для расчетов например
__________________
мой блог по некоторым вопросам |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
В смысле настоящий 3d формат? дело не столько в формате, сколько в примитивах возможных в данном формате и спосабах работы с ними. Основной у меня пока dxf - соответственнно всё и пляшет от него - примитивы, стили и т.д. Добавлять другой формат - получится не полноценная реализация, а некоторое "пересечение" добавляемого формата и dxf.
Т.е. сделать экспорт существующих в зкаде примитивов и стилей кудалибо большого труда не составит (возможно с потерями), а полноценная реализация довольно проблематична. Также написание полноценных 3д примитивов - в одиночку для меня невыполнимая задача. Огромную роль играет мотивация - интересно мне чтото - оно появляется легко и непринужденно... пытаюсь сделать "план развития" - не особо интересные вещи так и остаются в txt файле)) ИМХО всякие фичи должны делаться заинтересованными людьми, тут даже деньги не помогут как личная заинтересованность. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Появился новый режим выделения - кнопка SN над инспектором объектов. В этом режиме при выделении устройства\кабеля\трассы автоматически "довыделяются" устройства с такимже именем. Удобно при внесении изменений в уже выполненную связку схема структурная-схема подключений-план расположения.
|
|||
![]() |
|
||||
Регистрация: 09.12.2008
Сообщений: 4,663
|
А вот между прочим попробовал qcad и пришел к крамольному выводу что хотя они и не пытались создать прямой клон типа A9CAD
тем не менее пользоваться им на порядок удобней, а все несоответствия осваиваются очень быстро. Как плюс - проф версия (со всеми версиями dwg и CNC) стоит смешные копейки (в бесплатной как и у вас - dxf2000). Конечно это сделано для простых чертежей, но по моему упрощения там вполне разумны. в конечном итоге самые великие инженерные вещи созданы в доавтокадовскую эпоху, на кульмане, а уж возможности кульмана данная программа перекрывает
__________________
мой блог по некоторым вопросам |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Последняя версия qcad порадовала - наконецто появился инспектор объектов.
Но имхо всеравно не очень юзабельна - нет полярной трассировки, типов линий, размерных стилей - это то что сразу бросается в глаза... а главное тормозит(( Возможности кульмана конечно давно перекрыты, но для быстрого интуитивно понятного черчения - еще далеко |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Давно не копал зкад - копил энтузиазм))
Накопил и решил поковыряться в сторону "мультирендерности", т.е организовать возможность выбора различных API для графической системы. Почемуто всегда считал что автокад при отключеном ускорении использует для рисования GDI+, в инете куча хвалебных статей по этому интерфейсу. Попробовал и обломался - скорость GDI+ на порядок меньше GDI при выводе линий. Или я чтото делаю нетак, или за старость интерфейса микрософт лишила его хардварной акселерации... Cделал небольшой тестик http://sourceforge.net/projects/zcad...t.zip/download - простое рисование случайных линий аредствами GDI, GDI+ и AGG. Буду благодарен если обладатели WindowsXP запостят сюда его результаты (циферки под первой и второй панелью, AGG не интересует, с ним всё ясно). Также интересуют результаты от обладателей интегрированных видеокарт и ATI\AMD |
|||
![]() |
|
||||
Цитата:
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,843
|
Цитата:
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
гадание на конечно-элементной гуще Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,611
|
Цитата:
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Спасибо! похоже XP уже не найтешь на рабочих компах))
Для полноты картины мои результаты на Win7x64: Цитата:
Цитата:
|
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,537
|
zamtmn, займитесь лучше базовым функционалом... Ну и вот еще, команда import... pdf файлы, серьезно? После импортирования dxf2000 в zcad (кстати неправильному) команда arc приводит к фаталу при выборе первой точки...
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
>>zamtmn, займитесь лучше базовым функционалом...
Это самый что нинаесть базовый функционал, хренова что я это дело не предусмотрел когдато давным давно(( В двух словах как устроено сейчас и как планирую: Сейчас примитивы умеют всё: и рисрваться и выделяться и привязки и трассировки, классы примитивов изза этого очень громоздки и тяжелы для понимания, а нужно еще добавлять расчленение, да мало ли что. Планирую сделать некую прослойку между примитивом и графической системой. типа как в автокаде примитив объясняет движку как себя рисовать (worddraw или как там его в arx). Вроде как вырисовывается 3 уровня - первый - база DXF примитивов c методом "worddraw" в котором они обясняют движку как выглядят - второй "элементарные" примитивы (линии, дуги, фейсы еще чегонибудь) полученые движком из DXF примитивов. На этом уровне работают привязки, трассировки. По информации из этого уровня любой DXF примитив можно расчленить на состовляющие, не реализуя метод explode в классе DXF - третий - переработка элементарных примитивов с второго уровня в примитивы понятные системе отображения в случае OpenGL - 3d точки, в случае GDI - 2d точки. На этом уровне работает выделение примитивов мышкой. >>Ну и вот еще, команда import... pdf файлы, серьезно? Поддержка pdf заявлена библиотекой которую я планировал использовать для импорта (fpvectorial)... но либа не развивается, естественно поддержки pdf пока там нет(( импорт вообще мной не проработан, на данный момент возможно вообще не работает, я им неразу не пользовался |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,843
|
Про GDI - вспомнил вдруг, есть-же еще Aforge, так их AForge.Imaging.Drawing.Line(...) так-же рисует в Bitmap, но т.к. там требует явного предварительного открытия BitmapData - он по скорости получается чуть быстрее, но главное его можно паралелить на любое количество потоков (как впрочем если и самому написать Брезенхема и писать напрямую в память). А с учетом "реальных" машин - считай скорость вырастет в 2-4 раза.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Aforge - не думаю что это можно просто зацепить к лазарю и использовать в линуксе, ктомуже если это чисто софтовый растеризатор - результаты будут на уровне AGG (он тоже софтовый, растеризует в битмап в памяти) из теста.
>>как впрочем если и самому написать Брезенхема и писать напрямую в память не, это я делать точно не планирую)) ограничусь набором классов для легкого добавления в зкад любой "конечной рисовалки" и реализую эти рисовалки для GDI, opengl, возможно dx - если от него будет прок по сравнению с opengl на "слабых" компах |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,843
|
Не он в один поток по скорости примерно как GDI - в несколько соответственно * на кол-во ядер. Все остальное - тебе видней, я с лазарем не знаком - но формально Aforge это обычный .Net dll.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Выложил бинарники - 948 ревизия с пробой GDI рендера. снова нужен тест на XP (с классической темой оформления) на предмет наличия мерцания в области отрисовки чертежа - на W7 с классической темой вроде я поборол мерцание, но есть подозрения что в XP они остались(( Перед созданием\загрузкой чертежа нужно в инспекторе на вкладке Рендер в параметре Render backend Выбрать "GDI" иначе будет работать opengl вариант отрисовки
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
>>Часть объектов не отображается, сетка и ручки тоже...
То что не отображается в этот момент пытается отрисовать себя GLными методами на несозданый GLный контекст >>Теперь все заново программировать? Не заново конечно, но переделывать нужно очень много, своеобразный глобальный рефакторинг. Особенно тошно становится при взгляде на текстовые примитивы - этож надобыло когдато такой хрени накодить)) Я в архитектуре CAD программ понимаю не много, соответственно развитие зкада это постоянные переделки. Но опенглный рендер будет работать нормально на всем этапе "переделки" и на выходе будет более универсальный и простой код примитивов |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Зачаток печати в зкаде был и даже работал, правда только в режиме "fit to paper", т.к. функцию подрезки примитивов по рамке печатаемой области выполняли края листа бумаги)), сейчас печать не работает. С "рендерным бакендом" GDI в виндовс печать получится почти автоматически, достаточно (почти достаточно
![]() >>Я так понимаю вы хотите сделать печать из zcad? Я давно думал над "мультирендером", но основная подача всетаки некий абстрактный апи для рендера (OpenGL очень специфичен) и упрощение примитивов - вынос "сложных" и вобщемно ненужных чертежному примитиву вещей в отдельный "слой" - набор "низкоуровневыых" графических примитивов. Мне нужны дуговые сегменты в полилиниях, добавлять их сейчас в примитив - потом замаешся поддерживать (я уже добавил так TTF в текстовые примитивы ![]() |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Возник вопрос по анонимным блокам. Могу я их проигнорировать при чтении dxf?
Насколько я понимаю они создаются для примитивов типа размеры, штриховки и т.п. Т.е. содержат в себе внешний вид "составных" автокадовских примитивов. Программа читающая dxf может отобразить размеры и штриховки используя соответствующие анонимные блоки, не заморачиваясь генерацией примитивов на остове стилей. В этом случае я могу их не читать - всеравно поддерживаемые примитивы в зкаде перегенерируются, а не поддерживаемые игнорируются. Существуют какиенибудь другие сценарии использования анонимных блоков? Update: *Aномер это от чего анонимный блок? По состоянию на сейчас зкад "деанонимизирует" анонимные блоки, после сохранения появляется куча простых блоков вида *Dномер, *Aномер и т.п. и при дальнейшей обработке чертежа в автокаде возможны конфликты имен Последний раз редактировалось zamtmn, 27.09.2014 в 16:31. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
После вставки вроде A$номер и неанонимный, анонимные начинаются со звездочки
----- добавлено через ~1 ч. ----- провел небольшой эксперимент: *Dномер - размеры, можно игнорировать, на них есть ссылка только в размерном примитиве, уна у меня не обрабатывается *Aномер - штриховки, возможно что то еще, вроде можно игнорировать, штриховки пока неподдерживаются *Uномер - непонятно что, если юзать всякие экзотические стрелки на концах размерных примитивах, то в блоках этих стрелок появляются ссылки на анонимные блоки такого вида |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Выложил версию 1045. В ней еще доработал инспектор объектов, теперь он рисуется в соответствии с системными настройками - всякие подсветки при наведении мышки и прочие плюшки.
update: Проверил работу на win xp, 7, 8. висты у меня нет, поэтому буду благодарен если кто выложит скриншот с висты Последний раз редактировалось zamtmn, 03.11.2014 в 17:00. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Инспектор вообще получился самой кровопьющей запчастью, незнаю что на меня нашло - обычно на внешний вид глубоко пофиг))
>>а еще атрибуты в блока и спецсимволы в тексте Спецсимволы в тексте основные есть, что добавить? Атрибуты тоже есть, но своеобразные)). Любому примитиву можно присвоить набор типизированных "переменных", а для устройств можно прилепить текст\мтекст в "динамическую" часть и организовать отображение этих "переменных" в любой комбинации на чертеже. Совместимо с автокадом только в одну сторону (только отобразить, в автокаде не создать), но ИМХО гораздо мощьнее чем обычные атрибуты. Про размеры пока промолчу, уж больно они в автокаде замарочистые |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,537
|
Я имею ввиду символы заданные как %%число, где число - номер символа в таблице ascii-кодов например %%247 - это "÷", %%169 - "©", если не ошибаюсь...
В размерах хотелось бы видеть хотя бы цвет текста и правильный масштаб, а не по стилю, если размер переопределен. и еще "стрелки", то бишь выноски насчет атрибутов, я имею ввиду автокадовские, хотелось бы все таки, чтоб они отображались кстати я когда-то делал формочки для вставки блока и массива, если надо могу скинуть |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
>>%%число
добавил в тестовом режиме. в автокаде это работает насколько я понял только для текстов, в мтекстах данная последовательность не работает. Спецсимволы у меня поддерживались и до этого в виде \U+число >>насчет атрибутов, я имею ввиду автокадовские, хотелось бы все таки, чтоб они отображались могу сделать только в виде преобразования в текст, примитив пока не планирую добавлять >>кстати я когда-то делал формочки для вставки блока и массива, если надо могу скинуть что за формы? интересно, скинте. Но лучше бы форму редактора размерных стилей)) |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Давайте так - я добавляю формы в zcad (под лиценцией LGPL2, авторство за Вами), делаю увязку с движком (интеграция в интерфейс, получение имен блоков, указание точек на чертеже, создание вставок блоков), Вы доводите формы внутри zcad`а.
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
В первом посте я примерно расписал что нужно чтоб поучавствовать в разработке:
- ставите TortoiseSVN, checkout`ите исходники зкада себе, в дальнейшем update`те последние изменения, прошедшие с момента checkout`а - регаетесь на шаманграде, добавляетесь в разработчиков зкада, с этого момента вы с помошью TortoiseSVN можете commit`ить свои изменения которые вы внесли у себя в репозиторий на шаманграде Для компиляции зкада вам понадобятся свежие lazarus и fpc, желательно девелоперские. Вы какими версиями распологаете? После того как я добавлю ваши формы в зкад - вы открываете zcad.lpi находите их там и дальше делаете что душе угодно, незабывая в моменты когда всё более менее работает комитить проделаное в репозиторий. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,537
|
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
>> до этого был 1.0.12 но тоже ошибки выдавал при компиляции
этот непойдет, слишком много было изменений в лазаре с тех времен >>Поставил себе лазарь 1.1 с fpc2.7.1 x64, но он не работает почему-то... Этот пойдет, я поправлю зкад чтоб он собирался и в вашем 1.1 и в моем 1.3. То что неработает - решаемо, думаю неуказаны какиенибудь пути или еще какаянибудь "мелочь", на что ругается? |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
т.е. lazarus работает, некомпилится зкад))
Дайте точную версию лазаря, (в окне Abount Lazarus, щелкните правой кнопкой мыши появится меню с возможностью вставить всё нужное в бужер обмена), я откачу своего лазаря до вашей версии и утрясу проблемы |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Обновите исходники зкада (при закрытом лазаре, вообще он подхватывает изменения, но малоли) и попробуйте еще раз.
т.к. вы внесли изменения в своюю версию Код:
Последний раз редактировалось zamtmn, 17.11.2014 в 21:42. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Если вы добавили // здесь останавливается при редактировании поста то не меняли, если вписали это в лазаре, потом пытались компилировать или сохранили при выходе - изменения внесены (в вашу копию, не в репозиторий).
В любом случае, страшного ничего нет, на то он и контроль версий, чтоб хоть что откатить хоть до чего. Я просто предупредил про возможность конфликта >>просто скопировал папку на рабочий стол Я кстати только сегодня победил русские буквы в путях, еще не тестировал толком. возможно попрежнему неработает. Старенький лазарь точно будет дуреть от кирилицы в путях)) |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Регистрация на shamangrad.net есть? сообщите мне тамошний ник
----- добавлено через ~4 ч. ----- Формы я добавил - \cad_source\gui\blockinsertwnd.pas и \cad_source\gui\arrayinsertwnd.pas соответственно, команды показа форм TestInsert1_com и TestInsert2_com в модуле \cad_source\commands\gdbcommandsexample.pas |
|||
![]() |
|
||||
Проектирование разделов ЭО и ЭМ Регистрация: 18.04.2009
Москва
Сообщений: 128
|
|
|||
![]() |
|
||||
Проектирование разделов ЭО и ЭМ Регистрация: 18.04.2009
Москва
Сообщений: 128
|
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Дело не совсем в этом. Проблема была в FPC (свн версий) - там уже долгое время идет переработка внутреннего представления строк, RTL местами к этому был не готов - в некоторых ситуациях некоторые стандартные функции на разных системах (например XP и 7) возвращали результаты в разных кодировках. UTF8ToSys не помогал, помогали другие костыли. Но т.к. это была недоделка RTL, я не правил, ждал улучшений в FPC. Сейчас вроде zcad работает на кирилических путях, но сам Lazarus попрежнему иногда лажает если работать с проектом на не анси путях.
>>чего сложного на конечных функциях работы с файловой системой тебе было вписать UTF8ToSys? Кодировки это отдельная песня, там далеко не всё так просто. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Всех с прошедшим!
Возник такой вопрос - с какой версии в автокаде в стилях размеров появились типы линий для размерной и выносных линий (которые DIMLTYPE, DIMLTEX1 и DIMLTEX2) не могу найти в документации как они сохраняются в DXF в таблице размерных стилей? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,497
|
Может быть, поможет http://autolisp.ru/2009/11/02/dimstyle-create/
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
К сожалению не помогло. Внутри автокада из лиспа и снаружи в dxf многое различается, хотя похожего конечно гораздо больше
Экспериментально выяснил - типы линий размерных стилей сохраняются довольно странно, в виде данных для внешних приложений Цитата:
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Пытаюсь встроить в инспектор объектов возможность работы с примитивами при множественном выборе, раньше такая возможность была только для "переменных" привязаных к примитивам.
Возможно ктонибудь посоветует фичи которых нехватает в обычном автокадовском инспекторе, у меня таких 2: - отсутствие разных "суммарных" сворйств из коробки (спасибо Александру Ривилис за решение в виде GeomProps) - отсутствие быстрой возможности исключать из набора примитивы определенного типа, только "обратная" возможность - оставлять в наборе примитивы определенного типа Постораюсь реализовать интересные предложения |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
В ревизии 1259 в первом приближении инспектор заработал с множественным выбором, пока свойства зарегестрированы только для линий и окружностей. Старый вариант доступен если убрать галку "always use multi select wrapper" в контекстном меню инспектора
Последний раз редактировалось zamtmn, 16.03.2015 в 20:35. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
rev1349 - появилась поддержка luprec, auprec, lunits, aunits, unitmode, insunits, angdir, angbase переменных. Работает в инспекторе и размерных стилях. Традиционно "на половину")) - ввод значений возможен только в "фиксированном" десятичном виде.
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
В связи с появлением настройки точности в интерфейсе всплыл интересный момент - отображение величин одинаковых только в пределах заданной точности, а по факту различных. Например в чертеже установлена точность до второго знака, и имеется 2 отрезка с X координатами начала 1.12 и 1.121 соответственно. Автокад эти координаты в инспекторе покажет как 1.12, брикскад пометит их как различные (что имхо вернее). Я решил эти случаи рассматривать как отдельные и помечаю их знаком "приблизительно равно" как на скрине
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
версия 1386
Приделал создание крэшрепортов и изменил систему логирования. Раньше в лог сыпалось всё подряд - изза чего лог был кашей, восновном из цифер понятных только мне, а запуск зкада с медленного на запись носителя был проблематичным. Теперь появились несколько уровней логирования (подглядел гдето на хабре): Код:
Цитата:
При вылетах теперь генерируется файл %TEMP%\zcadcrashreport.txt содержащий стек вызовов на момент вылета, последние 100 сообщений лога и некоторую информацию типа версии зкада, путей запуска, версии ОС и т.п. Сейчас при нахождении ошибки в зкаде достаточно запустить программу с ключем LM_Trace (самый подробный лог), повторить ошибку и выслать файл %TEMP%\zcadcrashreport.txt мне на zamtmn(собака)yandex.ru. Заранее признателен)) |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
версия 1506
- окончательный вариант GDI рендера чертежа в области отображения. TTF текст теперь рисуется соответствующими GDIшными функциями, а не набором треугольников как в opengl, соответственно работает сглаживание и выглядит посимпатичнее - добавлен еще один вариант рендера - используя стандартный LCL Canvas. Он будет использоваться для получения превьюшек блоков и печати чертежей - существенно снижен расход памяти на текстовые примитивы |
|||
![]() |
|
||||
Регистрация: 09.12.2008
Сообщений: 4,663
|
а где можно скачать бинарники для линукс 64 бит?
PS прошу прощения - скачал и запустил уже.
__________________
мой блог по некоторым вопросам Последний раз редактировалось ETCartman, 10.12.2015 в 05:59. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Бинарники на соусфорже, исходники на шаманграде, точные координаты в первом посте
Единственное - сборки отличные от win32 обновляю очень редко, всеравно последнее время вожусь с потрохами, снаружи этих изменений почти невидно. зы. вышел RC Lazarus1.6 основаный на FPC3.0, теперь zcad можно собрать официальной сборкой лазаря |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Версия 1845.
Наконец то поборол паразитные внутренние зависимости в программе - исходники поделил на 2 части и тотально всё переименовал - графический движек и собственно zcad. Приладил систему автодокументирования (PasDoc) - на выходе красота, осталось только всё задокументировать)) В качестве минимального окружения для компиляции буду поддерживать Lazarus1.6 и FPC3.0. Поддержку более старых версий порезал |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Всем привет! вылезла пара вопросов:
Кто нибудь в курсе как автокад осуществляет пересчет веса линий в толщину в пикселях на эrране? это где нибудь докуменировано? Ползунок AdjustDisplayScale c приложеного скриншота хранится в какой переменной? |
|||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,000
|
Цитата:
|
|||
![]() |
|
||||
Вспомнил, что была давно такая тема, а сейчас вижу, что вполне живая! С чем и поздравляю автора!
Оценить могу только картинки, а они впечатляют ![]() Понимаю, что с суконным рылом, но вдруг пригодится - сейчас выложил в блоге свою пользовательскую фантазию о CAD. ...а вообще - мне кажется, что лучше сразу писать не повторение, а что-то новое. Тогда результаты приятнее.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
kp+
Цитата:
АлексЮстасу Цитата:
Цитата:
|
|||
![]() |
|
||||
software quality engineer Регистрация: 19.09.2009
Харьков, Украина
Сообщений: 451
|
Интересный проект! Не думали перевести исходники его на GitHub?
__________________
energokot.blogspot.com |
|||
![]() |
|
||||
software quality engineer Регистрация: 19.09.2009
Харьков, Украина
Сообщений: 451
|
Ну, отчасти и в этом. SVN я в работе не застал, так что Git стал привычней, к тому же современные проекты в большинстве своем в git и лежат на GitHub, и я каждый день с такими проектами работаю. Год назад в качестве увлечения тестировал LibreCAD, на GitHub и баги репортить удобно.
__________________
energokot.blogspot.com |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Для пользователя разница не велика - вбивать git pull или svn up, а если юзать какойнибудь гуй - то ее вообще нет. ЕМНИП у LibreCAD багтрекер какраз на соусфорже лежит.
По мне git маленько для инопланетян, svn проще и привычней)) |
|||
![]() |
|
||||
software quality engineer Регистрация: 19.09.2009
Харьков, Украина
Сообщений: 451
|
Либрекад давненько на гитхабе обосновались: https://github.com/LibreCAD/LibreCAD
А то что гит может сношать мозг - это да, привыкать к нему приходится долго и тяжко.
__________________
energokot.blogspot.com |
|||
![]() |
|
||||
Цитата:
![]() Есть ли в Вашем CAD аналог XRecord, расширенных данных? Совместимость я понимаю, во-первых, как совместимость данных и, во-вторых, как "совместимость " пользовательскую - когда пользователь может действовать в другом ПО по аналогии. Но принципы работы и пр. могут же быть совсем другими - без копирования пороков. В т.ч. и связанных с форматом данных. Как у Вас сделаны 3D полилинии? По-моему, удачно сделано в MicroStation - в нем есть один универсальный примитив, полилинии (linestring), которые являются двумерными или трехмерными в зависимости от значений Z вершин. При этом их полилинии отображают типы линий, в отличие от автокадовских. Может быть вообще не нужен и примитив "отрезок" - это же тоже частный случай полилиний? Кстати, в MicroStation гораздо лучше чем в Автокаде сделаны стили линий - без непреодолимых штрихов в началах-концах, с отражением форм в оч. коротких линиях, с возможностью привязки форм к вершинам. Еще в MicroStation быстрее чертить из-за того, что вызванные команды активны до вызова другой команды. Т.е. не нужно все время вызывать команду, если, допустим, нужно начертить много линий или вставить подряд много блоков. Эта поддержано окошками каждой из команд с их параметрами, появляющимися при вызове команд. И пример совместимости же - MicroStation работает с dwg, как с родным, имея свой устойчивый и удачный формат dgn. Т.е. пользователи MicroStation просто открывают (или даже в нем создают!) dwg, и прямо в нем работают. Еще - MicroStation гораздо лучше работает с большими объемами данных.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
>>Есть ли в Вашем CAD аналог XRecord, расширенных данных?
Да есть. к любому примитиву можно привязать любые типизированные данные. Эти данные будут сохраняться в dxf вместе с примитивом, отображаться\редактироваться в инспекторе объектов. >>Как у Вас сделаны 3D полилинии? Я хоть с MicroStation не сталкивался, но видимо похоже на нее. Тип линий на 3Д полилинию применяется и отображается (возможно потом уберу) на ней. Насколько я понимаю в автокаде у 3Д полилинии не отображается тип линий потому что у этого примитива нет нормали - что логично. В зкаде сейчас есть отрезки, 2Д и 3Д поли - всё чуток недоделаное: у отрезков нет нормали, у всех поли нет сглаживаний, у 2д нет дуговых сегментов... список недоделок можно продолжать безконечно)) >>Еще в MicroStation быстрее чертить из-за того, что вызванные команды активны до вызова другой команды Это не фундаментальное различие. команду можно написать чтоб она работала "зациклено" или только 1 раз. Тут больше дело в немодальном окне параметров команды. Я для параметров команды использую инспектор объектов - имхо очень удобно. Пользователей это почемуто нервирует)) >>Но принципы работы и пр. могут же быть совсем другими - без копирования пороков. В т.ч. и связанных с форматом данных. Я вот не представляю как микростейшен сохранит в DWG свою 3Д полилинию с формами в узлах - она не отобразится в автокаде. Или отобразится, но превратится в какието другие примитивы |
|||
![]() |
|
||||
Цитата:
Но идея "Вариант подхода к построению CAD или модернизации CAD" Вас, похоже, не вдохновила? Это что за зверь? По-моему, неотображение типов линий у 3D полилиний - явная автокадовская слабость. Мнение, как пользователя... Цитата:
Цитата:
![]()
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
>>Но идея "Вариант подхода к построению CAD или модернизации CAD" Вас, похоже, не вдохновила?
Если я правильно понял, то идея не нова. Я далек от ГИС поэтому мое ИМХО: 1 - Есть примитивы, у этих примитивов есть свойства. Разделять реализацию этих свойств не надо - какая разницы координата это или какойнибудь GUID спрятаный внутри xdata 2 - Также ненадо разделять привычную отрисовку чертежа в области отображения\редактирования и получение табличного\древовидного представления чертежа. Т.е. что процесс черчения, что процесс табличной обработки чертежа это по сути одно и тоже - "чуток" разное представление одних и техже данных. Эти способы должны друг друга дополнять - мне лень крутить огромный чертеж и искать на нем шкаф ШУ1, я включаю табличное\древовидное представление - фильтрую по свойствам... сортирую по свойствам... и вот он искомый шкаф)) Подобный "навигатор" (или "менеджер" хз как лучше назвать) для зкада в планах (надеюсь не несбыточных ![]() >>Это что за зверь? По-моему, неотображение типов линий у 3D полилиний - явная автокадовская слабость. Мнение, как пользователя... Направление вдоль которого работает THICKNESS и перпендикулярно которому отображается тип линии. Нет направления - нет возможности отрисовать тип |
|||
![]() |
|
||||
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
zamtmn
Прошу прощения. Я не понял, что речь шла не об AutoCAD.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Проектировщик электрических сетей Регистрация: 17.01.2014
Пенза
Сообщений: 210
|
Цитата:
Я пробовал работать около 1 млн. примитивов (точно не помню) на ZCADе полет отличный. Машинка пентиум 4, оперативки 1-2гига. Думаю Автокады после 2008, даже не установятся на такую))) |
|||
![]() |
|
||||
Цитата:
![]() Я тоже ГИС не занимаюсь, но какая разница, откуда идеи, если они проверенные и продуктивны для любого черчения? Я не программист. Т.е. оч. смутно и неверно представляю, что, чем, как программно реализуется. Я только пользователь и технолог. Как пользователь и технолог я уверен, что из меню объектов чертить легче, быстрее и качественнее. И как пользователь и технолог вижу большие возможности расширенных данных - с их помощью можно превратить графические элементы в "объекты", а чертеж в "информационную модель". Под "объектами" я понимаю графические элементы с присоединенными к ним расширенными данными, состоящими из полей для нужных характеристик и идентификатора типа объектов. Т.е., допустим, не просто блок с названием "ШУ1", а этот блок с полем данных названия типа объекта "шкаф ШУ1" и с полями для его характеристик. Не просто полилиния какого-то цвета и веса в слое "Трубы", но с присоединенными данными названия типа объекта "труба d100", материала, толщины стенок, назначения, производителя и т.п. Если при создании графических элементов сам CAD всегда и сразу будет присоединять записи расширенных данных с нужными полями, то черчение будет сразу созданием таких "объектов". При этом пользователь может чертить совершенно как обычно, вообще не используя расширенные данные - если не хочет или нет необходимости. А может использовать по полной, но делать ему это будет много легче, чем если бы это были отдельные процессы. И рассогласования, неполнота данных сразу практически исключены. Если сам CAD будет автоматически сохранять описания этих "объектов" во внешнем текстовом файле, и будет автоматически пополнять меню объектов, то это очень облегчит и улучшит управление такими "объектами" и их применение. Вот, например, возможности, которые дает описание "объектов" (я изложил в блоге в "OD/DB...", но там, похоже, слишком много букв...):
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Проектировщик электрических сетей Регистрация: 17.01.2014
Пенза
Сообщений: 210
|
Цитата:
Все это можно попробовать рассчитывать и заставить программу скажем самой получать сечение проводов исходя из нагрузки и автомата защиты, да и автомат защиты она сама подобрать может ![]() Последний раз редактировалось veb86, 19.06.2016 в 23:17. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
DanielDem
Цитата:
АлексЮстасу В составе toolpac была ккомнда "рисовать по образцу". Она случайно не заменит описаное меню объектов? Работает примерно так: тыкаешь в "целевой" примитив, следующими действиями команда рисует копию "целевого" примитива. Т.е. ткнул в полилинию - дальше рисуешь такуюже с такойже толщиной, слоем, типом ... (вот про расширеные данные непомню). Ткнул в вставку блока - дальше вставляешь такиеже вставки... Смысл вроде тотже, громоздкого меню нет)) |
|||
![]() |
|
||||
Разница примерно такая же, как между изображением купюр на экране и электронными деньгами.
Пришлите какой-нибудь чертеж, достаточно представительный набором отображаемых объектов. Я попробую продемонстрировать возможности OD/DB-подхода с помощью своего приложения-прототипа.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Ок. Выручает вас подобное меню и ускоряет. очень хорошо. Мне оно поможет наврятли((
Я сомневаюсь в возможности автоматически катологизировать "ВСЕ" и выдать "ВСЕ" пользователю в виде "меню" которым удобно пользоваться. ИМХО для подобного "меню" возможно только ручное\полуручное создание. В зкаде есть чтото подобное, строится "автоматически" на основе файлов описаний изделий, определений блоков в базе УГО. привожу картинку. На картинке меню бд зкада, выбран некий кабель у которого вариантов исполнений по сечению\жильности в районе сотни - это всё предлагаете тащить в "меню"? Я лучше застрелюсь чем подобным меню буду пользоваться)) Кроме того - начертить это всеголишь полдела. Надо потом еще отредактировать начерченое. Т.е. сегодня начертили "обезличеный" кабель. завтра уточнили мощьность и выбрали этому кабелю сечение\жильность. |
|||
![]() |
|
|||||
Гм... Вы меня не раз и по-разному сейчас озадачили.
Цитата:
![]() Цитата:
И я же не писал, что автоматом можно создать полноценное меню. Наоборот, писал, что необходима возможность редактирования. Цитата:
![]() Цитата:
Озадачивает главным образом то, что у Вас уже реализовано многое (может и вообще все, а, может, и больше), что я только предлагаю. Но что Вы объявляете ненужным. ![]() Что с помощью этого меню бд можно делать? Судя по картинке, выбрав в нем тип объекта, можно просматривать и присваивать значения свойств (у меня - "характеристик") объектов. Свойства==характеристики Вы реализовали средствами XData или XRecord? Или как-то иначе? Из этого меню бд можно чертить, выбрав нужный тип объекта?
__________________
количество моих сообщений не говорит о знании Автокада |
|||||
![]() |
|
||||
Проектировщик электрических сетей Регистрация: 17.01.2014
Пенза
Сообщений: 210
|
Вы меня тоже озадачали вчера пытался понять OD/BD, читал статью в вашем блоге, и не осилил понять что вы предлагаете, может из-за кривого перевод. можете пример программы привести которая по такой схеме работает, или разложить все по полочкам как для чайников?
Я знаю Ревит, там есть возможность создать объект, придать ему форму, вид. наделить его необходимыми атрибутами, потом что то с этими атрибутами делать - OD/BD про это? |
|||
![]() |
|
||||
Проектировщик электрических сетей Регистрация: 17.01.2014
Пенза
Сообщений: 210
|
Ну тогда в ZCADе это есть, просто отсутствует менеджер создания объектов, зкадовский объект будет представлять из себя графическое обозначение его можно нарисовать и положить в спец место, а затем в спец файле прописать атрибуты. Всю последовательность создания такого объекта я не знаю, ни разу не делал))) Все требует времени... создавать не так удобно как в ревите, но возможно при желании, и в спецификации объекты считаться начнут и на планы удобно вставлять, да и кнопку добавить к ZCADу совсем не сложно, надо пару строчек в один текстовый файл добавить. а на создание менеджера объекта, уйдет уйма времени.
|
|||
![]() |
|
||||
Проектировщик электрических сетей Регистрация: 17.01.2014
Пенза
Сообщений: 210
|
По идеи объект в ZCADе на данном этапе больше похож на блок, только умный блок, наверное можно отчасти сравнить с динамическим блоком в автокаде, хранится графическое обозначение в отдельном файле в спец папке, описание объекта в текстовом файле в другой папке. Наверное все это можно поместить в БД, только зачем. Вот есть модуль СПДС у автокада и не только у него. если этого модуля нет в другом каде то фиг вам, а не редактирование. Так и с этой БД будет, зкад с ней работать сможет, а другие Кады кто обучать работе будет?
|
|||
![]() |
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,999
|
ЩА занимаюсь написанием скриптов под FreeCad. Очень даже удобно.
Причем есть возможность создания своих "элементов" программно...
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
![]() |
|
||||
Проектировщик электрических сетей Регистрация: 17.01.2014
Пенза
Сообщений: 210
|
Я пробовал в FreeCad нарисовать 100 тыщ отрезков, freecad умирает сразу. Я думаю отрезок это самая простая фигура. Может я что то не так делал. Применительно к проектированию он плохо подходит, он для другого
|
|||
![]() |
|
||||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
АлексЮстасу
Цитата:
Цитата:
Цитата:
Цитата:
Я не пишу под автокад, xdata\xrecord у меня просто нет. Есть чтото похожее на них. В каждом конкретном случае я советуюсь с своей левой пяткой как реализовать конкретное свойство - засунуть его непосредственно в примитив, или засунуть его в аналог xdata примитива. Поэтому если я буду добавлять например трубы в программу - получится новый примитив "труба" а не полилиния с набором параметров. Цитата:
|
|||||
![]() |
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,999
|
Цитата:
Преобразование МКЭ геометрии в укрупненные блоки....
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
![]() |
|
||||
КМД Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 511
![]() |
Цитата:
![]() |
|||
![]() |
|
||||
Цитата:
Цитата:
Цитата:
А что у Вас получается тогда в результате? CAD, т.е. инструмент универсальный, для всех или средство для тематического моделирования?
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 22.06.2016 в 03:09. |
||||
![]() |
|
||||
Проектировщик электрических сетей Регистрация: 17.01.2014
Пенза
Сообщений: 210
|
извините что лезу в Ваш разговор
Цитата:
![]() Цитата:
Цитата:
![]() |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
АлексЮстасу
Цитата:
|
|||
![]() |
|
||||
Разве не достаточно определить полилинии через расширенные данные как "труба", "кабель" и т.п.? Определить названием типа объекта в поле в расширенных данных "название объекта", где записано "труба", "кабель" и пр. И для трубы в расширенных данных свой набор полей для характеристик, а для кабеля - свой. Что может быть проще и универсальнее?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Проектировщик электрических сетей Регистрация: 17.01.2014
Пенза
Сообщений: 210
|
Такое сделать можно, и нагрузить обычную полилинию другой информацией. Но, я так думаю это скажется на размере сохранения файла(лишняя информация будет тоже сохранятся, там где она не нужна), тем более при программировать станет сложнее. Если сейчас ты при программировании выстраиваешь цепочки между электрическими приборами, где связующим является кабель (кабелей на чертеже в любом случае на порядок меньше чем обычных полилиний), то с введением этого универсализма произойдут дополнительные не нужные проверки. Я понимаю что вы хотите получить, я в основном вообще черчу отрезками, а не полилиниями (привычка). И в будущем можно было бы сделать программную конвертацию (отрезок -> кабель) и (полилиния -> кабель) ну и наверное обратная конвертация. Имея возможность конвертировать на лету, необходимость нагружать полилинию отпадет
|
|||
![]() |
|
||||
Цитата:
Что лишнего и "нагружающего" может быть в информации о том, какой объект отображен, и какие у него характеристики? Я-то думаю, что это такая же основная информация, как и геометрия. Кроме того, при появлении у графики определений объектов появляются новые полезные возможности - поиска по названиям объектов, восстановления графических свойств, если что-то случайно или специально перекрашивали, меняли слои и пр. И ряд других. Цитата:
Цитата:
![]()
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Проектировщик электрических сетей Регистрация: 17.01.2014
Пенза
Сообщений: 210
|
Цитата:
![]() Цитата:
![]() |
|||
![]() |
|
||||
В принципе, есть, минимум, два варианта:
1) участок до разветвления дать одной полилинией, к которой привязать столько соответствующих записей расширенных данных, сколько она отображает "кабелей", 2) участок до разветвления дублировать графически столькими полилиниями кабелей, сколько их есть. Я сторонник первого варианта. Ничто не мешает к одному графическому элементу привязывать несколько записей расширенных данных. В данном контексте - определять элементы как типы объектов. Т.е. как кабели, стены и пр. В том числе одну линию можно таким способом определить не только как несколько однородных объектов, но и как разнородные объекты. Допустим, в каких-то случаях те же кабели и каналы для них можно отобразить одной линией, определив ее и как кабели, и как канал. И т.п. Цитата:
Цитата:
Если же встроить в сам CAD процесс определения элементов, сделать неразрывным графику и семантику, то не нужно отдельного процесса определения - выбрал черчение круга с обычной кнопки/команды CIRCLE, в меню появится объект "окружность_N", изменил это название на "бочка", и черти круги==бочки пока мышь не сдохнет. В другом файле подгрузил этот файл описания объектов, раздал сотрудникам, субподрядчикам и пр. этот файл описания - и бочки чертятся у всех одним примитивом, в одном слое, цвете и т.п.
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 24.06.2016 в 03:35. |
||||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,569
|
Цитата:
![]() А вообще на работе последние лет 5 так и работаем, базовая линия стен имеет некоторое описание (армирование, выпуска, диаметр труб) и по этим линиям и описаниям создается спецификации. Все в базовом автокаде. Я внимательно слежу за дискуссией, но последнее время перестал понимать суть... |
|||
![]() |
|
||||
Цитата:
Одно из полей во всех таких записях можно специально отвести под идентификаторы типов объектов. Где будет записано название типов объектов - "кабель", "стена", "бочка" или т.п. Т.е., если в CAD сразу соединить графические элементы с их описательными данными, то чертеж из модели графической превращается в модель "информационную". Причем, без особых дополнительных усилий пользователя.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Проектировщик электрических сетей Регистрация: 17.01.2014
Пенза
Сообщений: 210
|
Цитата:
![]() ![]() Цитата:
Но мне кажется что АлексЮстасу хочет, что бы в свойствах любого объекта можно было добавлять свойства, типа кнопку нажал добавилось поля, присвоил имя полю, дал значение и потом этот объект копируешь вместе со свойствами. Потом фильтр запустил поиск по свойствам и нашел что нужно. Это конечно было бы удобно, только для поиска, создания спецификаций, но все что так добавить не будет взаимодействовать с другими объектами, взаимодействие надо описывать от источника до потребителя - серьезный расчет не возможно поместить в таблицу (пример Эксел 2007 циклов нет, в новых не знаю), потому что много циклов, промежуточных величин, анализа. Обязательно попозже прочитаю статью. |
|||
![]() |
|
|||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
АлексЮстасу
Цитата:
Причем привязывать не просто текстовые значения а типизированые данные: целые, вещественные, ссылки, и главное перечислимые типы Цитата:
Boxa Цитата:
Цитата:
|
||||
![]() |
|
|||||
Цитата:
И не оч. понимаю, а каким элементам чертежа не нужно определять, что они отображают? Цитата:
Цитата:
Или Вы как-то иначе определяете, что вот эта полилиния - стена, а эта - кабель? Как вообще без этого? Как это - все равно? В каких случаях это может быть все равно - кабель начерчен или стена? Цитата:
У меня суть такая - пытаюсь поделиться идеей с автором CAD, как можно было бы построить или модернизировать CAD за счет черчения сразу и всегда "объектами", а не графическими элементами. Под "объектами" я понимаю здесь графические элементы, идентифицированные с помощью расширенных данных как типы объектов (кабель, стена, бочка и т.п.), и с возможностью определять в расширенных данных значения их характеристик (толщина стенок, материал, производитель и пр.). Уже вроде бы установили, что автор-zamtmn сам давно использует подобный подход, но ограниченно. А так - в основном пытаемся продираться сквозь различия в терминологии, в опыте, в оценках, в задачах и т.п.
__________________
количество моих сообщений не говорит о знании Автокада |
|||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
АлексЮстасу
Цитата:
Цитата:
ИМХО то что Вы описываете в статьях имеет смысл в виде "меню стилей" или чертежных стандартов. "Расширенные" данные в него тянуть не надо, т.к. сами по себе эти данные смысла никакого не имеют - нужна программа их обрабатывающая. Логично в эту программу запихнуть и функционал манипуляции данными. Судя по картинкам в статьях - функционал отображения "данных" в окне свойств у вас есть, не "глобализируйте\универсализируйте", решайте свои конкретные задачи |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 10,745
|
Давно пытаюсь подвести Александра к этой мысли - что без обработки данных это все полузаготовка. Т.е., как минимум, должно еще что-то вроде открытого API для упрощенного взаимодействия с массивом данных, занесенных в расширенные данные примитивов. А когда пойдет разговор об обработке данных - то неизбежно всплывет вопрос - зачем хранить все данные в расширенных данных примитивов, когда для групповой обработки их все равно придется извлекать в какую то программную структуру/БД. Так как каждый раз обращаться к примитиву и читать расширенные данные - при большем количество элементов станет слишком накладно.
|
|||
![]() |
|
||||
Цитата:
Во-вторых, если я правильно понял (про компиляцию), созданием примитивов-объектов и их поведением управляет программист, а не пользователь. Соответственно - не гибко, долго, неудобно для пользователей, непредсказуемо. Цитата:
Цитата:
Предлагаю расширить возможности в первую очередь именно черчения, сбора данных за счет идентификации графических элементов как объекты и описания их характеристик. И тем самым превратить чертежи из чисто графических моделей в "информационные", сразу при черчении, задать в унифицированной форме основную нужную информацию об объектах. Благодаря чему будет удобнее, проще решать остальные задачи - то, что вы подразумеваете под манипулированием, обработкой. Исхожу из того, что черчение==создание моделей - это первая задача CAD. Просто технически, хронологически. Очень часто - и главная, и единственная. Последнее - про тех самых примерно 70-80% пользователей, предпочитающих базовый Автокад. Для многих из них (неизвестно для скольких) использование CAD ограничивается процессом вычерчивания и визуального анализа. Да, многие из них (пусть даже большинство) используют самые разнообразные вспомогательные программы для анализа этих моделей, расчетов, подсчетов и отчетов. И разнообразные способы идентификации графических элементов как объекты и описания их характеристик. Так почему бы сразу не обеспечить всех пользователей достаточным способом описания этих данных? Что заметно ускорит, упростит подготовку данных. И в унифицированной форме, что облегчит создание программ обработки и подсчетов. Тем более, что сделать это технически несложно, и ускоряет, улучшает уже само черчение. Да, это меньше, чем все, но это же немало. Вот о том, как решить эту задачу оптимальнее, удобнее для анализа, манипулирования данными и т.п. - это, конечно, вопрос. Например, ваши мнения уже противоречат друг другу - Вы, zamtmn, считаете расширенные данные подходящим средством, а Вы, Сергей812, считаете их неудобными. ![]()
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 10,745
|
уже писал выше - чтобы как то обработать расширенные данные, их сначала надо извлечь. Чтобы изменить одно значение - надо переписывать весь блок расширенных данных примитива. Поэтому идея хранить всю информацию именно в расширенных данных примитива подкупает своей простотой программной реализации, но с точки зрения обработки, формирования взаимосвязей и т.д. требует постоянных обращений к БД чертежа.
|
|||
![]() |
|
||||
Цитата:
А, заодно, есть удобная альтернатива расширенным данным для описания характеристик?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 10,745
|
Цитата:
Цитата:
p.s. может все таки не будем в чужой ветке писать опять про вашу программу?) |
|||
![]() |
|
||||
Цитата:
Если zamtmn не захочет обсуждать перспективность использования расширенных данных, альтернативы им - испарюсь немедленно. Но может же быть и наоборот - вдруг zamtmn идея понравится? ![]() Цитата:
А, вот, что "от расширенных данных все равно не уйдете" вдохновляет ![]() По-моему, пока что они - самое удобное. Начертил что-то - оно уже идентифицировано, уже есть поля для характеристик, уже описаны ограничения для значений в полях. Сразу доступны для выбора по идентификаторам, по значениям характеристик, сразу можно как-то манипулировать. И все предельно компактно, просто - практически не сложнее, чем обычный графический чертеж.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Проектировщик электрических сетей Регистрация: 17.01.2014
Пенза
Сообщений: 210
|
Цитата:
задача десятилетия: "описание программы АлексЮстасу" ![]() 1. вам надо создать меню которое хорошо будет общаться с БД, возможно даже показывать картинки(на памяти у меня только tangentools https://yandex.ru/images/search?text...oreask=1&lr=49, но она работала с блоками, а вам лучше БД xml было бы здорово) 2. внутри этого меню сделать кнопки (линия, полилиния, вставить, копировать, создать), выделил элемент из меню (бетонный забор) нажал кнопку "полилиния" определенную, и ей чертишь, со свойствами которые заранее заложены в меню. Выбрал элемент лиственное дерево, вставил или копировал что бы вставка зацикленная была. 3. после всего этого можно уже анализировать весь полученный массив лини с расширениями и ими манипулировать. 4. думаю основные линии трогать не надо(пускай полилиния останется полилинией), а Ваша полилиния будет называться как то по особенному. (Это вопрос для обсуждения вообще не ясно, как лучше нужно по работать что бы понять в любом случаи объединить потом полилинии будет не сложно) Что нужно что бы это сделать, Вам нужны адепты которые будут программировать, не знаю уж на базе чего вы захотите это видеть, но ZCAD не плохая платформа, тем более открытая. Ищите программистов, договоритесь zamtmn что бы разграничить узкие места или как то их решить сообща и проблема решена... Сразу скажу я падаван в программировании, мне такое не под силу и возможности такие не очень нужны, я в первую очередь все равно решаю свои задачи, свои проблемы... Последний раз редактировалось veb86, 27.06.2016 в 10:48. |
|||
![]() |
|
||||
Да, здесь тема zamtmn, и обсуждать здесь не его идеи стоит только в той мере, в какой он заинтересован.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Всем здравия.
Давно не появлялся, но проект живет потихоньку. Обдумываю одно небольшое, но очень перспективное нововведение. На данный момент различные дополнительные свойства устройств хранятся отдельно в этих самых устройствах. Например "представление" устройства на схеме автоматизации и "представление" устройства на плане - при изменении например свойства эл.мощности в одном, в другом она останется неизменной, а при изменении например имени одного устройства, они вообще "разъедутся" - станут разными. Надо эти параметры централизовано хранить гдето в одном месте. Варианты: 1 - Централизовано хранить гдето вне чертежа все устройства имеют ссылки на место хранения 2 - Централизовано хранить в одном из устройств на чертежа все остальные устройства имеют ссылки на "главное" устройство, при удалении "главного" устройства "главным" станет другое представление 3 - Ввести новую сущность - определение устройства - невидимый блок, не удаляемый обычными средствами, остальные устройства имеют на него ссылку. 1 - вроде как самый правильный, но затратный, т.к. эту внешнюю сущность надо реализовать. 2 - попроще, на данном этапе не приведет к тотальной переделке существующего кода, в дальнейшем позволит менее болезненно свалить на первый вариант при необходимости. 3 - самый простой в реализации, но кроме "централизации" плюсов не несет никаких. С удовольствием выслушаю, если кому есть что сказать по теме. Да и без темы тоже)) |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
На пути централизации нарисовались подводные камни. Оказалось что полностью весь набор свойств хранить централизовано не получается, некоторые вещи всеравно нужно хранить "локально" в "устройстве". Изза этого путаница одно и тоже может быть там и тут.
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 10,745
|
так для этого и писал
поменяли в чертеже - обновили информацию в центральном хранилище. Поменяли информацию в центральном хранилище - сразу по ссылках обновили информацию в чертежах (открывая в фоновом режиме при необходимости). |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
>>так для этого и писал
Проблема не тут. Простой пример: Например есть кабель питающий прибор 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. |
|||
![]() |
|
||||
Проектировщик электрических сетей Регистрация: 17.01.2014
Пенза
Сообщений: 210
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 10,745
|
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 10,745
|
да и собственно что нужно: длина кабеля (с учетом подъемов/спусков и запаса на монтаж) и куда он подходит. Если будет функция, которая будет забирать в центральное хранилище длину кабеля с учетом хранящегося локально в кабеле масштаба - то для дальнейшей обработки и выдачи информации в виде КЖ, спецификации и т.д. этот локальный масштаб особо и не нужен.
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 10,745
|
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
Давно не брал я в руки шашек))
В lazarus`е появиились более менее рабочие докающиеся тулбары. В связи с тем что было очень много жалоб на проблемы с изменениием размера главного окна программы связаные с "эмуляцией" тулбаров докающимися формами - переделываю интерфейс на настоящие тулбары. Теперь выглядит примерно так: ----- добавлено через ~3 мин. ----- http://imgur.com/a/V2jAK настройка и ресайз |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
"Новый" релиз https://sourceforge.net/projects/zca...atest/download с новым интерфейсом
|
|||
![]() |
|
||||
software quality engineer Регистрация: 19.09.2009
Харьков, Украина
Сообщений: 451
|
Цитата:
__________________
energokot.blogspot.com |
|||
![]() |
|
||||
Регистрация: 21.08.2017
Сообщений: 1,064
|
Цитата:
А Вы программу вообще с нуля пишите или какие-то библиотеки в качестве основы брали? База данных для хранения объектов чертежа своя или сторонняя? Последний раз редактировалось ProjectMaster, 28.08.2017 в 21:01. |
|||
![]() |
|
||||
Регистрация: 21.08.2017
Сообщений: 1,064
|
Цитата:
На мой взгляд, на авттокадах/нанокадах/брикскадах и т.д. ваша программа могла бы найти больше пользователей. Я когда-то на старой дельфи пытался создать свой автокад (я конструктор ПГС). Была куча наработок. Хорошо, что дельфа плохо работала с памятью и мне пришлось переучиться на c++. В результате я сэкономил кучу времени на создание уже имеющихся функций и посвятил себя тому, что в существующих программах реализовано плохо, либо совсем не реализовано. Я сэкономил кучу времени. Последний раз редактировалось ProjectMaster, 28.08.2017 в 23:19. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,558
![]() |
ProjectMaster
Про то что не на том пишу я уже устал объяснять)) Это хобби - я не экономлю время и не зарабатываю деньги на этом. Сергей812 Фича тут в том что дефолтный драйвер opengl в составе windows очень обрезан, я довольно давно выкинул его поддержку - она нужна только для одноразовых смотрельщиков(( решить вопрос раз и навсегда можно написанием directx бакенда отрисовки. но мне это не очень интересно |
|||
![]() |
|
||||
Регистрация: 21.08.2017
Сообщений: 1,064
|
Цитата:
И хранение в базе объектов такое, чтобы хранились не сами объекты, а их отличия от предыдущих. Но до реализации так и не дошел. Это означает, что параллельные отрези (которых в чертежах очень много) можно хранить не 6 числами (x1,y1,z1,x2,y2,z2), а только смещением от базового объекта и коэффициентом масштаба (dx, dy, dz). |
|||
![]() |
|
||||
Регистрация: 21.08.2017
Сообщений: 1,064
|
Цитата:
Каждый по своему развлекается. :-). Среди электриков почему-то программистов намного больше, чем среди конструкторов. Кстати, прогу пришлось из дельфы как раз переделывать. Чуть попозже протестирую и народу выложу. Последний раз редактировалось ProjectMaster, 29.08.2017 в 01:47. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,388
|
Цитата:
Но zamtmn делает программу для себя. По своей концепции. Именно "с нуля". Не взял какие-нибудь CAD-компоненты, которые есть для Delphi. Ради интереса и для "унутреннего употребления". При этом он уже приобрел бесценный опыт. И с другими делится. Да, что-то не получается, где-то не туда пошел, вернулся. Ничего страшного. Конечно, этот проект никогда не будет коммерчески успешным, так он и не задумывался таким. Удачи, zamtmn. |
|||
![]() |
|
||||
Регистрация: 21.08.2017
Сообщений: 1,064
|
Цитата:
C++ я выучил за месяц, читая книжку в автобусе по дороге на работу. Время, потраченное на изучение C++ с лихвой экономиться при разработке. У c++ есть система шаблонов типа vector и система перегружаемых операторов для классов, которые в разы упрощают работу с кодом. Для c++ есть современные компиляторы, которые позволяют работать на 64-разрядной архитектуре, поэтому для больших задач скорость работы программы на с++ больше возможности увеличить. P.s. Я не сравниваю возможности Net и чистого c++, так как не специалист в Net. Возможно, Net предпочтительнее c++. ----- добавлено через ~6 мин. ----- Сваи моделируются связями односторонней жесткости в SCAD. В Скаде создается группа из элементов односторонней жесткости с именем, соответствующей геологической колонки. Выводится txt файл расчетной схемы и txt файл нагрузок на связи конечной жесткости. Потом осадка каждой сваи считается методом послойного суммирования как для условного фундамента с учетом влияния соседних условных фундаментов. Нагрузка от грунта при выемке котлована не учитывается. Для каждой сваи-пружинки считается откорректированный коэффициент жесткости. Программа формирует txt файл расчетной схемы с учетом откорректированных жесткостей свай,которые получены методом послойного суммирования. ----- добавлено через ~8 мин. ----- |