![]() |
|
|
![]()
|
|
| JackyFox |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 21.11.2007 Репутация: нет Всего: 7 |
Поступило задание сделать программу, реализующую программирование одной хитрой штуковины.
Штуковина шибко хитрая, но программировать её будут киповцы на произвольном языке релейной логики. Причем программирование должно быть выполнено в графическом виде: блок-схема собирается их логических элементов. Потом уже внутрях всё это преобразуется в прошивку, ну, и заливается в контроллер. Прошу совета, как лучше реализовать составление блок-схемы, чтобы потом не упереться рогом на середине разработки в какую-нибудь примитивную проблему, которая могла бы быть решена малой кровью при изначально ином подходе к реализации. У меня пока видится в таком виде: ![]() Элементы из левой панели либо перетаскиваются на DrawGrid, либо встраиваются методом «щелкнул по картинке, щелкнул в нужное место по схеме». Каждой ячейке соответствует элемент матрицы, в который заносится код логического элемента для дальнейшей генерации программы для контроллера. --------------------------- Та же картинка отдельно: Это сообщение отредактировал(а) JackyFox - 24.6.2009, 16:51 Присоединённый файл ( Кол-во скачиваний: 11 )
dragprog.png 6,50 Kb--------------------
У вас менее 250 сообщений, ссылки отключены |
|||
|
||||
| JackyFox |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 21.11.2007 Репутация: нет Всего: 7 |
Ваше молчание, товарищи, меня слегка настораживает.
Не знаю, что и думать: неужели я спросил полнейшую глупость? --------------------
У вас менее 250 сообщений, ссылки отключены |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 18 Всего: 154 |
у меня изображение не полностью отображается
|
|||
|
||||
| JackyFox |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 21.11.2007 Репутация: нет Всего: 7 |
Lazin, недавно такие глюки появились у Ipicture.
К сожалению, не могу выложить на imageshack или tynipic - прокся на работе их режет. --------------------
У вас менее 250 сообщений, ссылки отключены |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Поищи GUI для програмирования каких нибудь PLC. Многие из них поддерживают LD как входной язык и у них должен быть какой то ввод. Можно посмотреть, как оно сделано и подчерпнуть какие нибудь идеи.
Спрашивать тут, как сделать граф. редактор для LD совершенно бесполезно, т.к. тут собрались люди, которые явно никогда в своей жизни не станут использовать LD для програмирования (если только под страхом смертной казни |
|||
|
||||
| JackyFox |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 21.11.2007 Репутация: нет Всего: 7 |
xvr, LD - это не суть. Меня интересует, с какой стороны подойти к проектирование абстрактного графического редактора.
Я тут уже пораскинул... Вывод пока напрашивается один - надо юзать канву. За совет, в любом случае, спасибо. --------------------
У вас менее 250 сообщений, ссылки отключены |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 18 Всего: 154 |
думаю нужно начинать с программы, которая разбирает IL код и зашивает его куда нужно, после чего нужно написать граф. оболочку, в которой можно будет редактировать LD схемы, затем эти схемы конвертирвоать в IL и так далее...
|
|||
|
||||
| JackyFox |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 21.11.2007 Репутация: нет Всего: 7 |
Lazin, совершенно согласен. Только единственное, я совершенно не представляю, как делаются графические редакторы, ориентированные на работу с блок-схемами.
Что-то позволяющее рисовать палочки и кружочки я по книжке Архангельского сумею сообразить, но вот как блок-схемы строить - фантазии не хватает. Вот и прошу мастеров посоветовать может литературу какую или сходные проекты, подробное описанные в процессе реализации. Это сообщение отредактировал(а) JackyFox - 26.6.2009, 14:23 --------------------
У вас менее 250 сообщений, ссылки отключены |
|||
|
||||
| JackyFox |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 21.11.2007 Репутация: нет Всего: 7 |
Откопал наработку одного Delphi программиста под названием Drawing Objects - Version 3.1.1
Наработка может вот так: ![]() Буду курить исходники. --------------------
У вас менее 250 сообщений, ссылки отключены |
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Привет! Может быть это тебе поможет?
http://www.tmssoftware.com/site/diagram.asp Это сообщение отредактировал(а) vikaz - 26.6.2009, 14:42 -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| JackyFox |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 21.11.2007 Репутация: нет Всего: 7 |
vikaz, конечно, поможет! Спасибо! ;)
--------------------
У вас менее 250 сообщений, ссылки отключены |
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Как мне кажется, все зависит от того, насколько большими могут быть схемы. В том варианте, который предоставил ты, есть большой +, это простота разбивки всего проекта на простые части, т.к. там используется ячеечная системы. При работе с векторной графикой, я даже не могу представить, как научиться отслеживать, какие и как элементы соединены на листе!
-------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| JackyFox |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 21.11.2007 Репутация: нет Всего: 7 |
vikaz, у меня пока идея следующая: ограничить свободное позиционирование объектов, сделать его дискретным, т.е. осуществлять привязку к своеобразной сетке (как виджеты на странице iGoogle, к примеру). Плюс должен существовать глобальный массив расположения всех элементов, чтобы ничего не потерялось.
--------------------
У вас менее 250 сообщений, ссылки отключены |
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Я думаю, что это самый здравая логика....для такого проекта. -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| Lazin |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 18 Всего: 154 |
Я думаю здесь нужна иерархия классов, что-товроде:
далее, нужно как-то соединять объекты, соответственно, нам нужен интерфейс для реализации этой ф-ии, он может быть таким:
в принципе можно унаследовать интерфейс IInputPoint от IOutputPoint и тогда, в определении класса IInputPoint было бы на два метода меньше, но это идеологически не верно соответственно нужно реализовать класс LDObject
естественно, это просто небольшой набросок интерфейса приложения.. но общая идея должна быть понятна. Это самый простой и прямолинейный способ реализации, я считаю Объекты LDObject могут содержать множество входов и выходов, можно к любому входу подключить любой выход. В результате они должны образовать что-то вроде ациклического графа или дерева... Для генерации IL кода, нужно обойти все элементы дерева в определенном порядке. |
||||||
|
|||||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |