Hi,
Does anyone know how to use 4DScript "AdvancedTransporter_PickAtom " to pick up?
I'm beginner. I read help but I can't understand how to use 4DScript
I'm trying to simulate an AGV transportation system.
I want to AGV Picks up Atom by shortest distance rule or AGV Picks up Atom by Largest queue rule .
It means after AGV(AdvancedTransporter) delivary product atom to queue atom(D2,D5,D6 in attached model), moves to the shortest distance queue atom(2,3,4 in attached model).
I don't know where can I use 4DScript "AdvancedTransporter_PickAtom " !
in Trigger on entry of queue (D2,D5,D6 in model)? or in Trigger on entry of AdvancedTransporter?
when I write this 4DScript, my transporter ends picking up.
AdvancedTransporter_PickAtom(Atombyname([Advanced Transporter 1], model), IndexMin(NrIC(in(1,Atombyname([Advanced Transporter 1], model))),AtomDistance(Atombyname([Advanced Transporter 1], model),in(1,Atombyname([Advanced Transporter 1], model)))), First(c)))
please help me and tell me how to write this 4DScript and where!
See the model I've attached for more information.
Regards,
Niloofar
AdvancedTransporter_PickAtom
AdvancedTransporter_PickAtom
- Attachments
-
- AGV21.mod
- (45.24 KiB) Downloaded 228 times
- HarryBunnik
- Posts: 362
- Joined: Monday 07 February, 2011 - 11:22
Re: AdvancedTransporter_PickAtom
Hello Niloofar,
I've made a few changes to your model to get it working. The most important is that I've checked the box on the tab "load", which allows the automatic loading. Now the discharger was trying to call the Transporter, but it wasn't allowed to react. Otherwise you really have to write a complete controls for the transporter, which is rather complicated and indeed involves a lot of 4D scripting.
And, just as an advise, the SendTo statement that is standing on the Trasnporter is working, but you can also write it as follows, which is easier to write and read, then nested if-statements:
I hope this helps you further!
Regards,
Harry
I've made a few changes to your model to get it working. The most important is that I've checked the box on the tab "load", which allows the automatic loading. Now the discharger was trying to call the Transporter, but it wasn't allowed to react. Otherwise you really have to write a complete controls for the transporter, which is rather complicated and indeed involves a lot of 4D scripting.
And, just as an advise, the SendTo statement that is standing on the Trasnporter is working, but you can also write it as follows, which is easier to write and read, then nested if-statements:
Code: Select all
Case(
WhichIsTrue(
InList(name(first(c)), [1-3], [3-3], [4-3], [5-3], [6-3], [7-3], [10-3]) > 0,
InList(name(first(c)), [1-2], [3-2], [5-2], [5-4], [7-2], [9-2], [10-2]) > 0,
InList(name(first(c)), [1-4], [2-4], [2-4], [3-4], [4-4], [6-4], [7-4], [8-4]) > 0
1 = 1
),
1,
2,
3,
3
)
Regards,
Harry