0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 3
|
|
1 | |
Конструктор принципиальных схем на C#02.03.2018, 07:24. Показов 3877. Ответов 20
Метки нет (Все метки)
Доброго времени суток! Я изучаю C# и хочу сделать конструктор принципиальных схем, но чтобы и рассчитывались схемы сразу.
Примерная суть в следующем: Будет набор неких блоков (задвижка, клапаны, насосы и т.д.), которые нужно будет размещать вручную на линии (условно трубопровод) и я не пойму как сделать так, чтобы была четкая последовательность от точки начала расчета, чтобы расчет схемы шел от точки начала расчета и по ходу движения среды... Ну для примера возьму кусочек схемы (см. рис1). На нем показаны 3 клапана, допустим проходя через каждый клапан поток теряет часть давления и мне нужно, чтобы нажав на кнопку например "Расчет" алгоритм бы понимал, что находится на линии такой то клапан и выполнял расчет и показывал результат. То же самое например если я захотел добавить или убрать клапан, то при перерасчете это так же учитывалось. Какие мысли были у меня по этому поводу: 1. Получать координаты элементов и сортировать по ним и таки образом делать расчет, но схема может ветвиться и занимать все пространство листа (мне кажется, что это не совсем корректно будет) 2. Жестко в параметрах каждого элемента задавать допустим номер, но тогда эта схема сложно редактироваться будет, если мне нужно будет добавить клапан в середину схемы, мне придется половину перенумеровывать... Может кто-либо с таким заморачивался и подскажет в каком направлении копать, что нужно почитать, какие темы? Я понимаю, что многого не знаю еще и может это тривиальная задача... Заранее спасибо.
0
|
02.03.2018, 07:24 | |
Ответы с готовыми решениями:
20
Графический конструктор гидравлических схем Редактор принципиальных схем на GTK+ Программа для рисования принципиальных схем Софт рисования принципиальных схем и атомных структур |
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
|
|
02.03.2018, 09:10 | 2 |
Romulus90, может вы задачку попроще возьмёте?)
0
|
02.03.2018, 14:45 | 3 |
Тривиальная. Схема следующая:
-- готовите N-ю сумму денег; -- заказываете прогу. А если серьезно -- такие проги довольно сложны для реализации даже знающим людям. Причем проблема еще в понимании формул и расчетов, вы то может и понимаете их, а вот пишущему человеку нужно обьяснить на пальцах. Закинуть некий графический єлемент на форму не сложно, сложно их связать в единую систему, плюс єти линии...
0
|
3462 / 2473 / 695
Регистрация: 02.08.2011
Сообщений: 6,704
|
|
02.03.2018, 14:56 | 4 |
У меня дежавю... Была похожая тема, где кто-то сказал что такие проги сложны, и где Storm23 за час-два наваял интересное и рабочее решение...
0
|
46 / 79 / 6
Регистрация: 10.08.2013
Сообщений: 237
|
|
02.03.2018, 14:57 | 5 |
Думаю, вам может быть полезно с теорией графом ознакомиться. В частности, почитайте про транспортные сети, задачи о нахождении потоков в них. Ваши клапаны будете моделировать узлами графа, ну и считайте потоки теперь.
1
|
02.03.2018, 15:06 | 6 |
IamRain,
Возьми и попробуй набрать следующее: расчет работы цепи питания из резисторов и батарейки. Для простоты -- кольцевой. С возможностью вносить свои резисторы (в идеале должен быть экспорт/импорт) и соответственно "батарейки". Плюс, в такой системе имеет значения длина соединений (вроде, могу ошибатся) что добавляет работы. Набрать прототип из двух хардкорных элементов и собрать полноценный проект две большие разницы.
0
|
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
|
|
02.03.2018, 16:01 | 7 |
Да. Это я ему сказал, что на это пару дней надо. А он за пару часов накидал. Там, правда, без рассчётов, просто графика.
1
|
02.03.2018, 16:44 | 8 |
Usaga,
ну, почти хардкод. Во первых, там линейная система с неким количеством путей. Ноды отличаются только кофициентом. Я, тот же пазл для встроеной картинки в универе за день набрал, а потом неделю допиливал но нормального приложения с нужными фичами. Учитывая что ТС, цитата "Я изучаю C#", то... p.s. Можно выполнить как дипломную работу. В этом случае хотя бы можно пинать преподователя на возможность ревьювить код.
0
|
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
|
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
|
|
12.03.2018, 13:46 | 13 |
0
|
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
|
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
|
0
|
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
|
|
16.03.2018, 07:59 | 19 |
rerf2010rerf, Usaga, каюсь, профдеформация, программировал контроллеры, а там все всегда слева направо и сверху вниз, поэтому, думаю, можно считать через массивы. Тут несколько другое, конечно же.
0
|
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
|
|
16.03.2018, 08:06 | 20 |
Chizel, ничего страшного.
0
|
16.03.2018, 08:06 | |
16.03.2018, 08:06 | |
Помогаю со студенческими работами здесь
20
составление законов Кирхгофа для принципиальных схем Программа для рисования принципиальных электрических схем по госту Программа для создания принципиальных схем с эмуляцией её работы Графический редактор, специализированный для построения схем электрических принципиальных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |