Каково текущее положение дел, что уже умеет? Где на него можно взглянуть?
GUI как я понял на GTK? Ели да то какой виджет используешь для самого окна отрисовки? GtkCanvas? При большой числе элементов тормозить не станет?
От строки меню принципиально отказался или дальше планируешь прикрутить? На кнопки ведь все уместить не удастся, а вспоминать названия редко используемых команд порой крайне лениво, вот тут меню и пригодилось бы. Так же надеюсь на полноценное представление всех возможный функций в командной строке.
Хм... Еще не заметил строки состояния, как служебную информацию (ну там тип линии, толщина, сообщения требующие немедленного внимания) собираешься выводить?
И последний вопрос касаемо интерфейса, ты его планируешь резиновым (в смысле чтоб все панели можно было убрать и все вводить с клавиатуры) или все прибито гвоздями, прикручено винтами, скручено болтами-шпильками и заварено?
Формат свой, смотреть можно на гитхубе. Там же лежит запускаемый образ чтобы не морочится с лисп софтом. Пока что ничего не умеет))) ибо пишу по мере изучения языка (за месяц работы почти ничего не успел). Использую cl-gtk2 для виджетов и cl-cairo2 для отрисовки рисунка (на скрине демка с расположением мебели в моей комнате). Как осилю ООП и разберусь с некоторыми затыками то сразу и версию 0,1 зарелизю.
Дело полезное. Главное — это довести его до конца, а вот с этим всегда тяжело. Начать просто.
Я еще прошлой осенью сел тоже писать CAD на CL с некоторыми более грандиозными идеями, чем просто чертилка, и он даже у меня простые DXF открывал, имел зачатки интерактивности. В прошедшем времени говорю, так как пока проект заснул. Времени нет. Надеюсь, что очухаюсь. Год назад заснул на сплайнах, так как слишком углубился в теорию: начиная от истории вопроса (Безье, де Кастелье, полиномы Бернштейна и пр.) и заканчивая разными C. de Boor, Farin, Boehm и др.
>qcad примитивен, тот же gcad3d гораздо продвинутей
Я не о продвинутости, а о приведенных примерах программ. KiCAD вообще ничего начертить внятного, кроме схем не позволит. Он заточен под это. А я пользуюсь gEDA. Тогда ее тоже в список добавить, если все хочется в кучу.
А что из приведенных кнопок функционирует? По скриншоту пока только ясно, что прямоугольники и линиии работают. Большинство кнопок ничего не делают? А хоть какое-то редактирование объектов работает или пока просто графический вывод?
Друг, скинь на litetabs@rambler.ru наработки, если уж решил это дело заморозить. Думаю это даст мне хороший материал для размышления да и идей подчерпну
Проекту от силы больше месяца. Почти ничего не работает. Все что на экране - отрисовано напрямую (минуя кнопки) для теста. Оживет это дело не менее чем через месяц, я так думаю
>Друг, скинь на litetabs@rambler.ru наработки, если уж решил это дело заморозить. Думаю это даст мне хороший материал для размышления да и идей подчерпну
Проект не заморожен. Он приостановлен. :)
Тут такой момент. Существует такой код, который я не готов показывать. Не потому, что он секретный (напротив, я за свободный код всегда), а потому что он ugly, так как я сперва делаю technical preview и экспериментирую. Чтобы соблюсти комильфо, я раньше момента, когда решу, что код готов для опубликования, и за него не стыдно, не решаюсь его показывать. Некоторые куски, однако, я могу прислать. Надо только поднять все и посмотреть, на каком этапе все находится. Я уже все забыл. Вот, например, первый вариант парсера DXF могу прислать. Идя там проста: DXF — это автомат. Эта идея заложена в сам формат. Я только написал макрос с функцией, которые разворачивают описания подавтоматов в программную реализацию.
Далее, насчет underlying geometry. Я за основу взял стандарт STEP. Идея примерно такая же, как в OpenCASCADE. Эта модель описана в 42-й части стандарта ISO 10303-42. Этот стандарт ГОСТом не адаптирован. Есть набор некоторых адаптированных стандартов ГОСТ Р ИСО 10303, но этого нет.
В качестве GUI использовал McCLIM. Поэтому код, связанный с GUI, тебе уже сразу будет не нужен. Мне McCLIM интересен, но реализация хромает на обе ноги, поэтому я никому не советую им пользоваться. Пользователь должен быть готов принять недоделанность и специфичность этого инструмента. Мат неизбежен.
Вот такие вот пока идеи. Главное — это математику написать. А это сумасшедшего объема задача. Поэтому направлению у меня в коде одни недоделки. Вот как раз на сплайнах застрял. А еще NURBS-кривые надо... А линии, кружочки, квадраты — это ничто просто. Нужна исчерпывающая библиотека пересечений кривых, преобразований кривых и пр. Про 3D даже не заикаюсь.
У меня, к сожалению, нет пока моего сайта. Сейчас сорваться не могу прямо, чтобы поднять проект и посмотреть, что там вообще сейчас работает, но постараюсь это сделать в ближайшее время. Основные детали я описал выше. Пока можно и самому покопаться.
Я считаю, что для успешного проекта в этой области, надо отбросить все ковыряния с GUI как первостепенные и сконцентрироваться на математике и модели. GUI — это задача третьестепенная и не составляет большой проблемы. Почему-то обычно народ первым делом хватается за GUI, будто это самое важное. Я McCLIM выбрал еще потому, что он мне позволил быстро стартануть с визуализацией и интерактивными вещами.
> Эта модель описана в 42-й части стандарта ISO 10303-42. Этот стандарт ГОСТом не адаптирован. Есть набор некоторых адаптированных стандартов ГОСТ Р ИСО 10303, но этого нет.
http://www.equi4.com/jcw/files/5b2a3b1d971d429578e20517e47738a4-56.html
When Alan Kay speaks, I want to hear every word he says. Or read it, at least. This talk is about the abysmal state of computer science.
> When people react instantly, they're not thinking, they're doing a table lookup.
Not particularly relevant, but a neat quote nevertheless... Here's another one I wholeheartedly agree with:
> Lisp is the most important idea in computer science.
The one thought I came away with after reading this was: thinking takes time.
Ну, кто ищет, тот найдет. :) Я, кстати, не нашел. Очень усердно искал, да. Видел, однако, что они у кого-то имеются. В форумах кто-то кому-то лично пересылал. Варезники, блин. :)
Есть библиотеки и проекты, которые используют такое же представление. И описание их API и объектной структуры можно найти в сети (ifc, например) дают некоторое представление, пригодное для реализации. Что касается 10303-42, то в недрах интернета (не по прямым ссылкам) отыскал проект его адаптации (читай — тупо переведенный на русский язык) для Государственного стандарта Республики Беларусь. Ну а кому сейчас легко. :)
Для меня gui второстепенен, но так хотелось поскорее увидеть первые палочки-кружочки, протестировать производительность выбранных тулкитов. Да и организация функционала тесно с gui связана