САПР на Lazarus
Модератор: Модераторы
>>Гм, а почему по габариту? Можно ведь классифицировать:
По габариту быстро и универсально.
Делать не по габариту - всеравно что реализовывать разрезание примитива имхо
Добавлено спустя 1 минуту 20 секунд:
может для графических примитивов можно и не по габариту, для dxf только по габариту - они слишком сложные
По габариту быстро и универсально.
Делать не по габариту - всеравно что реализовывать разрезание примитива имхо
Добавлено спустя 1 минуту 20 секунд:
может для графических примитивов можно и не по габариту, для dxf только по габариту - они слишком сложные
zub писал(а):Делать не по габариту - всеравно что реализовывать разрезание примитива имхо
Да нет резать сложнее. Хотя собственно резать не сложно, сложно поддерживать все это.
Добавлено спустя 43 секунды:
Кстати, а что за DXF примитивы?
Кстати, а что за DXF примитивы?
https://ru.wikipedia.org/wiki/DXF
http://www.autodesk.com/techpubs/autoca ... ection.htm
Добавлено спустя 52 минуты 23 секунды:
Смысл дерева - быстро отсеять то что невидимо, а не точно рисовать только то что видимо.
Чуток разделил лог, навскидку "выделил" такие "модули"
DEFAULT - сообщения зкада
ZSCRIPT - сообщения парсерера pas скриптов
TRANSLATOR - сообщения переводчика
FILEOPS - сообщения решателя имен файлов
SHX - сообщения загрузчика shx шрифтов хидер и перечень форм
SHX_CONTENTS - сообщения загрузчика shx шрифтов содержимое форм
DXF_CONTENTS - сообщения загрузчика dxf
FINALIZATION_TYPES - финализация структур данных при закрытии программы
DEFAULT - сообщения зкада
ZSCRIPT - сообщения парсерера pas скриптов
TRANSLATOR - сообщения переводчика
FILEOPS - сообщения решателя имен файлов
SHX - сообщения загрузчика shx шрифтов хидер и перечень форм
SHX_CONTENTS - сообщения загрузчика shx шрифтов содержимое форм
DXF_CONTENTS - сообщения загрузчика dxf
FINALIZATION_TYPES - финализация структур данных при закрытии программы
Давно зудит сделать несколько навигаторов по устройствам чертеже. Пока требования - древовидная структура, текст+картинки, драгидроп, контекстное меню.
Думаю что взять за основу: обычный TTreeView - вроде как как раз то что надо или сразу http://sourceforge.net/p/lazarus-ccr/sv ... new/trunk/ - мало ли куда заведут аппетиты.
Потестил последний - не так уж и "системоно" выглядит, особенно в линуксе, сразу напоролся на грабли с выделением если скролбар сдвинут...
Кароче раздумья. Картинку того что предполагается сделать прилагаю
Думаю что взять за основу: обычный TTreeView - вроде как как раз то что надо или сразу http://sourceforge.net/p/lazarus-ccr/sv ... new/trunk/ - мало ли куда заведут аппетиты.
Потестил последний - не так уж и "системоно" выглядит, особенно в линуксе, сразу напоролся на грабли с выделением если скролбар сдвинут...
Кароче раздумья. Картинку того что предполагается сделать прилагаю
советую tvirtualtreeview от создателя GLScene.
http://www.soft-gems.net/index.php/cont ... l-treeview
ну и порт под лазарус http://wiki.lazarus.freepascal.org/VirtualTreeview
http://www.soft-gems.net/index.php/cont ... l-treeview
ну и порт под лазарус http://wiki.lazarus.freepascal.org/VirtualTreeview
olegy123
Я его и имею ввиду. другой репозиторий просто.
Ты в линуксе его использовал?
Я его и имею ввиду. другой репозиторий просто.
Ты в линуксе его использовал?
нет, на лазарусе еще не использовал, на Delphi активно.
virtualtreeview гибокий в плане тюнинга.. очень много опций. Возможно перекрывать методы отрисовки ячейки и handleColums..
Вот галерея
http://www.soft-gems.net/index.php/cont ... ew-gallery
LayMan - AutoCAD Layer Organizer:

Добавлено спустя 19 минут 43 секунды:
ой, нужно "вспомнить все".. заново ставить и кликать.. давно это было.
TVirtualTreeView работает с указателями, а не с значением.. возможно нужно явно указывать какие поля подлежат срванению.. посмотри на OnCompareNodes
посмотри на RootNode - он должен иметь либо Nil либо значение.. соответсвенно у первых потомков parent должен иметь RootNode
virtualtreeview гибокий в плане тюнинга.. очень много опций. Возможно перекрывать методы отрисовки ячейки и handleColums..
Вот галерея
http://www.soft-gems.net/index.php/cont ... ew-gallery
LayMan - AutoCAD Layer Organizer:

Добавлено спустя 19 минут 43 секунды:
zub писал(а):Потестил последний - не так уж и "системоно" выглядит, особенно в линуксе, сразу напоролся на грабли с выделением если скролбар сдвинут...
Кароче раздумья. Картинку того что предполагается сделать прилагаю
ой, нужно "вспомнить все".. заново ставить и кликать.. давно это было.
TVirtualTreeView работает с указателями, а не с значением.. возможно нужно явно указывать какие поля подлежат срванению.. посмотри на OnCompareNodes
посмотри на RootNode - он должен иметь либо Nil либо значение.. соответсвенно у первых потомков parent должен иметь RootNode
Я глядел демку Advanced из "коробки" VT-new.
http://imgur.com/a/JHQDP - окно зкада с LCLным treeview, демка VT - наиболее похожая на то как мне надо, KInfoCenter - для сравнения как выглядят кутешние "системные" деревья
Собственно надо сказать что и в LCLный treeview выглядит далеко не системно((
Добавлено спустя 20 часов:
Взял последний VT из https://github.com/blikblum/VirtualTreeView-Lazarus.git ошибка выделения там пофикшена
http://imgur.com/a/JHQDP - окно зкада с LCLным treeview, демка VT - наиболее похожая на то как мне надо, KInfoCenter - для сравнения как выглядят кутешние "системные" деревья
Собственно надо сказать что и в LCLный treeview выглядит далеко не системно((
Добавлено спустя 20 часов:
Взял последний VT из https://github.com/blikblum/VirtualTreeView-Lazarus.git ошибка выделения там пофикшена
zub писал(а):http://imgur.com/a/JHQDP - окно зкада с LCLным treeview, демка VT - наиболее похожая на то как мне надо, KInfoCenter - для сравнения как выглядят кутешние "системные" деревья
Собственно надо сказать что и в LCLный treeview выглядит далеко не системно((
Дефолтно он только системно выглядит..
Там каждый calls можно по своему раскрасить..

у меня вопрос, можно ли матрицу 4х4 (array [0..3,0..3] of float) в
glMultMatrixf вставить?
да, если float одинарной точности. Еще наверно массив лучше объявить как packed
Перевел встроеный скриптовый язык на нативные паскалевские типы LongInt, LongWord, SmallInt, Byte, ShortInt, Word, Boolean, Pointer, QWord, String, AnsiString, Double, Single вместо их суррогатов вида GDBInteger и подобных.
Теперь в инспекторе можно показывать любые данные, а не только основаные на GDB* типах
Теперь в инспекторе можно показывать любые данные, а не только основаные на GDB* типах
Советую добавить UUID.
У меня каждый элемент создает uuid. Проще сериализовать - хоть файлово.. хоть через SQL.
Думал как упаковывать их: либо через JSON или XML. Решил что проще через XML - это промышленный стандарт.
А для JSON в с++ нет либлов, все самоделки.
У меня каждый элемент создает uuid. Проще сериализовать - хоть файлово.. хоть через SQL.
Думал как упаковывать их: либо через JSON или XML. Решил что проще через XML - это промышленный стандарт.
А для JSON в с++ нет либлов, все самоделки.
Имеется ввиду отображение в инспекторе данных типа record a:integer;b:double end; как "напрямую" из программы, так и в виде скриптов. uuid пока мне без надобности, но добавить не проблема.
Также подобный "скрипт" используется для привязки данных к примитивам. например на скриншоте к примитиву привязан скрипт содержащий 2 переменные доступные в инспекторе рядом с геометрическими свойствами примитива. Также можно пользовать рекорды и указатели организовывая сложные ветвистые структуры. Сериализуется-десериализыется это всё на паскалеподобном языке, как на скриншоте
Также подобный "скрипт" используется для привязки данных к примитивам. например на скриншоте к примитиву привязан скрипт содержащий 2 переменные доступные в инспекторе рядом с геометрическими свойствами примитива. Также можно пользовать рекорды и указатели организовывая сложные ветвистые структуры. Сериализуется-десериализыется это всё на паскалеподобном языке, как на скриншоте
Мелочь, а приятно.
Когда то давно предусмотрел возможность привязки только одного "быстрого" редактора к типу данных в инспекторе ("кнопочка" справа). Сейчас исправил - "кнопок" можно привязать хоть сколько
Когда то давно предусмотрел возможность привязки только одного "быстрого" редактора к типу данных в инспекторе ("кнопочка" справа). Сейчас исправил - "кнопок" можно привязать хоть сколько
