{Enterprise Dynamics startup information} if(StartingED, SoftStartED([])); {Model information} AddLayer([Main], 1, 1, 0); {Load required atoms} int011; int035([Queue], pDir([Atoms\Queue.atm])); int035([Source], pDir([Atoms\Source.atm])); int035([Warehouse], pDir([Atoms\Warehouse.atm])); int035([Destinator], pDir([Atoms\Destinator.atm])); int035([Dispatcher], pDir([Atoms\Dispatcher.atm])); int035([Network Node], pDir([Atoms\Network Node.atm])); int035([Node Manipulator], pDir([Atoms\Node Manipulator.atm])); int035([Network Controller], pDir([Atoms\Network Controller.atm])); int035([Advanced Transporter], pDir([Atoms\Advanced Transporter.atm])); int012; {Atom: Warehouse1} sets; AtomByName([Warehouse], Main); if(not(AtomExists), Error([Cannot find mother atom 'Warehouse'. Inheriting from BaseClass.])); CreateAtom(a, s, [], 1, false); int023([Warehouse1], 4605453, 240); Set(Icon(a), RegisterIcon(IconsDir([bmp\buffers\warehouse.bmp]), [warehouse])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); AddTexture( RegisterTexture(IconsDir([Bmp\Buffers\warehouse.bmp]), [warehouse.bmp], 128, 64, 255, 255, 0, 0, 0, 0), a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Warehouse.ico])); Set(DdbRec, [>t-node2:4.>t-node1:3.>t-network:1.]); SetChannels(1, 1); SetChannelRanges(1, 255, 0, 255); int001(232); int013(1, 0, true, false, 0, 0, [], []); SetLoc(28, 8, 0); SetSize(20, 2, 5); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 5); SetAtt(2, 20); SetAtt(3, 1); SetAtt(4, 1); SetExprAtt(5, [0]); SetExprAtt(6, [0]); SetExprAtt(7, [label([row],i)]); SetExprAtt(8, [label([column],i)]); SetExprAtt(9, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetExprAtt(10, [{.content(c)|Fifo (First In First Out).}content(c)]); SetExprAtt(11, [{.~1|~1~.}1]); SetExprAtt(12, [first(c)]); SetAtt(13, 0); SetAtt(14, 0); SetAtt(15, 1); SetAtt(16, 1); SetAtt(17, 1); int024; SetTable(5, 20); int015(0, 0, [ 1 2 3 4 5 ]); int015(1, 0, [1 ]); int015(2, 0, [2 ]); int015(3, 0, [3 ]); int015(4, 0, [4 ]); int015(5, 0, [5 ]); int015(6, 0, [6 ]); int015(7, 0, [7 ]); int015(8, 0, [8 ]); int015(9, 0, [9 ]); int015(10, 0, [10 ]); int015(11, 0, [11 ]); int015(12, 0, [12 ]); int015(13, 0, [13 ]); int015(14, 0, [14 ]); int015(15, 0, [15 ]); int015(16, 0, [16 ]); int015(17, 0, [17 ]); int015(18, 0, [18 ]); int015(19, 0, [19 ]); int015(20, 0, [20 ]); SetStatus(15); int018; {Atom: Warehouse2} sets; AtomByName([Warehouse], Main); if(not(AtomExists), Error([Cannot find mother atom 'Warehouse'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Warehouse2], 4605453, 240); Set(Icon(a), RegisterIcon(IconsDir([bmp\buffers\warehouse.bmp]), [warehouse])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); AddTexture( RegisterTexture(IconsDir([Bmp\Buffers\warehouse.bmp]), [warehouse.bmp], 128, 64, 255, 255, 0, 0, 0, 0), a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Warehouse.ico])); Set(DdbRec, [>t-node2:4.>t-node1:3.>t-network:1.]); SetChannels(1, 1); SetChannelRanges(1, 255, 0, 255); int001(233); int013(1, 0, true, false, 0, 0, [], []); SetLoc(28, 13, 0); SetSize(20, 2, 5); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 5); SetAtt(2, 20); SetAtt(3, 1); SetAtt(4, 1); SetExprAtt(5, [0]); SetExprAtt(6, [0]); SetExprAtt(7, [label([row],i)]); SetExprAtt(8, [label([column],i)]); SetExprAtt(9, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetExprAtt(10, [{.content(c)|Fifo (First In First Out).}content(c)]); SetExprAtt(11, [{.~1|~1~.}1]); SetExprAtt(12, [first(c)]); SetAtt(13, 0); SetAtt(14, 0); SetAtt(15, 1); SetAtt(16, 1); SetAtt(17, 1); int024; SetTable(5, 20); int015(0, 0, [ 1 2 3 4 5 ]); int015(1, 0, [1 ]); int015(2, 0, [2 ]); int015(3, 0, [3 ]); int015(4, 0, [4 ]); int015(5, 0, [5 ]); int015(6, 0, [6 ]); int015(7, 0, [7 ]); int015(8, 0, [8 ]); int015(9, 0, [9 ]); int015(10, 0, [10 ]); int015(11, 0, [11 ]); int015(12, 0, [12 ]); int015(13, 0, [13 ]); int015(14, 0, [14 ]); int015(15, 0, [15 ]); int015(16, 0, [16 ]); int015(17, 0, [17 ]); int015(18, 0, [18 ]); int015(19, 0, [19 ]); int015(20, 0, [20 ]); SetStatus(15); int018; {Atom: Warehouse4} sets; AtomByName([Warehouse], Main); if(not(AtomExists), Error([Cannot find mother atom 'Warehouse'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Warehouse4], 4605453, 240); Set(Icon(a), RegisterIcon(IconsDir([bmp\buffers\warehouse.bmp]), [warehouse])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); AddTexture( RegisterTexture(IconsDir([Bmp\Buffers\warehouse.bmp]), [warehouse.bmp], 128, 64, 255, 255, 0, 0, 0, 0), a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Warehouse.ico])); Set(DdbRec, [>t-node2:7.>t-node1:6.>t-network:1.]); SetChannels(1, 1); SetChannelRanges(1, 255, 0, 255); int001(234); int013(1, 0, true, false, 0, 0, [], []); SetLoc(28, 18, 0); SetSize(20, 2, 5); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 5); SetAtt(2, 20); SetAtt(3, 1); SetAtt(4, 1); SetExprAtt(5, [0]); SetExprAtt(6, [0]); SetExprAtt(7, [label([row],i)]); SetExprAtt(8, [label([column],i)]); SetExprAtt(9, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetExprAtt(10, [{.content(c)|Fifo (First In First Out).}content(c)]); SetExprAtt(11, [{.~1|~1~.}1]); SetExprAtt(12, [first(c)]); SetAtt(13, 0); SetAtt(14, 0); SetAtt(15, 1); SetAtt(16, 1); SetAtt(17, 1); int024; SetTable(5, 20); int015(0, 0, [ 1 2 3 4 5 ]); int015(1, 0, [1 ]); int015(2, 0, [2 ]); int015(3, 0, [3 ]); int015(4, 0, [4 ]); int015(5, 0, [5 ]); int015(6, 0, [6 ]); int015(7, 0, [7 ]); int015(8, 0, [8 ]); int015(9, 0, [9 ]); int015(10, 0, [10 ]); int015(11, 0, [11 ]); int015(12, 0, [12 ]); int015(13, 0, [13 ]); int015(14, 0, [14 ]); int015(15, 0, [15 ]); int015(16, 0, [16 ]); int015(17, 0, [17 ]); int015(18, 0, [18 ]); int015(19, 0, [19 ]); int015(20, 0, [20 ]); SetStatus(15); int018; {Atom: Destinator} sets; AtomByName([Destinator], Main); if(not(AtomExists), Error([Cannot find mother atom 'Destinator'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Destinator], 16711808, 96); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\queue.bmp]), [queue])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Destinator.ico])); Set(DdbRec, [>t-destinator:1.]); SetChannels(1, 4); SetChannelRanges(1, 255, 1, 255); int001(235); int013(1, 0, true, true, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); int013(3, 0, true, true, 0, 0, [], []); int013(4, 0, true, true, 0, 0, [], []); SetLoc(28, 3, 0); SetSize(5, 1, 0); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [1]); SetAtt(2, 10); SetAtt(3, 0); SetAtt(4, 0); SetExprAtt(5, [in(ic(c),c)]); SetAtt(6, 1); int024; int020(2, true, true); SetStatus(0); int018; {Atom: Destinator} sets; AtomByName([Destinator], Main); if(not(AtomExists), Error([Cannot find mother atom 'Destinator'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Destinator], 16711808, 96); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\queue.bmp]), [queue])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Destinator.ico])); Set(DdbRec, [>t-destinator:1.]); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(236); int013(1, 0, true, true, 0, 0, [], []); SetLoc(69, 12, 0); SetSize(5, 1, 0); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [1]); SetAtt(2, 10); SetAtt(3, 0); SetAtt(4, 0); SetExprAtt(5, [in(ic(c),c)]); SetAtt(6, 1); int024; int020(2, true, true); SetStatus(0); int018; {Atom: Dispatcher} sets; AtomByName([Dispatcher], Main); if(not(AtomExists), Error([Cannot find mother atom 'Dispatcher'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Dispatcher], 16711808, 96); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\queue.bmp]), [queue])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Dispatcher.ico])); Set(DdbRec, [>t-dispatcher:1.]); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(237); int013(1, 0, true, true, 0, 0, [], []); SetLoc(4, 15, 0); SetSize(5, 1, 0); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [{.If(Transporter_loadpermission(out(~1,c),in(3,cs)),~1,0)|1. Specific channel --> always send to channel ~1~.}If(Transporter_loadpermission(out(1,c),in(3,cs)),1,0)]); SetAtt(2, 0); SetExprAtt(3, [{.[no sort required]|1. FIFO --> first in first out..}[no sort required]]); SetAtt(4, 0); SetExprAtt(5, [in(message,c)]); SetExprAtt(6, [first(in(message,c))]); SetAtt(7, 1); SetAtt(8, 0); SetAtt(9, 0); SetAtt(10, 0); SetAtt(11, 0); SetAtt(12, 1); SetAtt(13, 0); SetAtt(14, 1); SetAtt(15, 0); SetAtt(16, 0); SetAtt(17, 0); SetAtt(18, 0); int024; SetStatus(0); int018; {Atom: Dispatcher} sets; AtomByName([Dispatcher], Main); if(not(AtomExists), Error([Cannot find mother atom 'Dispatcher'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Dispatcher], 16711808, 96); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\queue.bmp]), [queue])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Dispatcher.ico])); Set(DdbRec, [>t-dispatcher:1.]); SetChannels(4, 1); SetChannelRanges(1, 255, 1, 255); int001(238); int013(1, 0, true, true, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); int013(3, 0, true, true, 0, 0, [], []); int013(4, 0, true, true, 0, 0, [], []); SetLoc(43, 3, 0); SetSize(5, 1, 0); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [{.If(Transporter_loadpermission(out(~1,c),in(3,cs)),~1,0)|1. Specific channel --> always send to channel ~1~.}If(Transporter_loadpermission(out(1,c),in(3,cs)),1,0)]); SetAtt(2, 0); SetExprAtt(3, [{.[no sort required]|1. FIFO --> first in first out..}[no sort required]]); SetAtt(4, 0); SetExprAtt(5, [in(message,c)]); SetExprAtt(6, [first(in(message,c))]); SetAtt(7, 1); SetAtt(8, 0); SetAtt(9, 0); SetAtt(10, 0); SetAtt(11, 0); SetAtt(12, 1); SetAtt(13, 0); SetAtt(14, 1); SetAtt(15, 0); SetAtt(16, 0); SetAtt(17, 0); SetAtt(18, 0); int024; SetStatus(0); int018; {Atom: Source} sets; AtomByName([Source], Main); if(not(AtomExists), Error([Cannot find mother atom 'Source'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Source], 7168771, 240); Set(Icon(a), RegisterIcon(pDir([Media\Images\atoms\source.bmp]), [source])); AddModel3D( RegisterModel3D(Model3DDir([\source.wrl]), [source.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\source_Resized.wrl]), [Source_Resized.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Source.ico])); SetChannels(1, 1); SetChannelRanges(1, 1, 1, 255); int001(239); int013(1, 0, true, false, 0, 0, [], []); SetLoc(-1, 13, 0); SetSize(5, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [{.~1|~1~.}1]); SetExprAtt(2, [10]); SetExprAtt(3, [{.~1|~do(label([column],i):=dUniform(1,20),label([row],i):=dUniform(1,5),label([warehouse],i):=dUniform(1,4))~.}do(label([column],i):=dUniform(1,20),label([row],i):=dUniform(1,5),label([warehouse],i):=dUniform(1,4))]); SetExprAtt(4, [0]); SetExprAtt(5, [10]); SetExprAtt(6, [{.-1|1. Unlimited.}-1]); SetAtt(7, 4); int024; SetStatus(2); int018; {Atom: Queue} sets; AtomByName([Queue], Main); if(not(AtomExists), Error([Cannot find mother atom 'Queue'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Queue], 12615680, 240); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\queue.bmp]), [queue])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Queue.ico])); Set(DdbRec, [>t-node1:1.>t-network:1.]); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(240); int013(1, 0, true, false, 0, 0, [], []); SetLoc(4, 13, 0); SetSize(5, 2, 0); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [{.~1|~1~.}1]); SetAtt(2, 100); SetExprAtt(3, [0]); SetExprAtt(4, [0]); SetExprAtt(5, [{.content(c)|Fifo (First In First Out).}content(c)]); SetAtt(6, 1); SetExprAtt(7, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(8, 2); int024; SetStatus(13); int018; {Atom: Queue} sets; AtomByName([Queue], Main); if(not(AtomExists), Error([Cannot find mother atom 'Queue'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Queue], 12615680, 240); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\queue.bmp]), [queue])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Queue.ico])); Set(DdbRec, [>t-node1:8.>t-network:1.]); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(241); int013(1, 0, true, false, 0, 0, [], []); SetLoc(69, 13, 0); SetSize(5, 2, 0); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [{.~1|~1~.}1]); SetAtt(2, 1000); SetExprAtt(3, [0]); SetExprAtt(4, [0]); SetExprAtt(5, [{.content(c)|Fifo (First In First Out).}content(c)]); SetAtt(6, 1); SetExprAtt(7, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(8, 2); int024; SetStatus(13); int018; {Atom: N1-1} sets; AtomByName([Network Node], Main); if(not(AtomExists), Error([Cannot find mother atom 'Network Node'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([N1-1], 0, 6384); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\NetworkNode.ico])); Set(DdbRec, [>t-netreference:331449208.>t-node1:1.>t-node:1.]); SetChannels(0, 2); SetChannelRanges(0, 255, 0, 255); int001(244); int013(1, 0, true, true, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); SetLoc(9, 14, 0); SetSize(1, 1, 0); LockPosition(false); LockSize(true); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 1); SetAtt(2, 1); SetAtt(3, 1); SetAtt(4, 1); SetAtt(5, 0); SetAtt(6, 1); SetAtt(7, 1); int024; SetTable(1, 4); int015(0, 0, [ 1 ]); int015(1, 0, [1 100 ]); int015(2, 0, [2 0 ]); int015(3, 0, [3 0 ]); int015(4, 0, [4 0 ]); SetStatus(0); int018; {Atom: N1-2} sets; AtomByName([Network Node], Main); if(not(AtomExists), Error([Cannot find mother atom 'Network Node'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([N1-2], 0, 6384); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\NetworkNode.ico])); Set(DdbRec, [>t-netreference:331449208.>t-node1:2.>t-node:1.]); SetChannels(0, 3); SetChannelRanges(0, 255, 0, 255); int001(245); int013(1, 0, true, true, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); int013(3, 0, true, true, 0, 0, [], []); SetLoc(26, 14, 0); SetSize(1, 1, 0); LockPosition(false); LockSize(true); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 1); SetAtt(2, 1); SetAtt(3, 1); SetAtt(4, 2); SetAtt(5, 0); SetAtt(6, 1); SetAtt(7, 1); int024; SetTable(3, 4); int015(0, 0, [ 1 2 3 ]); int015(1, 0, [1 1 1 1 ]); int015(2, 0, [2 0 0 0 ]); int015(3, 0, [3 0 0 0 ]); int015(4, 0, [4 0 0 0 ]); SetStatus(0); int018; {Atom: N1-3} sets; AtomByName([Network Node], Main); if(not(AtomExists), Error([Cannot find mother atom 'Network Node'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([N1-3], 0, 6384); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\NetworkNode.ico])); Set(DdbRec, [>t-netreference:331449208.>t-node1:3.>t-node:1.]); SetChannels(0, 4); SetChannelRanges(0, 255, 0, 255); int001(246); int013(1, 0, true, true, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); int013(3, 0, true, true, 0, 0, [], []); int013(4, 0, true, true, 0, 0, [], []); SetLoc(26, 11, 0); SetSize(1, 1, 0); LockPosition(false); LockSize(true); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 1); SetAtt(2, 1); SetAtt(3, 1); SetAtt(4, 3); SetAtt(5, 0); SetAtt(6, 1); SetAtt(7, 1); int024; SetTable(2, 4); int015(0, 0, [ 1 2 ]); int015(1, 0, [1 1 1 ]); int015(2, 0, [2 0 0 ]); int015(3, 0, [3 0 0 ]); int015(4, 0, [4 0 0 ]); SetStatus(0); int018; {Atom: N1-4} sets; AtomByName([Network Node], Main); if(not(AtomExists), Error([Cannot find mother atom 'Network Node'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([N1-4], 0, 6384); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\NetworkNode.ico])); Set(DdbRec, [>t-netreference:331449208.>t-node1:4.>t-node:1.]); SetChannels(0, 4); SetChannelRanges(0, 255, 0, 255); int001(247); int013(1, 0, true, true, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); int013(3, 0, true, true, 0, 0, [], []); int013(4, 0, true, true, 0, 0, [], []); SetLoc(49, 11, 0); SetSize(1, 1, 0); LockPosition(false); LockSize(true); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 1); SetAtt(2, 1); SetAtt(3, 1); SetAtt(4, 4); SetAtt(5, 0); SetAtt(6, 1); SetAtt(7, 1); int024; SetTable(2, 4); int015(0, 0, [ 1 2 ]); int015(1, 0, [1 1 1 ]); int015(2, 0, [2 0 0 ]); int015(3, 0, [3 0 0 ]); int015(4, 0, [4 0 0 ]); SetStatus(0); int018; {Atom: N1-5} sets; AtomByName([Network Node], Main); if(not(AtomExists), Error([Cannot find mother atom 'Network Node'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([N1-5], 0, 6384); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\NetworkNode.ico])); Set(DdbRec, [>t-netreference:331449208.>t-node1:5.>t-node:1.]); SetChannels(0, 3); SetChannelRanges(0, 255, 0, 255); int001(248); int013(1, 0, true, true, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); int013(3, 0, true, true, 0, 0, [], []); SetLoc(49, 14, 0); SetSize(1, 1, 0); LockPosition(false); LockSize(true); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 1); SetAtt(2, 1); SetAtt(3, 1); SetAtt(4, 5); SetAtt(5, 0); SetAtt(6, 1); SetAtt(7, 1); int024; SetTable(3, 4); int015(0, 0, [ 1 2 3 ]); int015(1, 0, [1 1 1 1 ]); int015(2, 0, [2 0 0 0 ]); int015(3, 0, [3 0 0 0 ]); int015(4, 0, [4 0 0 0 ]); SetStatus(0); int018; {Atom: N1-6} sets; AtomByName([Network Node], Main); if(not(AtomExists), Error([Cannot find mother atom 'Network Node'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([N1-6], 0, 6384); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\NetworkNode.ico])); Set(DdbRec, [>t-netreference:331449208.>t-node1:6.>t-node:1.]); SetChannels(0, 4); SetChannelRanges(0, 255, 0, 255); int001(249); int013(1, 0, true, true, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); int013(3, 0, true, true, 0, 0, [], []); int013(4, 0, true, true, 0, 0, [], []); SetLoc(49, 17, 0); SetSize(1, 1, 0); LockPosition(false); LockSize(true); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 1); SetAtt(2, 1); SetAtt(3, 1); SetAtt(4, 6); SetAtt(5, 0); SetAtt(6, 1); SetAtt(7, 1); int024; SetTable(2, 4); int015(0, 0, [ 1 2 ]); int015(1, 0, [1 1 1 ]); int015(2, 0, [2 0 0 ]); int015(3, 0, [3 0 0 ]); int015(4, 0, [4 0 0 ]); SetStatus(0); int018; {Atom: N1-7} sets; AtomByName([Network Node], Main); if(not(AtomExists), Error([Cannot find mother atom 'Network Node'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([N1-7], 0, 6384); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\NetworkNode.ico])); Set(DdbRec, [>t-netreference:331449208.>t-node1:7.>t-node:1.]); SetChannels(0, 4); SetChannelRanges(0, 255, 0, 255); int001(250); int013(1, 0, true, true, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); int013(3, 0, true, true, 0, 0, [], []); int013(4, 0, true, true, 0, 0, [], []); SetLoc(26, 17, 0); SetSize(1, 1, 0); LockPosition(false); LockSize(true); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 1); SetAtt(2, 1); SetAtt(3, 1); SetAtt(4, 7); SetAtt(5, 0); SetAtt(6, 1); SetAtt(7, 1); int024; SetTable(2, 4); int015(0, 0, [ 1 2 ]); int015(1, 0, [1 1 1 ]); int015(2, 0, [2 0 0 ]); int015(3, 0, [3 0 0 ]); int015(4, 0, [4 0 0 ]); SetStatus(0); int018; {Atom: N1-8} sets; AtomByName([Network Node], Main); if(not(AtomExists), Error([Cannot find mother atom 'Network Node'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([N1-8], 0, 6384); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\NetworkNode.ico])); Set(DdbRec, [>t-netreference:331449208.>t-node1:8.>t-node:1.]); SetChannels(0, 2); SetChannelRanges(0, 255, 0, 255); int001(251); int013(1, 0, true, true, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); SetLoc(69, 14, 0); SetSize(1, 1, 0); LockPosition(false); LockSize(true); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 1); SetAtt(2, 1); SetAtt(3, 1); SetAtt(4, 8); SetAtt(5, 0); SetAtt(6, 1); SetAtt(7, 1); int024; SetTable(1, 4); int015(0, 0, [ 1 ]); int015(1, 0, [1 100 ]); int015(2, 0, [2 0 ]); int015(3, 0, [3 0 ]); int015(4, 0, [4 0 ]); SetStatus(0); int018; {Atom: Warehouse3} sets; AtomByName([Warehouse], Main); if(not(AtomExists), Error([Cannot find mother atom 'Warehouse'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Warehouse3], 4605453, 240); Set(Icon(a), RegisterIcon(IconsDir([bmp\buffers\warehouse.bmp]), [warehouse])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); AddTexture( RegisterTexture(IconsDir([Bmp\Buffers\warehouse.bmp]), [warehouse.bmp], 128, 64, 255, 255, 0, 0, 0, 0), a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Warehouse.ico])); Set(DdbRec, [>t-node2:7.>t-node1:6.>t-network:1.]); SetChannels(1, 1); SetChannelRanges(1, 255, 0, 255); int001(252); int013(1, 0, true, false, 0, 0, [], []); SetLoc(28, 14, 0); SetSize(20, 2, 5); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 5); SetAtt(2, 20); SetAtt(3, 1); SetAtt(4, 1); SetExprAtt(5, [0]); SetExprAtt(6, [0]); SetExprAtt(7, [label([row],i)]); SetExprAtt(8, [label([column],i)]); SetExprAtt(9, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetExprAtt(10, [{.content(c)|Fifo (First In First Out).}content(c)]); SetExprAtt(11, [{.~1|~1~.}1]); SetExprAtt(12, [first(c)]); SetAtt(13, 0); SetAtt(14, 0); SetAtt(15, 1); SetAtt(16, 1); SetAtt(17, 1); int024; SetTable(5, 20); int015(0, 0, [ 1 2 3 4 5 ]); int015(1, 0, [1 ]); int015(2, 0, [2 ]); int015(3, 0, [3 ]); int015(4, 0, [4 ]); int015(5, 0, [5 ]); int015(6, 0, [6 ]); int015(7, 0, [7 ]); int015(8, 0, [8 ]); int015(9, 0, [9 ]); int015(10, 0, [10 ]); int015(11, 0, [11 ]); int015(12, 0, [12 ]); int015(13, 0, [13 ]); int015(14, 0, [14 ]); int015(15, 0, [15 ]); int015(16, 0, [16 ]); int015(17, 0, [17 ]); int015(18, 0, [18 ]); int015(19, 0, [19 ]); int015(20, 0, [20 ]); SetStatus(15); int018; {Atom: Node Manipulator25} sets; AtomByName([Node Manipulator], Main); if(not(AtomExists), Error([Cannot find mother atom 'Node Manipulator'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Node Manipulator25], 32768, 3106); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\tedatom.bmp]), [ed])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\NodeManipulator.ico])); SetChannels(1, 1); SetChannelRanges(1, 1, 1, 1); int001(253); SetLoc(50, 1, 0); SetSize(2, 2, 0); LockPosition(false); LockSize(true); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 1); SetExprAtt(2, [do( setatt(3,0,c), var([atmLP], vbAtom), ForAtomTreeUnder( Model, do( atmLP := a, if( and( >(max(xAbsLoc(atmLP, Model), +(xabsloc(atmLP, Model), xsize(atmLP))), xabsloc(c, Model)), >(max(yabsloc(atmLP, Model), +(yabsloc(atmLP, Model), ysize(atmLP))), yabsloc(c, Model)), <(min(xabsloc(atmLP, Model), +(xabsloc(atmLP, Model), xsize(atmLP))), +(xabsloc(c, Model), xsize(c))), <(min(yabsloc(atmLP, Model), +(yabsloc(atmLP, Model), ysize(atmLP))), +(yabsloc(c, Model),ysize(c))), <>(atomid(atmLP),atomid(c)), not(ddb([t999-hidenodes],atmLP)) ), do( setatt(3,1,c), att([CurrentAtom], c) := ptv(atmLP) ) ) ) ) )]); SetAtt(3, 1); SetAtt(4, 1); SetAtt(5, 0); SetExprAtt(6, [if( atomexists(in(1, c)), connect(0, c, 1, c) )]); SetAtt(7, 1); SetAtt(8, 1); SetAtt(9, 1); SetAtt(10, 0); SetAtt(11, 1); SetAtt(12, 0); int024; SetStatus(0); int018; {Atom: Network Controller} sets; AtomByName([Network Controller], Main); if(not(AtomExists), Error([Cannot find mother atom 'Network Controller'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Network Controller], 0, 530528); Set(Icon(a), RegisterIcon(pDir([media\images\default.jpg]), [default.jpg])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\NetworkController.ico])); int001(254); SetLoc(34, 3, 0); SetSize(8, 2, 0); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 1); SetAtt(2, 1); SetAtt(3, 331454424); SetAtt(4, 335307476); SetAtt(5, 356557020); SetAtt(6, 1); SetAtt(7, 356558764); SetAtt(8, 356563684); SetAtt(9, 355496692); SetAtt(10, 355497420); int024; SetTable(8, 8); int015(0, 0, [ `N1-1` `N1-2` `N1-3` `N1-4` `N1-5` `N1-6` `N1-7` `N1-8` ]); int015(1, 0, [`N1-1` 1 ]); int015(2, 0, [`N1-2` 1 1 1 ]); int015(3, 0, [`N1-3` 1 1 ]); int015(4, 0, [`N1-4` 1 1 ]); int015(5, 0, [`N1-5` 1 1 1 ]); int015(6, 0, [`N1-6` 1 1 ]); int015(7, 0, [`N1-7` 1 1 ]); int015(8, 0, [`N1-8` 1 ]); SetStatus(0); int018; {Atom: Distance Table} sets; BaseClass; CreateAtom(a, s, [], 1, false); int023([Distance Table], 0, 3264); Set(Icon(a), RegisterIcon(pDir([media\images\default.jpg]), [default.jpg])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(0); int001(255); SetSize(1, 1, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); int024; SetTable(8, 8); int015(0, 0, [ `N1-1` `N1-2` `N1-3` `N1-4` `N1-5` `N1-6` `N1-7` `N1-8` ]); int015(1, 0, [`N1-1` 0 17 20 43 46 43 20 66 ]); int015(2, 0, [`N1-2` 17 0 3 26 29 26 3 49 ]); int015(3, 0, [`N1-3` 20 3 0 23 26 29 6 46 ]); int015(4, 0, [`N1-4` 43 26 23 0 3 6 29 23 ]); int015(5, 0, [`N1-5` 46 29 26 3 0 3 26 20 ]); int015(6, 0, [`N1-6` 43 26 29 6 3 0 23 23 ]); int015(7, 0, [`N1-7` 20 3 6 29 26 23 0 46 ]); int015(8, 0, [`N1-8` 66 49 46 23 20 23 46 0 ]); SetStatus(0); int018; {Atom: Node Table} sets; BaseClass; CreateAtom(a, Up(s), [], 1, false); int023([Node Table], 0, 3264); Set(Icon(a), RegisterIcon(pDir([media\images\default.jpg]), [default.jpg])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(0); int001(256); SetSize(1, 1, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); int024; SetTable(8, 8); int015(0, 0, [ `N1-1` `N1-2` `N1-3` `N1-4` `N1-5` `N1-6` `N1-7` `N1-8` ]); int015(1, 0, [`N1-1` 1 1 2 3 4 7 2 5 ]); int015(2, 0, [`N1-2` 2 2 2 3 4 7 2 5 ]); int015(3, 0, [`N1-3` 2 3 3 3 4 5 2 5 ]); int015(4, 0, [`N1-4` 2 3 4 4 4 5 2 5 ]); int015(5, 0, [`N1-5` 2 3 4 5 5 5 6 5 ]); int015(6, 0, [`N1-6` 2 7 4 5 6 6 6 5 ]); int015(7, 0, [`N1-7` 2 7 2 3 6 7 7 5 ]); int015(8, 0, [`N1-8` 2 3 4 5 8 5 6 8 ]); SetStatus(0); int018; {Atom: Pointer Table} sets; BaseClass; CreateAtom(a, Up(s), [], 1, false); int023([Pointer Table], 0, 3264); Set(Icon(a), RegisterIcon(pDir([media\images\default.jpg]), [default.jpg])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(0); SetChannels(0, 8); int001(257); int013(1, 0, true, true, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); int013(3, 0, true, true, 0, 0, [], []); int013(4, 0, true, true, 0, 0, [], []); int013(5, 0, true, true, 0, 0, [], []); int013(6, 0, true, true, 0, 0, [], []); int013(7, 0, true, true, 0, 0, [], []); int013(8, 0, true, true, 0, 0, [], []); SetSize(1, 1, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); int024; SetTable(8, 1); int015(0, 0, [ `N1-1` `N1-2` `N1-3` `N1-4` `N1-5` `N1-6` `N1-7` `N1-8` ]); int015(1, 0, [1 331167608 346239064 346240480 346242320 331445336 331447344 335253384 335255252 ]); SetStatus(0); int018; {Atom: Angle Table} sets; BaseClass; CreateAtom(a, Up(s), [], 1, false); int023([Angle Table], 0, 3264); Set(Icon(a), RegisterIcon(pDir([media\images\default.jpg]), [default.jpg])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(0); int001(258); SetSize(1, 1, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); int024; SetTable(8, 8); int015(0, 0, [ `Angle Table` `Angle Table` `Angle Table` `Angle Table` `Angle Table` `Angle Table` `Angle Table` `Angle Table` ]); int015(1, 0, [`Angle Table` ]); int015(2, 0, [`Angle Table` ]); int015(3, 0, [`Angle Table` ]); int015(4, 0, [`Angle Table` ]); int015(5, 0, [`Angle Table` ]); int015(6, 0, [`Angle Table` ]); int015(7, 0, [`Angle Table` ]); int015(8, 0, [`Angle Table` ]); SetStatus(0); int018; {Atom: Atom Table} sets; BaseClass; CreateAtom(a, Up(s), [], 1, false); int023([Atom Table], 0, 3264); Set(Icon(a), RegisterIcon(pDir([media\images\default.jpg]), [default.jpg])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(0); SetChannels(0, 6); int001(259); int013(1, 0, true, true, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); int013(3, 0, true, true, 0, 0, [], []); int013(4, 0, true, true, 0, 0, [], []); int013(5, 0, true, true, 0, 0, [], []); int013(6, 0, true, true, 0, 0, [], []); SetSize(1, 1, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); int024; SetTable(6, 2); int015(0, 0, [ `Warehouse1` `Warehouse2` `Warehouse4` `Queue` `Queue` `Warehouse3` ]); int015(1, 0, [`Pointer Value` 331730664 331471268 331465212 331474736 331432872 333947056 ]); int015(2, 0, [`Connected Node` 3 3 6 1 8 6 ]); SetStatus(0); int018; {Atom: Battery Pointer Table} sets; BaseClass; CreateAtom(a, Up(s), [], 1, false); int023([Battery Pointer Table], 0, 3264); Set(Icon(a), RegisterIcon(pDir([media\images\default.jpg]), [default.jpg])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(0); int001(260); SetSize(1, 1, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); int024; SetStatus(0); int018; {Atom: Battery Distance Table} sets; BaseClass; CreateAtom(a, Up(s), [], 1, false); int023([Battery Distance Table], 0, 3264); Set(Icon(a), RegisterIcon(pDir([media\images\default.jpg]), [default.jpg])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(0); int001(261); SetSize(1, 1, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); int024; SetStatus(0); int018; Up; {Atom: Product} sets; BaseClass; CreateAtom(a, Up(s), [], 1, false); int023([Product], 12615680, 73809); Set(Icon(a), RegisterIcon(IconsDir([Png\products\product.png]), [product], 1, 1, 16777215, 255, 255, false, 0)); AddModel3D( RegisterModel3D(Model3DDir([\box-closed.wrl]), [box-closed.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\box-opened.wrl]), [box-opened.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\pallet-wood.wrl]), [pallet-wood.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\pallet-plastic.wrl]), [pallet-plastic.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\oildrum.wrl]), [oildrum.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\crate.wrl]), [crate.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Product.ico])); Set(Info, [A general product. General ----------- Put a product in your model and connect it's central channel with the input channel of a source to generate multiple instances of the product during running. Notes: --------- For cylinder shaped, horizontally oriented 3D icons set ySize equal to zSize. For cylinder shaped, vertically oriented 3D icons set xSize equal to ySize. For sphere set xSize equal to ySize and zSize. Last revision: ------------------ September 27, 2003 ]); Set(DdbRec, [>drawysize:1.>drawxsize:1.>t-nodestroy:1.]); int001(262); SetLoc(-3, 13, 0); SetSize(1, 1, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); CreateAttributes(2); SetAttributeName(r(1), [Icon3D]); SetAttributeName(r(2), [Hide2DIcon]); SetAtt(r(1), 11); SetAtt(r(2), 1); int024; Set(OnCreation, [{ In the OnInit event handler some edit fields are registered. } { This is ok for the product in the library tree, but not for the } { products in the model, so erase the OnInit expression. } Set(OnInit, []) ]); Set(OnReset, [If( Label( [t-nodestroy] , c) = 0, DestroyAtom ) ]); Set(OnUser, [Do( { Delete any current instances of this form.} GuiDestroy([Product]), { Register the GUI-form for this atom.} GuiRegister(PDir([\Atoms\Product.gui]), 1), { Show the GUI-form.} GuiCreate([Product], [Product], 0, c, 0, 1) ) ]); Set(On2DDraw, [if( c.DrawFlag, {--External atom(s) control product rotationas--} do( {--Variables for rotationas in order to compensate change of transportation direction--} RotateCoords(c.DrawRotationas, 0, 0, 1), {--Variables for translation in order to compensate change of transportation direction--} TranslateCoords(c.DrawXtranslate, c.DrawYtranslate, 0), {--Rotated shape--} dishape(0, 0 ,c.DrawXsize, c.DrawYsize, 0.01, ColorBlack, color(c)) ), {--Standard--} do( c.DrawXsize := xSize(c), c.DrawYsize := ySize(c), diBmp(0, 0, Hide2DIcon * Icon(c), 1, 5) ) ) ]); Set(On3DDraw, [do( if( {--Product rotationas has been changed by external atom (e.g. Corner Transfer Unit)--} c.DrawFlag, do( {--Variables for rotationas in order to compensate change of transportation direction--} RotateCoords(c.DrawRotationas,0,0,1), {--Variables for translation in order to compensate change of transportation direction--} TranslateCoords(c.DrawXtranslate, c.DrawYtranslate,0) ), {--Standard--} do( c.DrawXsize := xSize(c), c.DrawYsize := ySize(c) ) ), Case( Icon3D, {** Cube **} di3DBox(0, 0, 0, c.DrawXsize, c.DrawYsize, zSize, Color), {** Picture Cube **} di3DBox(0, 0, 0, c.DrawXsize, c.DrawYsize, zSize, Color, 0, 0, Icon, 0, 100, 100), {** Cylinder Horizontal **} Do( c.CenterPoint := Max(c.DrawYsize / 2, zSize / 2), Cylinder(0, c.CenterPoint, c.CenterPoint, c.DrawXsize, 360, c.CenterPoint, 0, 0, 0, Color) ), {** Cylinder Vertical **} Do( c.CenterPoint := Max(c.DrawXsize / 2, c.DrawYsize / 2), Cylinder(c.CenterPoint, c.CenterPoint, 0, zSize, 360, c.CenterPoint, 0, 90, 0, Color) ), {** Ball **} Do( c.CenterPoint := Max(c.DrawXsize / 2, Max(c.DrawYsize / 2, zSize / 2)), Ball( c.CenterPoint, c.CenterPoint, c.CenterPoint, c.CenterPoint, 180, 360, 0, 0, 0, Color) ), {** Cone **} Do( c.CenterPoint := Max(c.DrawXsize, c.DrawYsize), Cone(c.CenterPoint / 2, c.CenterPoint / 2, 0, zSize, c.CenterPoint / 2, 0, 0, 90, 0, Color) ), {** Barrel Horizontal **} Do( c.CenterPoint := Max(c.DrawYsize / 2, zSize / 2), Cylinder(0, c.CenterPoint, c.CenterPoint, c.DrawXsize, 360, c.CenterPoint, 0, 0, 0, Color), Cone(0, c.CenterPoint, c.CenterPoint, 0, c.CenterPoint, 0, 0, 0, 0, Color), Cone(c.DrawXsize, c.CenterPoint, c.CenterPoint, 0, c.CenterPoint, 0, 0, 0, 0, Color) ), {** Barrel Vertical **} Do( c.CenterPoint := Max(c.DrawXsize / 2, c.DrawYsize / 2), Cylinder(c.CenterPoint, c.CenterPoint, 0, zSize, 360, c.CenterPoint, 0, 90, 0, Color), Cone(c.CenterPoint, c.CenterPoint, zSize, 0, c.CenterPoint, 0, 0, 90, 0, Color), Cone(c.CenterPoint, c.CenterPoint, 0, 0, c.CenterPoint, 0, 0, 90, 0, Color) ), {** Pallet **} Do( di3DBox(0, 0, 0, c.DrawXsize, 0.1, zSize - 0.05, Color), di3DBox(0, /( c.DrawYsize, 2) - 0.05, 0, c.DrawXsize, 0.1, zSize - 0.05, Color), di3DBox(0, c.DrawYsize - 0.1, 0, c.DrawXsize, 0.1, zSize - 0.05, Color), c.CenterPoint := c.DrawXsize / 5, Repeat( 5, di3DBox(Count * c.CenterPoint, 0, zSize - 0.05, -0.1, c.DrawYsize, 0.05, Color) ) ), {** Simple Person **} Do( c.CenterPoint := c.DrawYsize / 2, {head} Ball( 0, c.CenterPoint, 1.8, 0.1, 180, 360, 0, -90 ,0, 7846395), {neck} Cylinder(0, c.CenterPoint, 1.65, 0.1, 360, 0.05, 0, 90, 0, 7846395), {shoulders}EllipseCone(0, c.CenterPoint, 1.52, 0.15, 360, 0.08, 0.05, 0.12, 0.2, 0, 90, 0, Color), {arm 1} Cone(0, 0.15 + c.CenterPoint, 1.5, 0.5, 0.05, 0.02, 20, -80, 0, Color), {arm 2} Cone(0, -0.15 + c.CenterPoint, 1.5, 0.5, 0.05, 0.02, 20, -80, 0, Color), {hand 1} Cone(0.08, -0.12 + c.CenterPoint, 1.02, 0.1, 0.02, 0.02, 20, -80, 0, 7846395), {hand 2} Cone(0.08, 0.18 + c.CenterPoint, 1.02, 0.1, 0.02, 0.02, 20, -80, 0, 7846395), {body} EllipseCone(0,c.CenterPoint, 1.07, 0.45, 360, 0.12, 0.2, 0.08, 0.1, 0, 90, 0, Color), {waist} EllipseCone(0,c.CenterPoint, 0.92, 0.15, 360, 0.08, 0.1, 0.11, 0.15, 0, 90, 0, ColorGray), {leg 1} Cone(0, 0.07 + c.CenterPoint, 0, 0.92, 0.03, 0.08, 0, 90, 0, ColorGray), {leg 2} Cone(0, -0.07 + c.CenterPoint, 0, 0.92, 0.03, 0.08, 0, 90, 0, ColorGray), {foot 1} EllipseCone(0, 0.07 + c.CenterPoint, 0,0.2, 180, 0.01, 0.03, 0.04, 0.05, 0, 0, 0, ColorBlack), {foot 2} EllipseCone(0, -0.07 + c.CenterPoint, 0, 0.2, 180, 0.01, 0.03, 0.04, 0.05, 0, 0, 0, ColorBlack) ), {** Closed Carton Box **} DrawModel3D(Model3D(1, c), 0, 0, 0, c.DrawXsize, c.DrawYsize, zSize), {** Open Carton Box **} DrawModel3D(Model3D(2, c), 0, 0, 0, c.DrawXsize, c.DrawYsize, zSize), {** Pallet - Wood **} DrawModel3D(Model3D(3, c), 0, 0, 0, c.DrawXsize, c.DrawYsize, zSize), {** Pallet - Plastic **} DrawModel3D(Model3D(4, c), 0, 0, 0, c.DrawXsize, c.DrawYsize, zSize), {** Oildrum **} DrawModel3D(Model3D(5, c), 0, 0, 0, c.DrawXsize, c.DrawYsize, zSize), {** Crate **} DrawModel3D(Model3D(6, c), 0, 0, 0, c.DrawXsize, c.DrawYsize, zSize) ) ) ]); SetStatus(0); int018; {Atom: Advanced Transporter23} sets; AtomByName([Advanced Transporter], Main); if(not(AtomExists), Error([Cannot find mother atom 'Advanced Transporter'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Advanced Transporter23], 767720, 66675); Set(Icon(a), RegisterIcon(IconsDir([Bmp\Transp\trns1001.bmp]), [trns1001.bmp], 1, 0, 0, 0, 0, false, 0)); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Transporter2.ico])); Set(DdbRec, [>t-start:1.>t-ic:1.>drivingoffset:1.>t-turntime:4.77083202219527E-16.>n4:7.>t-dest:4.>previousedstnode:1.>d4:20.>d2:20.>d3:43.>d1:43.>n3:6.>n2:2.>n1:1.>t-transporter:1.]); SetChannels(3, 4); SetChannelRanges(3, 3, 4, 4); int001(337); int013(1, 0, true, false, 0, 0, [Product Origin], [Product Destination]); int013(2, 0, true, false, 1, 1, [Current goal (Origin or Destination)], [Next network node on path]); int013(3, 0, true, false, 1, 1, [Do not connect], [Previous network node on path]); int013(4, 0, true, false, 0, 0, [], [Link to network]); SetLoc(9.5, 14, 0); SetSize(3, 2, 1); LockPosition(false); LockSize(true); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 0); SetAtt(2, 1); SetAtt(3, 9.5); SetAtt(4, 14); SetAtt(5, 0); SetAtt(6, 1); SetExprAtt(7, [4]); SetExprAtt(8, [1]); SetExprAtt(9, [1]); SetAtt(10, 0); SetAtt(11, 1); SetExprAtt(12, [{.if(ddb([~1],rank(~2,c))<=0,~3,min(ddb([~1],rank(~2,c)),nroc(out(1,c))))|7. By label value (direct): the channel number is written directly on the label named ~warehouse~ of the ~1~st atom in the queue. If the label value is 0 then send to channel ~1~..}if(ddb([warehouse],rank(1,c))<=0,1,min(ddb([warehouse],rank(1,c)),nroc(out(1,c))))]); SetExprAtt(13, [0]); SetExprAtt(14, [0]); SetExprAtt(15, [1]); SetExprAtt(16, [0]); SetExprAtt(17, [0]); SetAtt(18, 331465212); SetExprAtt(19, [{.label([~1],first(in(2,c)))|2. Atom label (for picking) --> the offset is found on the label ~column~ of the first ranked atom of the destination..}label([column],first(in(2,c)))]); SetExprAtt(20, [{.yabsloc(c,model)-yabsloc(in(2,c),model)|3. Horizontal line --> the transporter travels in a horizontal line. ~Only use this option to define the Y offsets!~.}yabsloc(c,model)-yabsloc(in(2,c),model)]); SetExprAtt(21, [{.label([~1],first(in(2,c)))|2. Atom label (for picking) --> the offset is found on label ~row~ of the atom to be placed..}label([row],first(in(2,c)))]); SetExprAtt(22, [{.~1|~label([column],in(3,c))-1~.}label([column],in(3,c))-1]); SetExprAtt(23, [{.yabsloc(c,model)-yabsloc(in(2,c),model)|3. Horizontal line --> the transporter travels in a horizontal line. ~Only use this option to define the Y offsets!~.}yabsloc(c,model)-yabsloc(in(2,c),model)]); SetExprAtt(24, [{.~1|~label([row],in(3,c))-1~.}label([row],in(3,c))-1]); SetAtt(25, 1); SetAtt(26, 1); SetAtt(27, 1); SetTextAtt(28, [LabelName]); SetAtt(29, 0); SetAtt(30, 0); SetAtt(31, 1); SetAtt(32, 1); SetAtt(33, 0); SetAtt(34, 0); SetAtt(35, 1); SetAtt(36, 0); SetAtt(37, 115.659307320434); SetExprAtt(38, [0.5]); SetAtt(39, 0); SetAtt(40, 0); SetExprAtt(41, [0]); SetAtt(42, 0); SetAtt(43, 0); SetAtt(44, 331454424); SetAtt(45, 335307476); SetAtt(46, 356557020); SetAtt(47, 331449208); SetAtt(48, 3); SetAtt(49, 0); SetAtt(50, 30); SetAtt(51, 0); SetAtt(52, 0); SetAtt(53, 0); SetAtt(54, 0); SetTextAtt(55, [LabelName]); SetAtt(56, 1); SetAtt(57, 1); SetAtt(58, 0); SetAtt(59, 0); SetTextAtt(60, [N1-1]); SetAtt(61, 1); SetAtt(62, 0); SetExprAtt(63, [{.if(att([angledifference],c)>~1,~3,~2)|2. Use two different corner speeds: if road angle is between min.angle and ~50~°,choose speed of ~1.5~ m/s, if angle is larger then choose ~0.5~ m/s.}if(att([angledifference],c)>50,0.5,1.5)]); SetAtt(64, 0); SetAtt(65, 0); SetAtt(66, 0); SetAtt(67, 10); SetAtt(68, 356558764); SetAtt(69, 0); SetExprAtt(70, [750]); SetExprAtt(71, [{.~1|1. Constant: ~50~ Ah.}50]); SetExprAtt(72, [{.~1|1. Constant: ~100~ Ah.}100]); SetExprAtt(73, [10]); SetExprAtt(74, [20]); SetAtt(75, 750); SetAtt(76, 100); SetAtt(77, 0); SetTextAtt(78, [***]); SetExprAtt(79, [0]); SetAtt(80, 0); SetAtt(81, 331737196); SetAtt(82, 1); SetAtt(83, 356563684); SetAtt(84, 355496692); SetAtt(85, 355497420); SetAtt(86, 0); SetAtt(87, 0); SetExprAtt(88, [{.~1|1. Constant: ~100~ Ah.}100]); SetExprAtt(89, [{.~1|1. Constant: ~10~ Ah.}10]); SetExprAtt(90, [{.~1|1. Constant: ~100~ Ah.}100]); SetAtt(91, 0); SetAtt(92, 0); SetTextAtt(93, [***]); SetAtt(94, 5000); int024; SetStatus(1); int018; {Atom: Advanced Transporter24} sets; AtomByName([Advanced Transporter], Main); if(not(AtomExists), Error([Cannot find mother atom 'Advanced Transporter'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Advanced Transporter24], 767720, 66675); Set(Icon(a), RegisterIcon(IconsDir([Bmp\Transp\trns1001.bmp]), [trns1001.bmp], 1, 0, 0, 0, 0, false, 0)); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Transporter2.ico])); Set(DdbRec, [>t-start:1.>drivingoffset:1.>n4:7.>t-dest:1.>previousedstnode:8.>d4:46.>d2:46.>d3:23.>d1:23.>n3:6.>n2:5.>n1:8.>t-transporter:1.]); SetChannels(3, 4); SetChannelRanges(3, 3, 4, 4); int001(338); int013(1, 0, true, false, 0, 0, [Product Origin], [Product Destination]); int013(2, 0, true, false, 1, 1, [Current goal (Origin or Destination)], [Next network node on path]); int013(3, 0, true, false, 1, 1, [Do not connect], [Previous network node on path]); int013(4, 0, true, false, 0, 0, [], [Link to network]); SetLoc(69.5, 14, 0); SetSize(3, 2, 1); LockPosition(false); LockSize(true); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 0); SetAtt(2, 1); SetAtt(3, 69.5); SetAtt(4, 14); SetAtt(5, 0); SetAtt(6, 1); SetExprAtt(7, [3]); SetExprAtt(8, [1]); SetExprAtt(9, [1]); SetAtt(10, 0); SetAtt(11, 1); SetExprAtt(12, [{.~1|1. Specific channel --> Always send to channel ~1~.}1]); SetExprAtt(13, [0]); SetExprAtt(14, [0]); SetExprAtt(15, [1]); SetExprAtt(16, [0]); SetExprAtt(17, [0]); SetAtt(18, 333947056); SetExprAtt(19, [{.label([~1],first(in(2,c)))|2. Atom label (for picking) --> the offset is found on the label ~column~ of the first ranked atom of the destination..}label([column],first(in(2,c)))]); SetExprAtt(20, [{.yabsloc(c,model)-yabsloc(in(2,c),model)|3. Horizontal line --> the transporter travels in a horizontal line. ~Only use this option to define the Y offsets!~.}yabsloc(c,model)-yabsloc(in(2,c),model)]); SetExprAtt(21, [{.label([~1],first(in(2,c)))|2. Atom label (for picking) --> the offset is found on label ~row~ of the atom to be placed..}label([row],first(in(2,c)))]); SetExprAtt(22, [{.label([~1],i)|2. Atom label (for placing) --> the offset is found on label ~column~ of the atom to be picked or placed..}label([column],i)]); SetExprAtt(23, [{.yabsloc(c,model)-yabsloc(in(2,c),model)|3. Horizontal line --> the transporter travels in a horizontal line. ~Only use this option to define the Y offsets!~.}yabsloc(c,model)-yabsloc(in(2,c),model)]); SetExprAtt(24, [{.label([~1],i)|2. Atom label (for placing) --> the offset is found on the label ~row~ of the first ranked atom of the destination..}label([row],i)]); SetAtt(25, 1); SetAtt(26, 1); SetAtt(27, 1); SetTextAtt(28, [LabelName]); SetAtt(29, 0); SetAtt(30, 0); SetAtt(31, 1); SetAtt(32, 1); SetAtt(33, 0); SetAtt(34, 0); SetAtt(35, 1); SetAtt(36, 0); SetAtt(37, 105.08087986864); SetExprAtt(38, [0.5]); SetAtt(39, 0); SetAtt(40, 0); SetExprAtt(41, [0]); SetAtt(42, 0); SetAtt(43, 0); SetAtt(44, 331454424); SetAtt(45, 335307476); SetAtt(46, 356557020); SetAtt(47, 331449208); SetAtt(48, 3); SetAtt(49, 0); SetAtt(50, 30); SetAtt(51, 0); SetAtt(52, 0); SetAtt(53, 0); SetAtt(54, 0); SetTextAtt(55, [LabelName]); SetAtt(56, 1); SetAtt(57, 1); SetAtt(58, 0); SetAtt(59, 0); SetTextAtt(60, [N1-8]); SetAtt(61, 1); SetAtt(62, 0); SetExprAtt(63, [{.if(att([angledifference],c)>~1,~3,~2)|2. Use two different corner speeds: if road angle is between min.angle and ~50~°,choose speed of ~1.5~ m/s, if angle is larger then choose ~0.5~ m/s.}if(att([angledifference],c)>50,0.5,1.5)]); SetAtt(64, 0); SetAtt(65, 0); SetAtt(66, 0); SetAtt(67, 10); SetAtt(68, 356558764); SetAtt(69, 0); SetExprAtt(70, [750]); SetExprAtt(71, [{.~1|1. Constant: ~50~ Ah.}50]); SetExprAtt(72, [{.~1|1. Constant: ~100~ Ah.}100]); SetExprAtt(73, [10]); SetExprAtt(74, [20]); SetAtt(75, 750); SetAtt(76, 100); SetAtt(77, 0); SetTextAtt(78, [***]); SetExprAtt(79, [0]); SetAtt(80, 0); SetAtt(81, 331737832); SetAtt(82, 1); SetAtt(83, 356563684); SetAtt(84, 355496692); SetAtt(85, 355497420); SetAtt(86, 0); SetAtt(87, 0); SetExprAtt(88, [{.~1|1. Constant: ~100~ Ah.}100]); SetExprAtt(89, [{.~1|1. Constant: ~10~ Ah.}10]); SetExprAtt(90, [{.~1|1. Constant: ~100~ Ah.}100]); SetAtt(91, 0); SetAtt(92, 0); SetTextAtt(93, [***]); SetAtt(94, 5000); int024; SetStatus(1); int018; Up; int014(1, 232, 1, 238, 0); int014(1, 235, 1, 232, 0); int014(1, 233, 2, 238, 0); int014(2, 235, 1, 233, 0); int014(1, 234, 4, 238, 0); int014(4, 235, 1, 234, 0); int014(1, 337, 1, 235, 0); int014(3, 235, 1, 252, 0); int014(1, 236, 1, 241, 0); int014(1, 338, 1, 236, 0); int014(1, 237, 1, 337, 0); int014(1, 240, 1, 237, 0); int014(1, 238, 1, 338, 0); int014(1, 252, 3, 238, 0); int014(1, 239, 1, 240, 0); int014(0, 262, 1, 239, 0); int014(1, 244, 0, 245, 0); int014(2, 244, 0, 240, 0); int014(1, 245, 0, 244, 0); int014(2, 245, 0, 246, 0); int014(3, 245, 0, 250, 0); int014(1, 246, 0, 245, 0); int014(2, 246, 0, 247, 0); int014(3, 246, 0, 232, 0); int014(4, 246, 0, 233, 0); int014(1, 247, 0, 246, 0); int014(2, 247, 0, 248, 0); int014(3, 247, 0, 232, 0); int014(4, 247, 0, 233, 0); int014(1, 248, 0, 247, 0); int014(2, 248, 0, 249, 0); int014(3, 248, 0, 251, 0); int014(1, 249, 0, 248, 0); int014(2, 249, 0, 250, 0); int014(3, 249, 0, 234, 0); int014(4, 249, 0, 252, 0); int014(1, 250, 0, 245, 0); int014(2, 250, 0, 249, 0); int014(3, 250, 0, 234, 0); int014(4, 250, 0, 252, 0); int014(1, 251, 0, 248, 0); int014(2, 251, 0, 241, 0); int014(1, 257, 0, 244, 0); int014(2, 257, 0, 245, 0); int014(3, 257, 0, 246, 0); int014(4, 257, 0, 247, 0); int014(5, 257, 0, 248, 0); int014(6, 257, 0, 249, 0); int014(7, 257, 0, 250, 0); int014(8, 257, 0, 251, 0); int014(1, 259, 0, 232, 0); int014(2, 259, 0, 233, 0); int014(3, 259, 0, 234, 0); int014(4, 259, 0, 240, 0); int014(5, 259, 0, 241, 0); int014(6, 259, 0, 252, 0); int014(2, 337, 0, 244, 0); int014(3, 337, 0, 244, 0); int014(4, 337, 0, 244, 0); int014(2, 338, 0, 251, 0); int014(3, 338, 0, 251, 0); int014(4, 338, 0, 251, 0); int006(10, 239, 1, 0, 0); int006(0, 337, 19, 999, 0); int006(0, 338, 19, 999, 0); {Experiment settings} int034; int007;