Прототип интерфейса JewelBox(0.2.0.0)

На этой неделе сконцентрировался на создании прототипа интерфейса для программы. Как оказалось, задача это не совсем тривиальная, и потребовала общения с разработчиками фреймворка libCinder, на котором я сейчас веду разработку. Но в итоге что то получилось, хотя и надо сказать что пока, увы, перерисовки экрана довольно медленные при смене размеров. К сожалению, пока не знаю, удастся ли преодолеть эти ограничения, но надеюсь что смогу.

На видео я демонстрирую что то наподобие интерфейса с вкладками. Помимо той что было раньше (3D вид+развёрнутый чертёж) я добавил прототип работы с отдельным чертежом в 2d.
По пути приходится решать очень много проблем, в частности с библиотекой интерфейса ImGui, который я на данном этапе использую для построения всех контрольных элементов. Он весьма прост и удобен для пользования, но как оказалось не в варианте программ типа CAD систем. Может быть, увы, но придётся от него отказываться.

JewelBoxCAD Добавление стенок в перехлёст. Автоматический расчёт смещений (версия 0.1.8.8)

Очень много и упорно пришлось поломать голову при программировании казалось бы простейшего действия: смены типа соединений и расчёт автоматических смещений при этом.

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

Во первых, показываю как разом можно сменить тип соединения сразу на всех четырёх угла (был паз, стал перехлёст).
Далее следует демонстрация автоматического смещения места соединения от боковой грани. Причем, возможно как изменение сразу у всех имеющихся граней этого типа (а не только той что выбрана!), так и можно далее осуществлять изменения у каждой из граней по отдельности (хотя я с трудом представляю зачем могут понадобиться разные смещения, но вдруг!).
Третий блок это показывается как на задней стенке сменяется тип соединения с «перехлёст» на шип и дальше стоит отметить, что смещение боковых граней теперь меняет длины задней стенки на требуемую величину!
Ну и в заключении, я показываю что изменения размеров изделия так же корректно учитывается при расчётах заданных соединений.
Вся загвоздка в том, что я хотел получить максимально гибкий механизм. Скажу честно — работы ещё не початый край! Пока ещё есть ошибки  в работе алгоритма. В частности не всегда корректно пока ещё работают смещения, когда сочетаются не одинаковые типы соединения для одной стенки. Но в целом — прогресс есть, и поэтому спешу им поделиться.

JewelBoxCAD. Добавляем выбор деталей мышкой! (версия 0.1.4.0)

Довольно активно продолжаю работать над новым проектом, лёгкой CAD системы ориентированной на изготовление чертежей для разных CNC станков. На сей раз я озадачился как можно на более ранних сроках определиться с полноценной работой мышкой над 3d моделью в реальном режиме времени. Надо сказать — задача оказалась не из самых лёгких. Пришлось подключать даже разработчиков фреймворка Cinder, который я взял за основу (правда, всё равно пришлось идти другим путём)! Но, вроде бы получилось! Конечно, до полноценного взаимодействия ещё далеко, но результаты есть!

На видео можно видеть, что при наведении на стенку, она становится полупрозрачной (или сразу несколько стенок, смотря сколько попадает под курсор). Щелчек выделяет эту стенку, и её параметры становятся доступны для редактирования. В общем — уже почти нужный уровень взаимодействия с моделью! Так же можно таскать модель по всему экрану.
Ну, из мелочей ещё сделал полноценную отрисовку чертежа (очень напоминающую ту, что есть в макросе Шкатулки). Выбор цвета стенок. Пока всё! Но работа идёт и довольно интенсивно! Думаю, к лету понадобятся бетта-тестеры.

Продолжение работы над JawelBoxCAD(0.1a)

Понимаю, что немного страдает работа над макросами, но уж очень хочется мне понять, заработает ли моя идея как надо?
Итак, за прошедшую неделю я добавил возможности правки параметров шиповых соединений, различных смещений и автоматическую смену типа соединения, при разного рода смещениях. В общем, получилось вроде бы интересно. Можно посмотреть на видео:

Начата работа над новой программой: JewelBoxCAD!

Спешу поделиться с первыми наработками по новой программе:»JewelBoxCAD»
Это будет программа, которая позволит в реальном времени производить проектирование различных декоративных изделий на станках ЧПУ. Те, кто пользуются моими макросами, замечают что в них не хватает интерактивности. Надо сперва продумать всё (размеры, внешний вид и т.д.), и лишь потом ввести параметры. Ну или делать проектирование в несколько приёмом с правкой каких-то параметров.
Меня самого не очень устраивает такая работа, и давно хотелось начать делать софт, который не накладывает на меня столько ограничений в плане программирования, как это есть в макросах к CorelDraw. Я довольно долго готовился к началу этого процесса, собирая различный материал и тестируя разные инструменты для программирования. Но вот после Нового года, я наконец более менее почувствовал что могу эксперименты. Вот что получилось за первую неделю работы:

Это само собой далеко не конечный вид программы, а просто эксперимент, в котором я отрабатываю работу объемными моделями и работой с чертежами в параметрическом виде в реальном режиме времени.
Ну и напоследок хочу сказать, само собой работа над макросами не прекратиться. И вполне может быть, что на базе этой программы, я смогу написать отдельный модуль для подобной интерактивности в макросе. Но это будет не скоро. Как и сама программа, судя по всему. Но, начало положено!