Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 3
1

Конструктор принципиальных схем на C#

02.03.2018, 07:24. Показов 3877. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! Я изучаю C# и хочу сделать конструктор принципиальных схем, но чтобы и рассчитывались схемы сразу.
Примерная суть в следующем:
Будет набор неких блоков (задвижка, клапаны, насосы и т.д.), которые нужно будет размещать вручную на линии (условно трубопровод) и я не пойму как сделать так, чтобы была четкая последовательность от точки начала расчета, чтобы расчет схемы шел от точки начала расчета и по ходу движения среды...
Ну для примера возьму кусочек схемы (см. рис1). На нем показаны 3 клапана, допустим проходя через каждый клапан поток теряет часть давления и мне нужно, чтобы нажав на кнопку например "Расчет" алгоритм бы понимал, что находится на линии такой то клапан и выполнял расчет и показывал результат. То же самое например если я захотел добавить или убрать клапан, то при перерасчете это так же учитывалось.
Какие мысли были у меня по этому поводу:
1. Получать координаты элементов и сортировать по ним и таки образом делать расчет, но схема может ветвиться и занимать все пространство листа (мне кажется, что это не совсем корректно будет)
2. Жестко в параметрах каждого элемента задавать допустим номер, но тогда эта схема сложно редактироваться будет, если мне нужно будет добавить клапан в середину схемы, мне придется половину перенумеровывать...

Может кто-либо с таким заморачивался и подскажет в каком направлении копать, что нужно почитать, какие темы? Я понимаю, что многого не знаю еще и может это тривиальная задача...
Заранее спасибо.
Миниатюры
Конструктор принципиальных схем на C#  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2018, 07:24
Ответы с готовыми решениями:

Графический конструктор гидравлических схем
Надо для курсача создать графический конструктор гидравлических схем, т.е простая схема из бака,...

Редактор принципиальных схем на GTK+
Получил задание "Редактор принципиальных схем на GTK+". С GTK раньше не работал, не знаю с чего...

Программа для рисования принципиальных схем
Сам пользую для этих целей OrCAD. Может быть кто-то подскажет более легковесную и желательно...

Софт рисования принципиальных схем и атомных структур
Не подскажете софт для нарисовывания принципиальных электрических схем и схем кристаллических...

20
Эксперт .NET
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
02.03.2018, 09:10 2
Romulus90, может вы задачку попроще возьмёте?)
0
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
02.03.2018, 14:45 3
Цитата Сообщение от Romulus90 Посмотреть сообщение
может это тривиальная задача...
Тривиальная. Схема следующая:
-- готовите N-ю сумму денег;
-- заказываете прогу.

А если серьезно -- такие проги довольно сложны для реализации даже знающим людям. Причем проблема еще в понимании формул и расчетов, вы то может и понимаете их, а вот пишущему человеку нужно обьяснить на пальцах. Закинуть некий графический єлемент на форму не сложно, сложно их связать в единую систему, плюс єти линии...
0
3462 / 2473 / 695
Регистрация: 02.08.2011
Сообщений: 6,704
02.03.2018, 14:56 4
Цитата Сообщение от Wolfdp Посмотреть сообщение
А если серьезно -- такие проги довольно сложны для реализации даже знающим людям
У меня дежавю... Была похожая тема, где кто-то сказал что такие проги сложны, и где Storm23 за час-два наваял интересное и рабочее решение...
0
46 / 79 / 6
Регистрация: 10.08.2013
Сообщений: 237
02.03.2018, 14:57 5
Думаю, вам может быть полезно с теорией графом ознакомиться. В частности, почитайте про транспортные сети, задачи о нахождении потоков в них. Ваши клапаны будете моделировать узлами графа, ну и считайте потоки теперь.
1
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
02.03.2018, 15:06 6
IamRain,
Возьми и попробуй набрать следующее: расчет работы цепи питания из резисторов и батарейки. Для простоты -- кольцевой. С возможностью вносить свои резисторы (в идеале должен быть экспорт/импорт) и соответственно "батарейки". Плюс, в такой системе имеет значения длина соединений (вроде, могу ошибатся) что добавляет работы.

Набрать прототип из двух хардкорных элементов и собрать полноценный проект две большие разницы.
0
Эксперт .NET
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
02.03.2018, 16:01 7
Цитата Сообщение от IamRain Посмотреть сообщение
У меня дежавю... Была похожая тема, где кто-то сказал что такие проги сложны, и где Storm23 за час-два наваял интересное и рабочее решение...
Да. Это я ему сказал, что на это пару дней надо. А он за пару часов накидал. Там, правда, без рассчётов, просто графика.
1
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
02.03.2018, 16:44 8
Usaga,
ну, почти хардкод. Во первых, там линейная система с неким количеством путей. Ноды отличаются только кофициентом. Я, тот же пазл для встроеной картинки в универе за день набрал, а потом неделю допиливал но нормального приложения с нужными фичами. Учитывая что ТС, цитата "Я изучаю C#", то...

Цитата Сообщение от Usaga Посмотреть сообщение
может вы задачку попроще возьмёте?)
p.s. Можно выполнить как дипломную работу. В этом случае хотя бы можно пинать преподователя на возможность ревьювить код.
0
6219 / 2467 / 725
Регистрация: 11.04.2015
Сообщений: 3,987
Записей в блоге: 43
04.03.2018, 00:03 9
Romulus90, вот я C# вроде как изучил уже)) и хотя в трубопроводах ничего не смыслю, но раньше неплохо разбирался в электрических цепях. Вот если бы мне сейчас пришлось делать что-то подобное по электрическим цепям, то я, скорей всего, засел бы за изучение теории. Вот, например, нашел вот такую книжку Машинный анализ электронных схем (алгоритмы и вычислительные методы). По-моему достаточно просмотреть содержание, чтобы понять, что это задача, мягко говоря, непростая. Не знаю, возможно трубопроводы рассчитываются проще, но мне почему-то кажется, что если это и так, то ненамного проще. Принцип тот же: здесь ток течет по проводнику, там - вода по трубе; здесь разность потенциалов, там разность давлений; здесь падение напряжения на потребителе, там - падение давления и т. д.
Так что я думаю, что графическая реализация задачи - не самая сложная ее часть.
0
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 3
05.03.2018, 20:38  [ТС] 10
Благодарю всех за ответы и подсказки. Я понимаю, что это не простая задача, поэтому решил посоветоваться с профессионалами) Я не знал с какого места подойти к этой проблеме, сейчас, благодаря всем выше изложенным ответам, картина прорисовывается и понятно что изучать.
0
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
12.03.2018, 12:29 11
Я, возможно, проблему как-то не так понял, но что, если сделать следующим образом. Пусть будет двумерный массив 10х10 ячеек. Это и будет ваше поле, на котором размещаются элементы. Тогда в каждой ячейке будет хранится какой-то из элементов - клапан, трубопровод и тд. Все. Далее пробегаемся по элементам массива и считаем перепады давления в каждой ячейке, в зависимости от тех, которые рядом.
0
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
12.03.2018, 13:04 12
Chizel, это очень плохая реализация. Начиная с того что у вас завязка логики на отображение.
0
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
12.03.2018, 13:46 13
Цитата Сообщение от Wolfdp Посмотреть сообщение
Начиная с того что у вас завязка логики на отображение.
Поясните.
0
Эксперт .NET
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
12.03.2018, 14:16 14
Chizel, имеется в виду, что ваш совет исходит из того, как "схема" будет отображаться (квадратное поле, контролы), а не того, как она должны быть представлена в памяти программы и как с ней было бы удобнее всего работать (граф).
0
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
15.03.2018, 14:15 15
Usaga, если нужно будет написать шахматы, тоже откажетесь от использования массива 8х8?
0
Эксперт .NET
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
15.03.2018, 14:19 16
Chizel, вы серьёзно считаете, что это тоже самое?
0
46 / 79 / 6
Регистрация: 10.08.2013
Сообщений: 237
15.03.2018, 17:38 17
Chizel, я вообще не понимаю, что вы предлагаете делать. По-моему очевидно, что элементы в схеме могут быть соединены как угодно, а не обязательно соседние с соседними. И что вы будете делать, если у вас клапан из правого верхнего угла соединён с клапаном из левого нижнего?
0
Usaga
15.03.2018, 17:40
  #18

Не по теме:

Цитата Сообщение от rerf2010rerf Посмотреть сообщение
И что вы будете делать, если у вас клапан из правого верхнего угла соединён с клапаном из левого нижнего?
Очевидно, что уйдёт в BSOD.

0
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
16.03.2018, 07:59 19
rerf2010rerf, Usaga, каюсь, профдеформация, программировал контроллеры, а там все всегда слева направо и сверху вниз, поэтому, думаю, можно считать через массивы. Тут несколько другое, конечно же.
0
Эксперт .NET
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
16.03.2018, 08:06 20
Chizel, ничего страшного.
0
16.03.2018, 08:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2018, 08:06
Помогаю со студенческими работами здесь

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

Программа для рисования принципиальных электрических схем по госту
очень нужна програмка для того чтобы рисовать электрические схемы по госту помогите найти

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

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru