![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Задача:
//ну типа дипломная работа (и это на кафедре которая к программированию никак не отностися, разве что на одном с ними ФАКультете !!!) написать программу, иллюстрирующую работу РТК (типа Роботизированный Технологический комплекс), с возможностью рассчета оптимального алгоритма работы (в рамках технологической последовательности обработки детали) и моделирования в риалтайме работы РТК.... загвоздки: 1. структура РТК задается методом драг-енд-дропа, т.е. изначально не известно что попытается задать юзер ![]() 2. писать под РТ да еще и с анимацией... короче кроме флеша я ничего более удобного не нашел ![]() алгоритмы я уже написал, правда проверялись на Паскале, т.е. математика уже есть, осталось перебить ее на ФЛЕШ (желательно 5 или 6) Вот тут и начинаются проблемы!!!! кусок кода на паскале (описание типов, чисто тестовый код для проверки алгоритмов) ======================================================= type _flags = object working :boolean; finished :boolean; empty :boolean; finishtime :integer; end; _tools = object (_flags) origin :string; zCounter :byte; WorkTime :integer; MoveTo :integer; Install :integer; Insert :integer; Eject :integer; procedure TstartNewJOB; procedure TfinishJOB; procedure Tejecting; procedure TpassTime; end; _robot = object (_flags) worktime :integer; count :byte; {count of serving tools} point :array [0..20] of _tools; moveTable :array [0..20,0..20] of integer; outs :array [0..100] of integer; sJob :boolean; outCounter :byte; inCounter :byte; timer :integer; position :byte; zID :byte; {etap obrobki detali} target :byte; unloading :byte; loading :byte; procedure rPassTIME; procedure rInit; function rFindTarget:byte; procedure rStartNewJOB(startTarget:byte); procedure rDieHard; end; ======================================================= обратите внимание на свойство point у типа _robot это список обслуживаемых роботом железяк (станки конвеееры и т.п.) для решения данной задачи выгодно разбить сложный многороботный РТК на кучку простых - однороботных т.е. я создаю объект робот1 2,3, ... и т.д. который собственными методами решает свои задачи, остается только синхронизировать работу всех роботов... при попытке сделать то-же самое на Флешевых объектах происходит грандиозный облом: //описание первых 2х типов пропускаю, методов тоже...
_tools =
{
outFile :null,
working :false,
finished :false,
empty :false,
finishTime :null,
origin :null, //string
zCounter :null, //byte
WorkTime :null, //integer
MoveTo :null, //integer
tInstall :null, //integer
tInsert :null, //integer
tEject :null, //integer
TstartNewJob : function ()
{
this.finished = false;
this.workinf=true;
this.finishtime = this.workTime;
this.empty=false;
this.zCounter++;
},
TfinishJob : function ()
{
this.finished=true;
this.working=false;
this.finishTime=0;
this.empty=false;
},
TEjecting : function ()
{
this.finished=false;
this.working=false;
this.finishtime=0;
this.empty=true;
}
}
_robot =
{
WorkTime :null, //integer
count :null, //byte количество обслуживаемых единиц оборудования
point :new array(), //вариант new Array(_tools) вообще не проходит...
moveTable :new array([null],[null]),
outs :new array(null),
sJob :null, //boolean
outCounter :null, //byte
inCounter :null, //byte
timer :null, //integer
cPosition :null, //byte
zID :null, //byte, etap obrobki detali
rTarget :null, //byte
unloading :null, //byte
loading :null, //byte
}
// теперю попітаемся проверить что получилось:
robot1 = new Object(_robot);
robot2 = new Object(_robot);
//трабл первый и не последний
robot1.count = "robot 1"; //пофиг типы. главное - трабл
robot2.count = "robot 2";
trace (robot1.count);
!!!!!!!!!!!!!!!!!!!!!!
видим robot 2
та что? robot1 b robot2 не разные объекты ?!
причем появляется еще и хитрый _robot который == robot2 :((
мне нужны отдельные, полностью независымые экземпляры, а вместо них я получаю тупые ссылки на прототип :((
можно решить эту проблему ???
в принципе устрит и вариант каждый новый объект генерить с нуля, но как тогда задавать имена этих объектов???
//трабл 2
или как залабать массив объектов ???
qqq = new Array(_tools);
и обращения типа
qqq[2].origin="станок" не проходят :(
а вариант типа
mA = new Array();
t = new Object(_tools);
t.origin="sdfsdfs";
mA[1]=t;
t.origin="wete;lrjoyjthjltyhltjholjtojhtoyh";
mA[2]=t;
приводит к траблу №1, т.е. mA[1].origin== "wete;lrjoyjthjltyhltjholjtojhtoyh" :(
З.Ы. в принципе я могу использовать и мувики вместо математической модели, но тогда прога так тормозит... (
__________________
ушел в ruFlash... |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
Цитата:
robot1 = new _robot() robot2 = new _robot() Цитата:
tools = new Tools() qqq.push (tools) qqq[0].origin="станок" - в подробности твоего скрипта не вдавался, но примерно так... |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
на будущее:
не пугай людей тоннами скрипта. попробуй свести задачу к очень конкретному вопросу. потому как разбирать две тонны кода никому не прет ![]() |
![]() |
Часовой пояс GMT +4, время: 19:08. |
|
|
« Предыдущая тема | Следующая тема » |
|
|