LINUX.ORG.RU

В какую сторону копать для решения проблемы?

 , , ,


1

1

В общем решил я перед последним курсом начать делать дипломку. С научным руководителем договорился и он разрешил тем более тема объемная.

В общем суть моей программы. В неё пользователь вбивает графически план квартиры и указывает длины стен, толщину пола, стен, высоту потолка и тому подобное(не буду перечислять все параметры,чтобы не захламлять топик). Программа делает расчеты в зависимости от того, что надо пользователю(будет куча кнопок с выбором вариантов. Пара примеров: сколько паркета понадобиться и на сколько он сократит расстояние от пола до потолка, если делать утепление, сколько понадобится краски на такой-то участок квартиры в зависимости от характеристики краски и от того какой слой краски должен быть на стене и т.д.

Также по чертежу надо составить 3д модель (она автоматически будет создаваться при клике по кнопке "Посмотреть в объеме). Заодно там же можно будет увидеть конечный вариант квартиры с учетом изменений которые хотят внести.

Проблема в том, что чертеж должен быть в формате который могут открыть известные САПР. Вот допустим в GUI нарисую я чертеж. Как потом сие творчество экспортировать в формат чертежа?

Библиотеки смотрел и они отказались переводить в формат чертежа. Как проверял: сделал файлик cpp в нем нарисовал фигурки и попытался экспортировать в чертеж. Не получилось.

Подскажите, пожалуйста, как это можно реализовать??? Писать буду скорее всего на С++. А вот графическую морду какую взять не знаю. Надо, чтобы там и 2д было(чертеж), и 3д(модель квартиры или дома в объеме). Может игровой движок взять или это плохая идея?

Мне науч.рук советовал свой движок по-быстрому накидать на плюсах за лето, чтобы не морочиться.

Как бы вы решили эту проблему?

Я НЕ ПРОШУ ДЕЛАТЬ ЗА МЕНЯ, прошу подсказать в какую сторону копать.



Последнее исправление: Fruct (всего исправлений: 5)

Берёшь открытый формат, в своей программе генерируешь результирующий файл на основе своих данных. Вон в 3MF вообще простенький XML.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Спасибо! Как думаете Qt для подобных рисовалок пойдёт или лучше выбрать какой-нибудь игровой движок?

Fruct
() автор топика

Можно с блендером поразбираться, у него вроде питоньи скрипты на вход можно давать.

свой движок по-быстрому накидать на плюсах за лето, чтобы не морочиться.

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

AntonI ★★★★★
()

Как проверял: сделал файлик cpp в нем нарисовал фигурки и попытался экспортировать в чертеж.

Можно поподробнее?

Мне науч.рук советовал свой движок по-быстрому накидать на плюсах за лето, чтобы не морочиться.

А какой это предмет? Я думал, что перед тем как писать диплом в универе вас должны обучить тому, что нужно для его написания)

goingUp ★★★★★
()
Ответ на: комментарий от Fruct

Как думаете Qt для подобных рисовалок пойдёт

Подойдёт

или лучше выбрать какой-нибудь игровой движок?

На мой взгляд да, лучше. Но это всё субъективно. Я не большой любитель Qt.

CrX ★★★★★
()
Ответ на: комментарий от AntonI

Прикладная математика.

Главное реализовать такую программу без прямого обращения к САПР. Для чего? Чтобы не скачивать САПР и работать автономно.

Fruct
() автор топика

Библиотеки смотрел и они отказались переводить в формат чертежа.

Есть пример кода где ты экспортируешь например сферу и это не работает?

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

Примера кода нет, так как нерабочее я стёр. Смотрел библиотеки LibDWG, LibreDWG, OpenDWG. Это бибилотеки, чтобы работать с DWG файлами и ничего у меня с ними не получилось((((…

Fruct
() автор топика
Ответ на: комментарий от goingUp

Да, нас обучали всему, чтобы надо для диплома))). Мат.база для реализации проекта есть, знание программирования… Нам давали лабы для мат.вычислений и ещё я сам занимался. Поэтому знания есть!!🙃 Знаю С, С++. Из графических морд тыкал только Qt. Может лучше взять готовый игровой движок, чтобы сильно не мучиться, как думаете?

Fruct
() автор топика
Ответ на: комментарий от dataman

Спасибо! Сейчас гляну, что за они и попробую сделать экспорт в чертеж с ними.

Fruct
() автор топика
Ответ на: комментарий от Fruct

Прикладная математика.

А какой вуз, если не секрет, и какие дальнейшие планы на жизнь? Диплом бакалврский или магистерский?

Я почему спрашиваю - задача для этой специальности ИМНО странноватая, обычно какая то физика а тут строительство…

Но с такой специальностью можно и самому движок написать, это будет полезно.

AntonI ★★★★★
()

чертеж должен быть в формате который могут открыть известные САПР

Файл чертежа в открытом векторном формате DXF. Он пришел из автокада, есть масса свободных смотрелок.

anonymous
()

Библиотеки смотрел и они отказались переводить в формат чертежа.

Прямо категорически отказались? Ты их хорошо просил?

Не получилось.

Ну всё, сорвалась дипломка.

rupert ★★★★★
()

Насчёт игровых движков ничего не знаю. Может и будет целесообразно. На каком-нибудь юнити или, что ещё проще, на годоте — вполне себе опция.

А с другой стороны, в этом плане Qt ничем не хуже. В гуи оно явно умеет получше, а это твоя основная фича. В 3д тоже на достаточном для тебя уровне, думаю, может. На крайний случай вытянешь Opengl-контекст и нарисуешь сам как захочешь 🤷‍♂️

witaway
()

Из пушки по воробьям, наверное… В текле был открытый апи на решётках, как сейчас не в курсе, но до 19 версии точно.

julixs ★★★
()
Ответ на: комментарий от AntonI

сколько паркета понадобиться
на сколько он сократит расстояние от пола до потолка

обычно какая то физика а тут строительство…

Это, конечно же, никакое не строительство. Это расчёт сметы на материалы, т.е. специализированная бухгалтерия

Также по чертежу надо составить 3д модель

с заявкой на моделирование интерьера.

LamerOk ★★★★★
()
Последнее исправление: LamerOk (всего исправлений: 1)
Ответ на: комментарий от AntonI

Это гораздо ближе к строительству чем к физике.

«Строительство» - это расчёты прочности узлов сопряжения, расчёты прочности конструкций, сейсмостойкость и пр.. Как думаешь, это «строительство» к чему ближе - к «физике» или к тому, чем занимается ОП?

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Строительство бывает очень разное, и строительство это очень широкое понятие. ГАПы кстати по моему опыту сопромата почти не знают, но они явно строители;-)

Отделка (то для чего хочет писать софт ТС) это тоже строительство.

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

строительство это очень широкое понятие.

Нет, в 21-ом веке это не «широкое понятие», а конкретная инженерная деятельность, такая же как, скажем, судостроение или машиностроение. Мы не называем «строительством» сколачивание скворечника из говна и палок, и даже «постройку баньки на даче» мы тоже уже называем «стройкой века» только в просторечном или ироничном ключе. Времена изб прошли.

ГАПы кстати по моему опыту сопромата почти не знают

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

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

конкретная инженерная деятельность, такая же как, скажем, судостроение или машиностроение

судостроение и машиностроение это тоже очень широкие понятия.

даже «постройку баньки на даче» мы тоже уже называем «стройкой века»

это не стройка века, но тоже строительство и делает это бригада строителей а не физиков или художников.

Времена изб прошли.

До-до, расскажите об этом владельцам дачных участков.

Строителям и не нужен сопромат.

Бред.

Весь сопромат посчитан ещё древнеегипетскими жрецами на пирамидах,

И полное незнание обсуждаемого вопроса. Когда научились считать балку на изгиб? Когда научились считать устойчивость конструкций? Почему в вузах именно механико-математические факультеты?

Вы бы не рассуждали о том, в чем не разбираетесь…

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

Весь сопромат посчитан ещё древнеегипетскими жрецами на пирамидах,

И полное незнание обсуждаемого вопроса.

Такое комментировать - только портить.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Так кто и в каком году научился считать балку на изгиб? История сохранила имя этого «жреца», но Вы его не знаете.

Вот эти два Ваших пассажа вообще прелестны:

«Строительство» - это расчёты прочности узлов сопряжения, расчёты прочности конструкций, сейсмостойкость и пр.

Строителям и не нужен сопромат.

Л значит логика!

Когда я был начальником ПТО я с ГАПами квасил и эпюрки им рисовал, Вы в это время боюсь пешком под стол ходили и мучали кошек.

Продолжайте веселить народ!

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от AntonI

Ну я вот хочу сказать, как только что выпустившийся студент, что ныне, как минимум в ВУЗах среднего уровня навроде моего (и только по моему опыту), обычно очень строгих требований к теме дипломной работе нет.

Мы учились на специальности программное обеспечение информационных систем. Кто-то на кафедре математики, кто-то на кафедре прикладного и системного программирования.

Никто не мешал ребятам на кафедре математики делать классические прогерские дипломы.

witaway
()
Ответ на: комментарий от witaway

Я конечно не знаю какие требования в вузе ТСа, но в МФТИ и в МГУ (там где я преподавал) такая тема была бы удивительна.

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

Ну дак это же университеты верхнего эшелона. Есть ещё очень-очень много ВУЗов чуть попроще, назовём их средние. Там требования к студентам демократичнее.

Кстати, я когда поступал, комплексовал, что поступил не как все наши крутые ребята в БГУ/МГУ/МФТИ/ИТМО, а в свой региональный. Думал, конец жизни. Буду теперь глупым. :)

На практике оказалось, учат тоже довольно неплохо. По крайней мере, если сам тянешься к знаниям.

witaway
()
Последнее исправление: witaway (всего исправлений: 1)
Ответ на: комментарий от AntonI

Живу в маленьком городке поэтому у нас не такие требования как в МГУ и МФТИ. Кстати, а может в с++ сразу создавать файл чертежа и сразу в нем рисовать через GUI? Как вам идея???

Просто я практику проходил и прохожу в строительной компании (она занимается не только строительством домов, но отделкой с ремонтом). Пообщался с руководителем практики и он сказал, что такая программа была бы им очень полезна, но им нужна такая программа АВТОНОМНАЯ, чтобы не ставить САПР. Если б можно было работать через САПР, то и вопрос бы не стоял я бы просто на автолиспе накидал все.

Fruct
() автор топика
Ответ на: комментарий от witaway

Это правда, гораздо важнее кто ты и как ты учишься чем где ты учишься. Тем не менее топовый вуз это среда, это кругозор, это научная школа - все это увеличивает шансы на успех.

А так то Зельдович скажем вообще высшего образования не имел, что не помешало ему стать одним из величайших физиков 20го века. Но не все такие как Зельдович…

AntonI ★★★★★
()
Ответ на: комментарий от Fruct

Тогда все правильно делаете, респект и уважуха!

а может в с++ сразу создавать файл чертежа и сразу в нем рисовать через GUI?

Тут не рискну советовать, не моя поляна.

AntonI ★★★★★
()
Ответ на: комментарий от sparkie

Хорошо для 2д рисовалки пойдёт, а для отображения 3д модели??? Просто надо средство, чтобы и 2д и 3д могло обработать в одном окне или вывести в новое.

Условно говоря нарисовал чел план квартиры, рассчитал там все. Нажал кнопку и появилась 3д модель по чертежу. В том же окне ниже или в отдельном модальном.

Вот сижу и ломаю голову, что лучше выбрать. Посмотрел игровые движки и там танцы м бубном устраивать надо чтобы реализовать это. Две сцены в одном окне. Одна 2д, а вторая 3д. По факту они обе будут созданы как 3д просто у сцены 2д я ось сделаю равной 0 и вот будет 2д.

Fruct
() автор топика
Ответ на: комментарий от Fruct

Ты с такими вопросами лучше иди к руководителю от базы практики. Поузнавай, что им надо, подумай, что ты можешь сделать за разумное время.

Вообще, всё-всё что ты описал, мне напоминает Sweet Home 3d, только с фичами для всяких расчётов. Это сейчас единственное, что я для себя нашёл, что не требует долгого изучения и позволяет как-то абстрактно представить результат ремонта.

Утилита, кстати, полный попенсорс и написана на Java. Хочешь — можешь глянуть, как у них там сделано. Оно вроде не такой уж и большой комбайн. Может ещё какими-то идеями вдохновишься.

witaway
()
Ответ на: комментарий от witaway

Руководитель от базы практики сказал, что ему надо, а на мой вопросы на чем лучше сделать ответил что не очень понимает в программировании(он сам инженер и разрабатывает чертежи. К нему с непонятками по мат.модели или чертежами, если не смогу их прочитать(не программой,а сам))). Как-то так.

Fruct
() автор топика
Ответ на: комментарий от AntonI

Ну, не могу не согласиться. Мой друг как раз в СПБГУ отучился. Правда на химика. Комьюнити там очень Классное. У них там и конкурсы стартапов, и гранты на много денег. 🤔

Но так, что имеем то имеем.

witaway
()
Ответ на: комментарий от witaway

В Java не очень понимаю, но в обнимку с документацией по этому языку думаю смогу ухватить основную суть. Спасибо!

Fruct
() автор топика
Ответ на: комментарий от Fruct

Qt умеет в 3д более чем. Умеет и в свой местный 3д, и в доставание Opengl-контекста с последующим рисованием ручками.

Я только не уверен, насколько тебе будет удобно делать 2д-представление как 3д, но с осью равной нулю. Ты же сразу теряешь тонну удобств для программирования GUIшных примитивов. Мне кажется, с классическим ГУИ будет как-то намного проще справляться. Да и не знаю, насколько опрятно это будет выглядеть.

В sweet home, кстати, есть редактирование в 3д — но оно ограничивается двиганием объекта, на который смотришь вперёд/назад относительно камеры. Остальное, думаю, реализовать сложнее. :)

witaway
()
Последнее исправление: witaway (всего исправлений: 1)
Ответ на: комментарий от Fruct

Лучше не загромождать, и сделать отдельно окно для 3d.

sparkie ★★★★★
()
Ответ на: комментарий от witaway

Теперь 2 варианта на чем делать: C++ и Qt Pure C и GTK с OpenGL Что лучше взять?

Fruct
() автор топика
  1. Ты немного BIM и CAD путаешь, и да, тебе нужен в данном случае BIM.
  2. Бери формат IFC. Для BIM это становится стандартом на замену DWG (тут есть много «но», но я не буду все разжевывать и скажу, что тебе нужен именно IFC).
  3. В ifcpp есть конвертор в osg, который должен за глаза хватить для визуализации(несмотря на то, что он устарел).
  4. В ifcpp есть генерация модели, можешь глянуть этот пример.
  5. 2D чертеж это ортографическая камера + сечение.
maxis11
()
Ответ на: комментарий от maxis11

Спасибо!!! Возможно глупый вопрос, но спрошу. Что лучше взять С++ и Qt или + и Qt Pure C и GTK с OpenGL??? Это последний момент и начну разработку)

Fruct
() автор топика
Ответ на: комментарий от Fruct

Если пойдешь в сторону osg, то лучше взять стек: C++ + Qt5 (насколько помню порт osgQt под Qt6 не завезли) + osg + osgQt

maxis11
()
Последнее исправление: maxis11 (всего исправлений: 1)
Ответ на: комментарий от Fruct

Ну это вопрос мнений. Решай сам. Моё личное мнение — бери Qt.

Qt уже умеет в некий базовый 3d. Быть может, тебе его даже полностью хватит.

С GTK у тебя единственный выход — полностью пилить сам на Opengl либо для этого подключать какие-нибудь ещё библиотеки. В целях обучения всё круто, сойдёт. А если начнутся проблемы с дедлайнами? Начнётся ебалово. Задача и без того потенциально очень объёмная. К тому же, как заметил комментатор выше, там уже есть подходящие тебе инструменты.

Но при использовании Qt подумай о лицензировании. Часть компонентов GPL, часть LGPL. Самый core, вроде бы, как раз LGPL. Ещё у них есть коммерческая лицензия. Нужна не всегда. Исследуй немного топик.

witaway
()
Последнее исправление: witaway (всего исправлений: 5)

Выбрал С++ и Qt, чтобы с нуля не пилить ничего. Вопрос не закрываю буду отписываться по результатам работы. Может кому-то будет интересно потом протестить. Всем отвечающим большое спасибо и чая с печеньками?

Fruct
() автор топика
Ответ на: комментарий от Fruct

Чая с печеньками! * Опечатка с знаком препинания 😅 в сообщении ниже

Fruct
() автор топика
Ответ на: комментарий от Fruct

Возможно, под новые вопросы лучше создавать новые топики. Так внешнему наблюдателю будет лучше понятно, о чем вопрос и о чем идёт речь прямо сейчас. Заодно облегчишь жизнь другим ребятам, которые на ЛОР приходят в основном из гугла. Никто не любит выкраивать нужную информацию из огромных топиков на 70 страниц.

А так, спрашивай. Сдашь диплом — будешь всему форуму проставляться. 😏

witaway
()
Последнее исправление: witaway (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.