Программирование парамметрического 3D САПР

Модератор: Модераторы разделов

Аватара пользователя
Ink-85
Сообщения: 222
Статус: полный привет
ОС: Mac OS, Ubuntu 8.04

Программирование парамметрического 3D САПР

Сообщение Ink-85 »

Правильно ли я понимаю, с чего требуется начать: (С++/Qt)


1.Написание ядра программы (как это делается и на какие составляющие части можно это поделить)?Что сюда входит? Применимо к параметрическому 3D САПР!

2.Уже в нескольких книгах встречал что сначала надо сделать прототип программы, заставить ее работать, а потом ее дописывать? Это и есть ядро которое надо запустить с использованием мин. функционала будущей программ?
Например черчение линий, построение поверхностей и т.д

3.Прототип интерфейса (UI). Что входит в этот этап ? И как его реализуют?

4.Усовершенствование всего что было сделано выше.

Что скажите?Что посоветуете?

p/s Кстати я на С++/Qt сделал свой просмотрщик фоток с функцией быстрого переименования и уменьшения их размеров :)))
Первая прога!!!!!
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Программирование парамметрического 3D САПР

Сообщение Portnov »

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

0. Проектирование. Продумать, из каких частей будет состоять программа, как они будут взаимодействовать. Каким образом предполагается в дальнейшем расширять функционал программы. Иногда уже на этом этапе возможно расписать программные интерфейсы (API) между частями (модулями, подсистемами) программы. Здесь же - выбор средств разработки (часть вы уже выбрали - C++, Qt; вероятно, вам понадобится что-нибудь ещё).

0.5 (по мере надобности и возможности). Прототипирование. Собственно кодирование начинается только здесь. Пишется программа, выполняющая самые главные функции будущей программы. Тут главное - быстро что-то хоть как-то работающее набросать. Для ускорения этого этапа обычно используются языки более высокого уровня - скажем, python или ещё что. В ходе набрасывания выявляются ошибки в проектировании, а, возможно, даже в постановке ТЗ (оказывается, например, что какие-то функции не имеют смысла, другие не могут быть реализованы одновременно, зато позарез нужны третьи). В таком случае GOTO 0 или -1.

1. Ядро. В вашем случае, думается, ядро окажется библиотекой функций из области аналитической геометрии (проверить, пересекаются ли две линии, построить касательную, и мн.др.). Чистый C++, раз уж вы этот язык выбрали.

2. Остальные части, выявленные на п.0.

3. Интерфейс. Тут вот уже C++ и Qt. Варианты - либо сначала проектирование интерфейса (рисование его на бумажке или в графическом редакторе и обдумывание/обсуждение с заказчиком), либо сначала прототип интерфейса (пишется любой gui не задумываясь особенно, в ходе написания/использования выясняется, как именно его нужно изменить).

Вот так, как-то ;)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
sciko
Сообщения: 1744
Статус: Ъ-участник
ОС: Debian/Ubuntu/etc

Re: Программирование парамметрического 3D САПР

Сообщение sciko »

Portnov писал(а):
11.02.2010 15:26
ядро окажется библиотекой функций из области аналитической геометрии
ЕМНИП, такие библиотеки уже есть, т.е. писать ничего не надо, а надо читать.
Например, доки к OpenCASCADA.
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: Программирование парамметрического 3D САПР

Сообщение deadhead »

sciko писал(а):
11.02.2010 16:03
Например, доки к OpenCASCADA.

Open CASCADE ;-)
Ну это как раз можно отнести к
Portnov писал(а):
11.02.2010 15:26
обзор аналогов (как это сделано в других программах)
[x] close
Спасибо сказали:
sciko
Сообщения: 1744
Статус: Ъ-участник
ОС: Debian/Ubuntu/etc

Re: Программирование парамметрического 3D САПР

Сообщение sciko »

Скорее уж к
Portnov писал(а):
11.02.2010 15:26
выбор средств разработки


Но пригодиться и для
Portnov писал(а):
11.02.2010 15:26
Оценка трудозатрат в человеко-годах.
Спасибо сказали:
Аватара пользователя
Ink-85
Сообщения: 222
Статус: полный привет
ОС: Mac OS, Ubuntu 8.04

Re: Программирование парамметрического 3D САПР

Сообщение Ink-85 »

Спасибо.Вроде все понятно

Если у кого-то буду еще советы , пишите.
Спасибо сказали:
Аватара пользователя
Ink-85
Сообщения: 222
Статус: полный привет
ОС: Mac OS, Ubuntu 8.04

Re: Программирование парамметрического 3D САПР

Сообщение Ink-85 »

Насколько сложно написать такую программу. Создание плоскости по двум направляющим. И чтобы ее точки и направляющие можно было динамически изменять.
http://www.opencascade.org/_popup/379/

И в чем состоит сложность в программировании параметрического 3D?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Программирование парамметрического 3D САПР

Сообщение NickLion »

Ink-85 писал(а):
11.02.2010 17:53
Насколько сложно написать такую программу. Создание плоскости по двум направляющим. И чтобы ее точки и направляющие можно было динамически изменять.
http://www.opencascade.org/_popup/379/

И в чем состоит сложность в программировании параметрического 3D?

Плоскость однозначно определяется 3 точками. Эта задача решается очень просто.
А ссылка вообще на аппроксимацию кривых и поверхностей. Решается различными способами. Смотрим:
http://ru.wikipedia.org/wiki/B-сплайн
http://ru.wikipedia.org/wiki/Кривая_Безье
http://ru.wikipedia.org/wiki/Полином_Лагранжа

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

PS что Вы понимаете под параметрическим 3D?
Спасибо сказали: