{Enterprise Dynamics startup information} if(StartingED, SoftStartED([])); {Model information} AddLayer([Main], 1, 1, 0); {Load required atoms} int011; int035([Lock], pDir([Atoms\Lock.atm])); int035([Sink], pDir([Atoms\Sink.atm])); int035([Queue], pDir([Atoms\Queue.atm])); int035([Table], pDir([Atoms\Table.atm])); int035([Server], pDir([Atoms\Server.atm])); int035([Source], pDir([Atoms\Source.atm])); int035([Unpack], pDir([Atoms\Unpack.atm])); int035([Assembler], pDir([Atoms\Assembler.atm])); int035([Ground Storage], pDir([Atoms\Ground Storage.atm])); int035([SingleTransform], pDir([Atoms\SingleTransform.atm])); int035([Accumulating Conveyor], pDir([Atoms\Accumulating Conveyor.atm])); int035([Non Accumulating Conveyor], pDir([Atoms\Non Accumulating Conveyor.atm])); int035([Advanced Non Accumulating Conveyor Straight], pDir([Atoms\Advanced Non Accumulating Conveyor Straight.atm])); int012; {Atom: Table30} sets; AtomByName([Table], Main); if(not(AtomExists), Error([Cannot find mother atom 'Table'. Inheriting from BaseClass.])); CreateAtom(a, s, [], 1, false); int023([Table30], 32896, 32); 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\Table.ico])); Set(DdbRec, [>t-table:1.]); int001(141); SetLoc(64, 39, 0); SetSize(5, 2, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetTextAtt(1, [Table30]); SetAtt(2, 0); SetAtt(3, 0); SetAtt(4, 0); SetAtt(5, 5); SetAtt(6, 5); SetAtt(7, 1); SetAtt(8, 0); int024; SetTable(1, 1); int015(0, 64, [ 1 ]); int015(1, 64, [1 ]); SetStatus(0); int018; {Atom: Bar} sets; BaseClass; CreateAtom(a, Up(s), [], 1, false); int023([Bar], 12615680, 8273); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\product.bmp]), [product])); 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, [>centerpoint:0.5.>drawysize:1.>drawxsize:1.>t-nodestroy:1.]); int001(142); SetLoc(9, 1, 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), 3); 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: Source bars} sets; AtomByName([Source], Main); if(not(AtomExists), Error([Cannot find mother atom 'Source'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Source bars], 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(143); int013(1, 0, true, false, 0, 0, [], []); SetLoc(12, 1, 0); SetSize(5, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [{.~1|~1~.}1]); SetExprAtt(2, [1800]); SetExprAtt(3, [{.SetSize(cm(~1),cm(~2),cm(~3),i)|4. Set Size: product dimensions are set to: X=~90~cm, Y=~10~cm, Z=~10~cm.}SetSize(cm(90),cm(10),cm(10),i)]); SetExprAtt(4, [0]); SetExprAtt(5, [10]); SetExprAtt(6, [{.-1|1. Unlimited.}-1]); SetAtt(7, 4); int024; SetStatus(2); int018; {Atom: Bar Stock Buffer} sets; AtomByName([Queue], Main); if(not(AtomExists), Error([Cannot find mother atom 'Queue'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Bar Stock Buffer], 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])); SetChannels(3, 1); SetChannelRanges(1, 255, 1, 255); int001(144); int013(1, 0, true, false, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); int013(3, 0, true, true, 0, 0, [], []); SetLoc(18, 1, 0); SetSize(7, 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: Saw Machine} sets; AtomByName([Server], Main); if(not(AtomExists), Error([Cannot find mother atom 'Server'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Saw Machine], 292315, 263408); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); AddModel3D( RegisterModel3D(Model3DDir([\Server.wrl]), [Server.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\server2.wrl]), [server2.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server_Resized.wrl]), [Server_Resized.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server2_Resized.wrl]), [Server2_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\Server.ico])); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(145); int013(1, 0, true, false, 0, 0, [], []); SetLoc(26, 1, 0); SetSize(5, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [360]); SetExprAtt(2, [{.~1|~1~.}1]); SetExprAtt(3, [3]); SetAtt(4, 3); SetAtt(5, 1); SetAtt(6, 3); SetExprAtt(7, [{.~1|~0~.}0]); SetExprAtt(8, [0]); SetExprAtt(9, [0]); SetExprAtt(10, [NegExp(10)]); SetExprAtt(11, [Triangular(20, 10, 30)]); SetAtt(12, 0); SetExprAtt(13, [If( Time > 0, Concat( [Util: ], String ( *( 100, /( -( TotalBusy, Max( 0, EndBusy - Time)), Time)), 0, 1), [ %]), [Util: 0 %] )]); SetAtt(14, 360); SetAtt(15, 0); SetAtt(16, 3.63478404239393); SetAtt(17, 0); SetExprAtt(18, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(19, 7); SetAtt(20, 1); SetExprAtt(21, [0]); SetAtt(22, 0); SetExprAtt(23, [0]); SetAtt(24, 0); SetAtt(25, 0); SetAtt(26, 0); SetAtt(27, 0); SetAtt(28, 0); SetAtt(29, 677797); SetExprAtt(30, [mttf]); SetAtt(31, 13278.3751857301); SetExprAtt(32, [0]); SetExprAtt(33, [0]); SetExprAtt(34, [0]); int024; SetStatus(1); int018; {Atom: Copy of Source bars} sets; AtomByName([Source], Main); if(not(AtomExists), Error([Cannot find mother atom 'Source'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Copy of Source bars], 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(146); int013(1, 0, true, false, 0, 0, [], []); SetLoc(12, 4, 0); SetSize(5, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [{.~1|~1~.}1]); SetExprAtt(2, [1800]); SetExprAtt(3, [{.SetSize(cm(~1),cm(~2),cm(~3),i)|4. Set Size: product dimensions are set to: X=~90~cm, Y=~10~cm, Z=~10~cm.}SetSize(cm(90),cm(10),cm(10),i)]); SetExprAtt(4, [0]); SetExprAtt(5, [10]); SetExprAtt(6, [{.-1|1. Unlimited.}-1]); SetAtt(7, 4); int024; SetStatus(2); int018; {Atom: Copy of Source bars (1)} sets; AtomByName([Source], Main); if(not(AtomExists), Error([Cannot find mother atom 'Source'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Copy of Source bars (1)], 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(147); int013(1, 0, true, false, 0, 0, [], []); SetLoc(12, 7, 0); SetSize(5, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [{.~1|~1~.}1]); SetExprAtt(2, [1800]); SetExprAtt(3, [{.SetSize(cm(~1),cm(~2),cm(~3),i)|4. Set Size: product dimensions are set to: X=~90~cm, Y=~10~cm, Z=~10~cm.}SetSize(cm(90),cm(10),cm(10),i)]); SetExprAtt(4, [0]); SetExprAtt(5, [10]); SetExprAtt(6, [{.-1|1. Unlimited.}-1]); SetAtt(7, 4); int024; SetStatus(2); int018; {Atom: Length bar = 0,3m} sets; AtomByName([SingleTransform], Main); if(not(AtomExists), Error([Cannot find mother atom 'SingleTransform'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Length bar = 0,3m], 3184303, 1256); 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\SingleTransform.ico])); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 1); int001(148); int013(1, 0, true, false, 0, 0, [], []); SetLoc(32, 1, 0); SetSize(5, 2, 0.1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [{.true|2. transform all atoms.}true]); SetAtt(2, 0); SetAtt(3, 0); SetAtt(4, 0); SetAtt(5, 0); SetAtt(6, 1); SetAtt(7, 0); SetAtt(8, 0); SetAtt(9, 0); SetAtt(10, 0); SetTextAtt(11, [0]); SetExprAtt(12, [icon]); SetAtt(13, 0); SetAtt(14, 0); SetAtt(15, 0); SetAtt(16, 0); SetExprAtt(17, [{.sddb([~1],~2,i)|2.label value: set the label ~LabelName~ equal to ~1~..}sddb([LabelName],1,i)]); int024; SetStatus(0); int018; {Atom: Belt Conveyor} sets; AtomByName([Non Accumulating Conveyor], Main); if(not(AtomExists), Error([Cannot find mother atom 'Non Accumulating Conveyor'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Belt Conveyor], 13809478, 1234); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\conveyor.bmp]), [conveyor])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\NonAccumulatingConveyor.ico])); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(149); int013(1, 0, true, false, 0, 0, [], []); SetLoc(38, 1, 0); SetSize(6, 1, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [0.02]); SetAtt(2, 0); SetExprAtt(3, [{.~1|~1~.}1]); SetAtt(4, 1); SetExprAtt(5, [0]); SetAtt(6, 6); SetExprAtt(7, [0]); SetAtt(8, 10000); SetExprAtt(9, [Label([servicetime], i) := mins(60)]); SetAtt(10, 1); SetAtt(11, 6); SetExprAtt(12, [0]); SetExprAtt(13, [If(Use_Physical, xSize(c), Input_Length)]); SetExprAtt(14, [ArcTan(Elevation / HorLength)]); SetExprAtt(15, [If(Elevation <> 0, HorLength / Cos(Angle), HorLength )]); SetAtt(16, 2); SetAtt(17, 6); SetAtt(18, 0); SetAtt(19, 0.02); SetAtt(20, 0); SetExprAtt(21, [5]); SetAtt(22, 1); SetAtt(23, 8); int024; SetStatus(13); int018; {Atom: Coating Machine} sets; AtomByName([Server], Main); if(not(AtomExists), Error([Cannot find mother atom 'Server'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Coating Machine], 292315, 263408); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); AddModel3D( RegisterModel3D(Model3DDir([\Server.wrl]), [Server.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\server2.wrl]), [server2.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server_Resized.wrl]), [Server_Resized.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server2_Resized.wrl]), [Server2_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\Server.ico])); SetChannels(2, 1); SetChannelRanges(1, 255, 1, 255); int001(150); int013(1, 0, true, false, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); SetLoc(45, 1, 0); SetSize(9, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [Label([servicetime], first(c))]); SetExprAtt(2, [{.~1|~1~.}1]); SetExprAtt(3, [6]); SetAtt(4, 2); SetAtt(5, 6); SetAtt(6, 1); SetExprAtt(7, [{.~1|~0~.}0]); SetExprAtt(8, [i.input := ic(c)]); SetExprAtt(9, [0]); SetExprAtt(10, [0]); SetExprAtt(11, [0]); SetAtt(12, 0); SetExprAtt(13, [If( Time > 0, Concat( [Util: ], String ( *( 100, /( -( TotalBusy, Max( 0, EndBusy - Time)), Time)), 0, 1), [ %]), [Util: 0 %] )]); SetAtt(14, 3600); SetAtt(15, 0); SetAtt(16, 1E40); SetAtt(17, 0); SetExprAtt(18, [{.~1|~If( Content(c) > 0, OpenIC(Label([Input],First(c)),c), If( Content(in(2,c)) >= 6, OpenIC(2, c), OpenIC(1, c) ) )~.}If( Content(c) > 0, OpenIC(Label([Input],First(c)),c), If( Content(in(2,c)) >= 6, OpenIC(2, c), OpenIC(1, c) ) )]); SetAtt(19, 7); SetAtt(20, 0); SetExprAtt(21, [0]); SetAtt(22, 0); SetExprAtt(23, [0]); SetAtt(24, 0); SetAtt(25, 0); SetAtt(26, 0); SetAtt(27, 0); SetAtt(28, 0); SetAtt(29, 677797); SetExprAtt(30, [mttf]); SetAtt(31, 12595.1092808972); SetExprAtt(32, [0]); SetExprAtt(33, [0]); SetExprAtt(34, [0]); int024; SetStatus(1); int018; {Atom: Ground Storage10} sets; AtomByName([Ground Storage], Main); if(not(AtomExists), Error([Cannot find mother atom 'Ground Storage'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Ground Storage10], 0, 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\GroundStorage.ico])); SetChannels(1, 1); SetChannelRanges(1, 255, 0, 255); int001(151); int013(1, 0, true, false, 0, 0, [], []); SetLoc(45, 6, 0); SetSize(8, 5, 0); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 6); SetAtt(2, 1); 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, 1); SetAtt(15, 1); SetAtt(16, 1); SetAtt(17, 0); int024; SetTable(6, 1); int015(0, 64, [ 1 2 3 4 5 6 ]); int015(1, 64, [1 0 0 0 0 0 0 ]); SetStatus(15); int018; {Atom: Inspection Machine} sets; AtomByName([Server], Main); if(not(AtomExists), Error([Cannot find mother atom 'Server'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Inspection Machine], 292315, 263408); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); AddModel3D( RegisterModel3D(Model3DDir([\Server.wrl]), [Server.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\server2.wrl]), [server2.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server_Resized.wrl]), [Server_Resized.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server2_Resized.wrl]), [Server2_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\Server.ico])); SetChannels(1, 2); SetChannelRanges(1, 255, 1, 255); int001(152); int013(1, 0, true, false, 0, 0, [], []); int013(2, 0, true, false, 0, 0, [], []); SetLoc(49, 16, 0); SetSize(9, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [1200]); SetExprAtt(2, [{.~1|~Bernoulli(20,1,2)~.}Bernoulli(20,1,2)]); SetExprAtt(3, [1]); SetAtt(4, 1); SetAtt(5, 1); SetAtt(6, 1); SetExprAtt(7, [{.~1|~60~.}60]); SetExprAtt(8, [0]); SetExprAtt(9, [0]); SetExprAtt(10, [0]); SetExprAtt(11, [0]); SetAtt(12, 0); SetExprAtt(13, [If( Time > 0, Concat( [Util: ], String ( *( 100, /( -( TotalBusy, Max( 0, EndBusy - Time)), Time)), 0, 1), [ %]), [Util: 0 %] )]); SetAtt(14, 1200); SetAtt(15, 0); SetAtt(16, 1E40); SetAtt(17, 0); SetExprAtt(18, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(19, 7); SetAtt(20, 0); SetExprAtt(21, [0]); SetAtt(22, 0); SetExprAtt(23, [0]); SetAtt(24, 0); SetAtt(25, 0); SetAtt(26, 0); SetAtt(27, 0); SetAtt(28, 0); SetAtt(29, 677797); SetExprAtt(30, [mttf]); SetAtt(31, 13615.1092808972); SetExprAtt(32, [0]); SetExprAtt(33, [0]); SetExprAtt(34, [0]); int024; SetStatus(1); int018; {Atom: Rework queue} sets; AtomByName([Queue], Main); if(not(AtomExists), Error([Cannot find mother atom 'Queue'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Rework queue], 12615680, 1264); 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])); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(153); int013(1, 0, true, false, 0, 0, [], []); SetLoc(59, 6, 0); SetSize(5, 2, 0); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [{.~1|~1~.}1]); SetAtt(2, 10); SetExprAtt(3, [0]); SetExprAtt(4, [Label([servicetime], i) := mins(40)]); SetExprAtt(5, [{.content(c)|Fifo (First In First Out).}content(c)]); SetAtt(6, 4); SetExprAtt(7, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(8, 2); int024; SetStatus(13); int018; {Atom: Load} sets; AtomByName([Assembler], Main); if(not(AtomExists), Error([Cannot find mother atom 'Assembler'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Load], 4194432, 1264); Set(Icon(a), RegisterIcon(pDir([Media\Images\Machines\mach1001.bmp]), [mach1001], 1, 0, 0, 255, 255, false, 0)); AddModel3D( RegisterModel3D(Model3DDir([\assembler.wrl]), [assembler.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\Assembler.ico])); SetChannels(2, 2); SetChannelRanges(2, 255, 1, 255); int001(154); int013(1, 0, true, false, 5, 0, [container/order/main product], []); int013(2, 0, false, false, 0, 0, [], []); SetLoc(18, 18, 0); SetSize(5, 5, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [240]); SetExprAtt(2, [0]); SetExprAtt(3, [0]); SetExprAtt(4, [{.~1|~Bernoulli(50,1,2)~.}Bernoulli(50,1,2)]); SetAtt(5, 1); SetExprAtt(6, [1]); SetAtt(7, 5); SetAtt(8, 1); SetAtt(9, 1); SetExprAtt(10, [0]); SetAtt(11, 1); SetAtt(12, 2); int024; SetTable(2, 1); int015(0, 64, [ `Input ch1` `Input ch2` ]); int015(1, 64, [`Product 1` 1 4 ]); SetStatus(1); int018; {Atom: Container15} sets; BaseClass; CreateAtom(a, Up(s), [], 1, false); Set(OnInit, [RegisterEditField( [t-container3dicon], [3D Icon], [Att([ContainerType])], [SetAtt([ContainerType], &)], FieldListBox( 7, [Box/Transparant Box/Container/Pallet/Pallet with Stabilizers/Box with Texture/VR Icon] ) ) ]); int023([Container15], 6080220, 1234); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\Pallet.bmp]), [Pallet.bmp])); 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([\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\Container.ico])); Set(Info, [Container. General ------------ Container for other atoms. Pack other atoms into this atom. Right click parameters: - several 3D icons like pallet, box and transparant box. - triggers to manipulate atoms that enter/exit - resize entering atoms to fit the container Double click to edit content. Last revision: ------------------- September 29, 2003 ]); Set(DdbRec, [>drawysize:1.>drawxsize:1.5.>centerpoint:0.3.>t-nodestroy:1.]); int001(155); SetLoc(-5, 18, 0); SetSize(1.5, 1, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); CreateAttributes(6); SetAttributeName(r(1), [AutoReSize]); SetAttributeName(r(2), [sx]); SetAttributeName(r(3), [sy]); SetAttributeName(r(4), [sz]); SetAttributeName(r(5), [ContainerType]); SetAttributeName(r(6), [UseBoxVisible]); SetExprAtt(r(2), [1.5]); SetExprAtt(r(3), [1]); SetExprAtt(r(4), [0.1]); SetAtt(r(5), 4); SetAtt(r(6), 1); int024; Set(OnEntered, [Do( If( AutoReSize, SetSize( sx, sy, sz, i) ), If( Content(c) = 1, SetLoc( Max( (sx - xSize( i)) / 2, 0), Max( (sy - ySize( i)) / 2, 0), zSize( c), i ), Do( SetLoc( xLoc( Prev( i)) + sx, yLoc( Prev( i)), zLoc( Prev( i)), i ), If( xLoc( i) >= xSize( c), Do( SetLoc( xLoc( First( c)), yLoc( i) + sy, zLoc( i), i ), If( yLoc( i) >= ySize( c), SetLoc( xLoc( First( c)), yLoc( First( c)), zLoc( i) + sz, i ) ) ) ) ) ) ) ]); Set(OnReset, [If( Label([t-nodestroy], c) = 0, DestroyAtom ) ]); Set(OnUser, [If( DoubleClick, {* Double Click *} If( SelectAtom(a, First, [Select an atom from the contents]), ExecOnUser(a) ), {* Right click *} Do( { Delete any current instances of this form.} GuiDestroy([Container]), { Register the GUI-form for this atom.} GuiRegister(PDir([\Atoms\Container.gui]), 1), { Show the GUI-form.} GuiCreate([Container], [Container], 0, c, 0, 1) ) ) ]); Set(On2DDraw, [if( c.DrawFlag, {--External atom(s) control container 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) {--Outline--} ) ) ]); Set(On3DDraw, [do( if( {--Container 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) ) ), If( Or( BoxVisible(0, 0, 0, c.DrawXsize, c.DrawYsize ,zSize(c)), Not(UseBoxVisible) ), Case( ContainerType, {* Draw a Box *} Do( di3DBox(0, 0, 0, c.DrawXsize, c.DrawYsize, 0.01, Color(c)), di3DBox(0, 0, 0, c.DrawXsize, 0.01, zSize(c), Color(c)), di3DBox(0, c.DrawYsize, 0, c.DrawXsize, 0.01, zSize(c), Color(c)), di3DBox(0, 0, 0, 0.01, c.DrawYsize, zSize(c), Color(c)), di3DBox(c.DrawXsize, 0, 0, 0.01, c.DrawYsize, zSize(c), Color(c)) ), {* Draw a Transparant box *} Do( di3DBox(-0.06, -0.06, 0, c.DrawXsize + 0.12, c.DrawYsize + 0.12, 0.1, ColorBlack), Plane(-0.04, -0.04, zSize(c), c.DrawYsize + 0.08, 0.15, 0, 90, 0, 90, ColorBlack), Plane(c.DrawXsize + 0.04, -0.04, zSize(c), c.DrawYsize + 0.08, 0.15, 0, 90, 0, 90, ColorBlack), Plane(-0.04, -0.04, zSize(c), c.DrawXsize + 0.08, 0.15, 0, 0, 0, 90, ColorBlack), Plane(-0.04, c.DrawYsize + 0.04, zSize(c), c.DrawXsize + 0.08, 0.15, 0, 0, 0, 90, ColorBlack), Glass(0.5), Plane(-0.04, -0.04, 0.1, c.DrawYsize + 0.08, zSize(c) - 0.1, 0, 90, 0, 90, Color), Plane(c.DrawXsize + 0.04, -0.04, 0.1, c.DrawYsize + 0.08, zSize(c) - 0.1, 0, 90, 0, 90, Color), Plane(-0.04, -0.04, 0.1, c.DrawXsize + 0.08, zSize(c) - 0.1, 0, 0, 0, 90, Color), Plane(-0.04, c.DrawYsize + 0.04, 0.1, c.DrawXsize + 0.08, zSize(c) - 0.1, 0, 0, 0, 90, Color), Glass(1) ), {* Draw a Container *} Do( di3DBox(-0.05, -0.05, 0, c.DrawXsize + 0.1, c.DrawYsize + 0.1, 0.01, Color(c)), di3DBox(-0.05, -0.05, zSize(c), c.DrawXsize + 0.1, c.DrawYsize + 0.1, 0.01, Color(c)), di3DBox(-0.05, -0.05, 0, c.DrawXsize + 0.1, 0.01, zSize(c), Color(c)), di3DBox(-0.05, c.DrawYsize + 0.05, 0, c.DrawXsize + 0.1, -0.01, zSize(c), Color(c)), di3DBox(c.DrawXsize + 0.05, -0.04, 0, -0.01, c.DrawYsize + 0.08, zSize(c), Color(c)) ), {* Draw a Pallet *} Do( di3DBox(0, 0, 0, c.DrawXsize, 0.1, zSize(c) - 0.05, Color), di3DBox(0, c.DrawYsize / 2 - 0.05, 0, c.DrawXsize, 0.1, zSize(c) - 0.05, Color), Di3DBox(0, c.DrawYsize - 0.1, 0, c.DrawXsize, 0.1, zSize(c) - 0.05, Color), c.CenterPoint := c.DrawXsize / 5, Repeat( 5, di3DBox(Count * c.CenterPoint, 0, zSize(c) - 0.05, -0.1, c.DrawYsize, 0.05, Color) ) ), {* Draw a Stabilized pallet *} Do( di3DBox(0, 0, 0, c.DrawXsize, c.DrawYsize / 4 - 0.05, 0.05, 4823990), di3DBox(0, c.DrawYsize / 4, 0, c.DrawXsize, c.DrawYsize / 4 - 0.05, 0.05, 4823990), di3DBox(0, c.DrawYsize / 2, 0, c.DrawXsize,c.DrawYsize / 4 - 0.05, 0.05, 4823990), di3DBox(0, c.DrawYsize / 4 * 3, 0, c.DrawXsize, c.DrawYsize / 4, 0.05, 4823990), di3DBox(-0.05, -0.05, 0, c.DrawXsize + 0.1, 0.05, 0.05, ColorGray), di3DBox(-0.05, -0.05, 0, 0.05, c.DrawYsize + 0.1, 0.05, ColorGray), di3DBox(c.DrawXsize, c.DrawYsize + 0.05, 0, 0.05, -0.1 - c.DrawYsize, 0.05, ColorGray), di3DBox(c.DrawXsize + 0.05, c.DrawYsize, 0, -0.1 - c.DrawXsize, 0.05, 0.05, ColorGray), di3DBox(-0.05, -0.05, 0.05, 0.05, 0.05, zSize(c), ColorGray), di3DBox(-0.05, c.DrawYsize, 0.05, 0.05, 0.05, zSize(c), ColorGray), di3DBox(c.DrawXsize, c.DrawYsize, 0.05, 0.05, 0.05, zSize(c),ColorGray), di3DBox(c.DrawXsize, -0.05, 0.05, 0.05, 0.05, zSize(c), ColorGray) ), {* Draw a Textured Box (VR only) *} Do( DrawVRIcon(vrIcon, -0.05, -0.05, 0, c.DrawXsize + 0.1, c.DrawYsize + 0.1, 0.01, 0, 0, 0, Icon(c), Color(c)), DrawVRIcon(vrIcon, -0.05, -0.05, 0, c.DrawXsize + 0.1, 0.01, zSize(c), 0, 0, 0, Icon(c), Color(c)), DrawVRIcon(vrIcon, -0.05, c.DrawYsize + 0.04, 0, c.DrawXsize + 0.1, 0.01, zSize(c), 0, 0, 0, Icon(c), Color(c)), DrawVRIcon(vrIcon, -0.05, -0.04, 0, 0.01, c.DrawYsize + 0.08, zSize(c), 0, 0, 0, Icon(c), Color(c)), DrawVRIcon(vrIcon, c.DrawXsize + 0.04, -0.04, 0, 0.01, c.DrawYsize + 0.08, zSize(c), 0, 0, 0, Icon(c), Color(c)) ), {** Pallet - Wood **} DrawModel3D(Model3D(1, c), 0, 0, 0, c.DrawXsize, c.DrawYsize, zSize(c)), {** Pallet - Plastic **} DrawModel3D(Model3D(2, c), 0, 0, 0, c.DrawXsize, c.DrawYsize, zSize(c)), {** Crate **} DrawModel3D(Model3D(3, c), 0, 0, 0, c.DrawXsize, c.DrawYsize, zSize(c)) ) ) ) ]); SetStatus(0); int018; {Atom: Accumulating Conveyor16} sets; AtomByName([Accumulating Conveyor], Main); if(not(AtomExists), Error([Cannot find mother atom 'Accumulating Conveyor'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Accumulating Conveyor16], 11249415, 1266); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\conveyor.bmp]), [conveyor])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\AccumulatingConveyor.ico])); Set(DdbRec, [>legdist:3.]); SetChannels(2, 1); SetChannelRanges(1, 255, 1, 255); int001(156); int013(1, 0, true, false, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); SetLoc(9, 18, 0); SetSize(9, 1, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [0.025]); SetExprAtt(2, [Length / Speed]); SetAtt(3, 0); SetExprAtt(4, [Min(TempMaxLoc, Speed * (Time - EntryTime(cs)))]); SetAtt(5, 0); SetAtt(6, 0); SetExprAtt(7, [If(Elevation <> 0, Hor_Length / Cos(Angle), Hor_Length)]); SetExprAtt(8, [{.~1|~1~.}1]); SetAtt(9, 0); SetAtt(10, 1.5); SetExprAtt(11, [If(Content(c) <> 0, Do( TempMaxLoc :=Min(Length, +((Length - ExitLength), (Speed * (Time - ExitTime)))), ForAtomLayerUnder(c, Do( Setcs, SetLoc(-(*(Display_Factor, CurLoc), xSize(cs)), /(-(ySize(c), ySize(cs)), 2), +(zSize(c), *(/(CurLoc, /(If(Use_Physical, xSize(c), Input_Length), xSize(c))), Sin(Angle))), cs), SetAtt(3, -(TempMaxLoc, ProductSpacing(SpacingRule, xSize(cs), Spacing)), c) ) ) ) )]); SetExprAtt(12, [0]); SetAtt(13, 10000); SetAtt(14, 1); SetExprAtt(15, [0]); SetExprAtt(16, [0]); SetAtt(17, 1); SetAtt(18, 9); SetAtt(19, 1); SetAtt(20, 4); SetExprAtt(21, [0]); SetExprAtt(22, [ArcTan(Elevation / Hor_Length)]); SetExprAtt(23, [If(Use_Physical, xSize(c), Input_Length)]); SetAtt(24, 5); int024; SetStatus(13); int018; {Atom: Fixture Source} sets; AtomByName([Source], Main); if(not(AtomExists), Error([Cannot find mother atom 'Source'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Fixture 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(157); int013(1, 0, true, false, 0, 0, [], []); SetLoc(-2, 18, 0); SetSize(6, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [{.~1|~1~.}1]); SetExprAtt(2, [0]); SetExprAtt(3, [{.~1|~Label([FIXTURE], i) := 1~.}Label([FIXTURE], i) := 1]); SetExprAtt(4, [0]); SetExprAtt(5, [0]); SetExprAtt(6, [{.~1|~10~.}10]); SetAtt(7, 4); int024; SetStatus(2); int018; {Atom: Grinder 1} sets; AtomByName([Server], Main); if(not(AtomExists), Error([Cannot find mother atom 'Server'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Grinder 1], 292315, 263408); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); AddModel3D( RegisterModel3D(Model3DDir([\Server.wrl]), [Server.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\server2.wrl]), [server2.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server_Resized.wrl]), [Server_Resized.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server2_Resized.wrl]), [Server2_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\Server.ico])); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(158); int013(1, 0, true, false, 0, 0, [], []); SetLoc(14, 27, 0); SetSize(5, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [2160]); SetExprAtt(2, [{.~1|1. Specific channel: always send to channel ~1~.}1]); SetExprAtt(3, [1]); SetAtt(4, 1); SetAtt(5, 1); SetAtt(6, 1); SetExprAtt(7, [{.~1|~0~.}0]); SetExprAtt(8, [0]); SetExprAtt(9, [0]); SetExprAtt(10, [Max(0, Normal(4500, 900))]); SetExprAtt(11, [NegExp(900)]); SetAtt(12, 0); SetExprAtt(13, [If( Time > 0, Concat( [Util: ], String ( *( 100, /( -( TotalBusy, Max( 0, EndBusy - Time)), Time)), 0, 1), [ %]), [Util: 0 %] )]); SetAtt(14, 2160); SetAtt(15, 0); SetAtt(16, 4266.45530688867); SetAtt(17, 0); SetExprAtt(18, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(19, 7); SetAtt(20, 0); SetExprAtt(21, [0]); SetAtt(22, 0); SetExprAtt(23, [0]); SetAtt(24, 0); SetAtt(25, 1); SetAtt(26, 0); SetAtt(27, 0); SetAtt(28, 0); SetAtt(29, 677797); SetExprAtt(30, [mttf]); SetAtt(31, 100090.427643554); SetExprAtt(32, [0]); SetExprAtt(33, [0]); SetExprAtt(34, [0]); int024; SetStatus(1); int018; {Atom: Grinder 2} sets; AtomByName([Server], Main); if(not(AtomExists), Error([Cannot find mother atom 'Server'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Grinder 2], 292315, 263408); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); AddModel3D( RegisterModel3D(Model3DDir([\Server.wrl]), [Server.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\server2.wrl]), [server2.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server_Resized.wrl]), [Server_Resized.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server2_Resized.wrl]), [Server2_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\Server.ico])); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(159); int013(1, 0, true, false, 0, 0, [], []); SetLoc(22, 27, 0); SetSize(5, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [2400]); SetExprAtt(2, [{.IndexMax(NrOC(c), OCReady(Count,c)*Random(100000))|4. A random open channel: choose a random channel from all the open output channels..}IndexMax(NrOC(c), OCReady(Count,c)*Random(100000))]); SetExprAtt(3, [1]); SetAtt(4, 1); SetAtt(5, 1); SetAtt(6, 1); SetExprAtt(7, [{.~1|~0~.}0]); SetExprAtt(8, [0]); SetExprAtt(9, [0]); SetExprAtt(10, [Max(0, Normal(4500, 900))]); SetExprAtt(11, [NegExp(900)]); SetAtt(12, 0); SetExprAtt(13, [If( Time > 0, Concat( [Util: ], String ( *( 100, /( -( TotalBusy, Max( 0, EndBusy - Time)), Time)), 0, 1), [ %]), [Util: 0 %] )]); SetAtt(14, 2400); SetAtt(15, 0); SetAtt(16, 3342.8514051601); SetAtt(17, 0); SetExprAtt(18, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(19, 7); SetAtt(20, 0); SetExprAtt(21, [0]); SetAtt(22, 0); SetExprAtt(23, [0]); SetAtt(24, 0); SetAtt(25, 1); SetAtt(26, 0); SetAtt(27, 0); SetAtt(28, 0); SetAtt(29, 677797); SetExprAtt(30, [mttf]); SetAtt(31, 96250.4276435536); SetExprAtt(32, [0]); SetExprAtt(33, [0]); SetExprAtt(34, [0]); int024; SetStatus(1); int018; {Atom: Unloading Station} sets; AtomByName([Server], Main); if(not(AtomExists), Error([Cannot find mother atom 'Server'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Unloading Station], 292315, 263408); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); AddModel3D( RegisterModel3D(Model3DDir([\Server.wrl]), [Server.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\server2.wrl]), [server2.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server_Resized.wrl]), [Server_Resized.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server2_Resized.wrl]), [Server2_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\Server.ico])); SetChannels(2, 1); SetChannelRanges(1, 255, 1, 255); int001(160); int013(1, 0, true, false, 0, 0, [], []); int013(2, 0, true, false, 0, 0, [], []); SetLoc(16, 34, 0); SetSize(9, 4, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [240]); SetExprAtt(2, [{.~1|1. Specific channel: always send to channel ~1~.}1]); SetExprAtt(3, [1]); SetAtt(4, 1); SetAtt(5, 1); SetAtt(6, 1); SetExprAtt(7, [{.~1|~0~.}0]); SetExprAtt(8, [0]); SetExprAtt(9, [0]); SetExprAtt(10, [0]); SetExprAtt(11, [0]); SetAtt(12, 0); SetExprAtt(13, [If( Time > 0, Concat( [Util: ], String ( *( 100, /( -( TotalBusy, Max( 0, EndBusy - Time)), Time)), 0, 1), [ %]), [Util: 0 %] )]); SetAtt(14, 240); SetAtt(15, 0); SetAtt(16, 1E40); SetAtt(17, 0); SetExprAtt(18, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(19, 7); SetAtt(20, 0); SetExprAtt(21, [0]); SetAtt(22, 0); SetExprAtt(23, [0]); SetAtt(24, 0); SetAtt(25, 0); SetAtt(26, 0); SetAtt(27, 0); SetAtt(28, 0); SetAtt(29, 677797); SetExprAtt(30, [mttf]); SetAtt(31, 100090.427643554); SetExprAtt(32, [0]); SetExprAtt(33, [0]); SetExprAtt(34, [0]); int024; SetStatus(1); int018; {Atom: Cleaning Station} sets; AtomByName([Server], Main); if(not(AtomExists), Error([Cannot find mother atom 'Server'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Cleaning Station], 292315, 263408); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); AddModel3D( RegisterModel3D(Model3DDir([\Server.wrl]), [Server.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\server2.wrl]), [server2.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server_Resized.wrl]), [Server_Resized.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server2_Resized.wrl]), [Server2_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\Server.ico])); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(161); int013(1, 0, true, false, 0, 0, [], []); SetLoc(46, 30, 0); SetSize(5, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [900]); SetExprAtt(2, [{.~1|~1~.}1]); SetExprAtt(3, [1]); SetAtt(4, 1); SetAtt(5, 1); SetAtt(6, 1); SetExprAtt(7, [{.~1|~if(mod(output(c),100),30,0)~.}if(mod(output(c),100),30,0)]); SetExprAtt(8, [0]); SetExprAtt(9, [0]); SetExprAtt(10, [NegExp(7200)]); SetExprAtt(11, [Erlang(1200, 3)]); SetAtt(12, 0); SetExprAtt(13, [If( Time > 0, Concat( [Util: ], String ( *( 100, /( -( TotalBusy, Max( 0, EndBusy - Time)), Time)), 0, 1), [ %]), [Util: 0 %] )]); SetAtt(14, 900); SetAtt(15, 0); SetAtt(16, 26554.1870094835); SetAtt(17, 0); SetExprAtt(18, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(19, 7); SetAtt(20, 0); SetExprAtt(21, [0]); SetAtt(22, 0); SetExprAtt(23, [0]); SetAtt(24, 0); SetAtt(25, 1); SetAtt(26, 0); SetAtt(27, 0); SetAtt(28, 0); SetAtt(29, 677797); SetExprAtt(30, [mttf]); SetAtt(31, 100090.427643554); SetExprAtt(32, [0]); SetExprAtt(33, [0]); SetExprAtt(34, [0]); int024; SetStatus(1); int018; {Atom: Copy of Cleaning Station} sets; AtomByName([Server], Main); if(not(AtomExists), Error([Cannot find mother atom 'Server'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Copy of Cleaning Station], 292315, 263408); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); AddModel3D( RegisterModel3D(Model3DDir([\Server.wrl]), [Server.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\server2.wrl]), [server2.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server_Resized.wrl]), [Server_Resized.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server2_Resized.wrl]), [Server2_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\Server.ico])); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(162); int013(1, 0, true, false, 0, 0, [], []); SetLoc(46, 32, 0); SetSize(5, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [900]); SetExprAtt(2, [{.~1|~1~.}1]); SetExprAtt(3, [1]); SetAtt(4, 1); SetAtt(5, 1); SetAtt(6, 1); SetExprAtt(7, [{.~1|~if(mod(output(c),100),30,0)~.}if(mod(output(c),100),30,0)]); SetExprAtt(8, [0]); SetExprAtt(9, [0]); SetExprAtt(10, [NegExp(7200)]); SetExprAtt(11, [Erlang(1200, 3)]); SetAtt(12, 0); SetExprAtt(13, [If( Time > 0, Concat( [Util: ], String ( *( 100, /( -( TotalBusy, Max( 0, EndBusy - Time)), Time)), 0, 1), [ %]), [Util: 0 %] )]); SetAtt(14, 900); SetAtt(15, 0); SetAtt(16, 26439.0274594179); SetAtt(17, 0); SetExprAtt(18, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(19, 7); SetAtt(20, 0); SetExprAtt(21, [0]); SetAtt(22, 0); SetExprAtt(23, [0]); SetAtt(24, 0); SetAtt(25, 1); SetAtt(26, 0); SetAtt(27, 0); SetAtt(28, 0); SetAtt(29, 677797); SetExprAtt(30, [mttf]); SetAtt(31, 100090.427643554); SetExprAtt(32, [0]); SetExprAtt(33, [0]); SetExprAtt(34, [0]); int024; SetStatus(1); int018; {Atom: Copy of Cleaning Station (1)} sets; AtomByName([Server], Main); if(not(AtomExists), Error([Cannot find mother atom 'Server'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Copy of Cleaning Station (1)], 292315, 263408); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); AddModel3D( RegisterModel3D(Model3DDir([\Server.wrl]), [Server.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\server2.wrl]), [server2.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server_Resized.wrl]), [Server_Resized.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server2_Resized.wrl]), [Server2_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\Server.ico])); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(163); int013(1, 0, true, false, 0, 0, [], []); SetLoc(46, 34, 0); SetSize(5, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [900]); SetExprAtt(2, [{.~1|~1~.}1]); SetExprAtt(3, [1]); SetAtt(4, 1); SetAtt(5, 1); SetAtt(6, 1); SetExprAtt(7, [{.~1|~if(mod(output(c),100),30,0)~.}if(mod(output(c),100),30,0)]); SetExprAtt(8, [0]); SetExprAtt(9, [0]); SetExprAtt(10, [NegExp(7200)]); SetExprAtt(11, [Erlang(1200, 3)]); SetAtt(12, 0); SetExprAtt(13, [If( Time > 0, Concat( [Util: ], String ( *( 100, /( -( TotalBusy, Max( 0, EndBusy - Time)), Time)), 0, 1), [ %]), [Util: 0 %] )]); SetAtt(14, 900); SetAtt(15, 0); SetAtt(16, 2931.59251498889); SetAtt(17, 0); SetExprAtt(18, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(19, 7); SetAtt(20, 0); SetExprAtt(21, [0]); SetAtt(22, 0); SetExprAtt(23, [0]); SetAtt(24, 0); SetAtt(25, 1); SetAtt(26, 0); SetAtt(27, 0); SetAtt(28, 0); SetAtt(29, 677797); SetExprAtt(30, [mttf]); SetAtt(31, 100090.427643554); SetExprAtt(32, [0]); SetExprAtt(33, [0]); SetExprAtt(34, [0]); int024; SetStatus(1); int018; {Atom: Copy of Cleaning Station (2)} sets; AtomByName([Server], Main); if(not(AtomExists), Error([Cannot find mother atom 'Server'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Copy of Cleaning Station (2)], 292315, 263408); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); AddModel3D( RegisterModel3D(Model3DDir([\Server.wrl]), [Server.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\server2.wrl]), [server2.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server_Resized.wrl]), [Server_Resized.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server2_Resized.wrl]), [Server2_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\Server.ico])); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(164); int013(1, 0, true, false, 0, 0, [], []); SetLoc(46, 36, 0); SetSize(5, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [900]); SetExprAtt(2, [{.~1|~1~.}1]); SetExprAtt(3, [1]); SetAtt(4, 1); SetAtt(5, 1); SetAtt(6, 1); SetExprAtt(7, [{.~1|~if(mod(output(c),100),30,0)~.}if(mod(output(c),100),30,0)]); SetExprAtt(8, [0]); SetExprAtt(9, [0]); SetExprAtt(10, [NegExp(7200)]); SetExprAtt(11, [Erlang(1200, 3)]); SetAtt(12, 0); SetExprAtt(13, [If( Time > 0, Concat( [Util: ], String ( *( 100, /( -( TotalBusy, Max( 0, EndBusy - Time)), Time)), 0, 1), [ %]), [Util: 0 %] )]); SetAtt(14, 900); SetAtt(15, 0); SetAtt(16, 31357.910948264); SetAtt(17, 0); SetExprAtt(18, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(19, 7); SetAtt(20, 0); SetExprAtt(21, [0]); SetAtt(22, 0); SetExprAtt(23, [0]); SetAtt(24, 0); SetAtt(25, 1); SetAtt(26, 0); SetAtt(27, 0); SetAtt(28, 0); SetAtt(29, 677797); SetExprAtt(30, [mttf]); SetAtt(31, 100090.427643554); SetExprAtt(32, [0]); SetExprAtt(33, [0]); SetExprAtt(34, [0]); int024; SetStatus(1); int018; {Atom: Unpack30} sets; AtomByName([Unpack], Main); if(not(AtomExists), Error([Cannot find mother atom 'Unpack'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Unpack30], 4194432, 1264); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); AddModel3D( RegisterModel3D(Model3DDir([\disassembler.wrl]), [disassembler.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\Unpack.ico])); SetChannels(1, 2); SetChannelRanges(1, 255, 2, 2); int001(165); int013(1, 0, true, false, 0, 0, [Contents], []); int013(2, 0, true, false, 0, 0, [], []); SetLoc(19, 44, 0); SetSize(4, 2, 1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [content(first(c))]); SetExprAtt(2, [0]); SetAtt(3, 0); SetExprAtt(4, [0]); SetExprAtt(5, [0]); SetExprAtt(6, [0]); SetExprAtt(7, [{.openallic(c)|1. Any inputchannel.}openallic(c)]); SetAtt(8, 2); int024; SetStatus(21); int018; {Atom: Advanced Non Accumulating Conveyor Straight30} sets; AtomByName([Advanced Non Accumulating Conveyor Straight], Main); if(not(AtomExists), Error([Cannot find mother atom 'Advanced Non Accumulating Conveyor Straight'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Advanced Non Accumulating Conveyor Straight30], 13809478, 9458); Set(Icon(a), RegisterIcon(pDir([media\images\default.jpg]), [default.jpg])); AddModel3D( RegisterModel3D(Model3DDir([\camera.3ds]), [camera.3ds], 0, 0, 0, 2, 2, 2, -90, 0, 0), a); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); AddTexture( RegisterTexture(TexturesDir([\conveyor_belt1.png]), [conveyor_belt1.png], 256, 256, 255, 255, 0, 0, 0, 0), a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\AdvancedNonAccumulatingConveyor.ico])); SetChannels(1, 1); SetChannelRanges(1, 255, 1, 255); int001(166); int013(1, 0, true, false, 0, 0, [], []); SetLoc(42, 19, 1); SetSize(10, 1, 0); Set(RotationAs, 180); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 1); SetAtt(2, 0); SetAtt(3, 10); SetExprAtt(4, [0]); SetAtt(5, 0); SetExprAtt(6, [0]); SetExprAtt(7, [0]); SetExprAtt(8, [0]); SetAtt(9, 1); SetAtt(10, 0); SetAtt(11, 0.00277777777777778); SetAtt(12, 10); SetExprAtt(13, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(14, 1); SetAtt(15, 10); SetAtt(16, 1); SetAtt(17, 0); SetExprAtt(18, [{.~1|~1~.}1]); SetAtt(19, 1); SetExprAtt(20, [10/3600]); SetAtt(21, 0); SetAtt(22, 0); SetAtt(23, 1); SetAtt(24, 1); SetAtt(25, 0); SetAtt(26, 0); SetExprAtt(27, [0]); SetAtt(28, 0); SetAtt(29, 0); SetAtt(30, 1); SetAtt(31, 1); SetExprAtt(32, [zLoc(c)]); SetExprAtt(33, [1]); int024; SetStatus(13); int018; {Atom: Lock30} sets; AtomByName([Lock], Main); if(not(AtomExists), Error([Cannot find mother atom 'Lock'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Lock30], 3184303, 1256); Set(Icon(a), RegisterIcon(IconsDir([bmp\products\circlered.bmp]), [circlered])); SetMaterial( RegisterMaterial([Default], 8421504, 8421504, 3289650, 0, 0.100000001490116, 0, false, false, 1, 0), 1, a); Set(Version(a), 0); SetTreeIcon(pDir([Media\Icons\Lock.ico])); SetChannels(1, 2); SetChannelRanges(1, 255, 2, 255); int001(167); int013(1, 0, true, false, 0, 0, [], []); int013(2, 0, true, true, 0, 0, [], []); SetLoc(5, 18, 0); SetSize(1, 1, 0.1); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 10); SetAtt(2, 0); SetExprAtt(3, [10]); SetAtt(4, 0); SetAtt(5, 0); int024; SetStatus(18); int018; {Atom: Sink30} sets; AtomByName([Sink], Main); if(not(AtomExists), Error([Cannot find mother atom 'Sink'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Sink30], 7168771, 240); Set(Icon(a), RegisterIcon(pDir([Media\Images\Atoms\sink.bmp]), [sink])); AddModel3D( RegisterModel3D(Model3DDir([\sink.wrl]), [sink.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\sink_Resized.wrl]), [sink_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\Sink.ico])); SetChannels(4, 0); SetChannelRanges(1, 255, 0, 0); int001(168); 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(56, 32, 0); SetSize(5, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetAtt(1, 0); SetAtt(2, 4); int024; SetStatus(1); int018; {Atom: Server30} sets; AtomByName([Server], Main); if(not(AtomExists), Error([Cannot find mother atom 'Server'. Inheriting from BaseClass.])); CreateAtom(a, Up(s), [], 1, false); int023([Server30], 292315, 263408); Set(Icon(a), RegisterIcon(IconsDir([bmp\atoms\server.bmp]), [server])); AddModel3D( RegisterModel3D(Model3DDir([\Server.wrl]), [Server.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\server2.wrl]), [server2.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server_Resized.wrl]), [Server_Resized.wrl], 0, 0, 0, 1, 1, -1, -90, 0, 0), a); AddModel3D( RegisterModel3D(Model3DDir([\Server2_Resized.wrl]), [Server2_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\Server.ico])); SetChannels(1, 4); SetChannelRanges(1, 255, 1, 255); int001(169); int013(1, 0, true, false, 0, 0, [], []); int013(2, 0, true, false, 0, 0, [], []); int013(3, 0, true, false, 0, 0, [], []); int013(4, 0, true, false, 0, 0, [], []); SetLoc(34, 31, 0); SetSize(5, 2, 2); LockPosition(false); LockSize(false); DisableIconRotation(false); SetProductCode([]); SetExprAtt(1, [0]); SetExprAtt(2, [{.IndexMax(NrOC(c), OCReady(Count,c)*Random(100000))|4. A random open channel: choose a random channel from all the open output channels..}IndexMax(NrOC(c), OCReady(Count,c)*Random(100000))]); SetExprAtt(3, [1]); SetAtt(4, 1); SetAtt(5, 1); SetAtt(6, 1); SetExprAtt(7, [{.~1|~0~.}0]); SetExprAtt(8, [0]); SetExprAtt(9, [0]); SetExprAtt(10, [0]); SetExprAtt(11, [0]); SetAtt(12, 0); SetExprAtt(13, [If( Time > 0, Concat( [Util: ], String ( *( 100, /( -( TotalBusy, Max( 0, EndBusy - Time)), Time)), 0, 1), [ %]), [Util: 0 %] )]); SetAtt(14, 0); SetAtt(15, 0); SetAtt(16, 1E40); SetAtt(17, 0); SetExprAtt(18, [{.openallic(c)|Any inputchannel.}openallic(c)]); SetAtt(19, 7); SetAtt(20, 0); SetExprAtt(21, [0]); SetAtt(22, 0); SetExprAtt(23, [0]); SetAtt(24, 0); SetAtt(25, 0); SetAtt(26, 0); SetAtt(27, 0); SetAtt(28, 0); SetAtt(29, 677797); SetExprAtt(30, [mttf]); SetAtt(31, 100090.427643554); SetExprAtt(32, [0]); SetExprAtt(33, [0]); SetExprAtt(34, [0]); int024; SetStatus(1); int018; Up; int014(1, 143, 1, 144, 0); int014(0, 142, 1, 143, 0); int014(1, 144, 1, 145, 0); int014(1, 146, 2, 144, 0); int014(1, 147, 3, 144, 0); int014(1, 145, 1, 148, 0); int014(0, 142, 1, 146, 0); int014(0, 142, 1, 147, 0); int014(1, 148, 1, 149, 0); int014(1, 149, 1, 150, 0); int014(1, 150, 1, 151, 0); int014(1, 153, 2, 150, 0); int014(1, 151, 1, 152, 0); int014(1, 152, 1, 153, 0); int014(2, 152, 1, 166, 0); int014(1, 154, 1, 158, 0); int014(1, 156, 1, 154, 0); int014(2, 154, 1, 159, 0); int014(1, 166, 2, 154, 0); int014(1, 167, 1, 156, 0); int014(2, 165, 2, 156, 0); int014(1, 157, 1, 167, 0); int014(0, 155, 1, 157, 0); int014(1, 158, 1, 160, 0); int014(1, 159, 2, 160, 0); int014(1, 160, 1, 165, 0); int014(1, 161, 1, 168, 0); int014(1, 169, 1, 161, 0); int014(1, 162, 2, 168, 0); int014(2, 169, 1, 162, 0); int014(1, 163, 3, 168, 0); int014(3, 169, 1, 163, 0); int014(1, 164, 4, 168, 0); int014(4, 169, 1, 164, 0); int014(1, 165, 1, 169, 0); int006(10, 143, 1, 0, 0); int006(10, 146, 1, 0, 0); int006(10, 147, 1, 0, 0); int006(0, 157, 1, 0, 0); int006(4266.45530688867, 158, 7, 0, 0); int006(3342.8514051601, 159, 7, 0, 0); int006(26554.1870094835, 161, 7, 0, 0); int006(26439.0274594179, 162, 7, 0, 0); int006(2931.59251498889, 163, 7, 0, 0); int006(31357.910948264, 164, 7, 0, 0); {Experiment settings} int032(1, 2, 20); int033(1, 1, 1, [RESULTS]); int033(1, 1, 2, [5]); int033(1, 1, 3, [1]); int033(1, 1, 4, [20]); int033(1, 1, 5, [0]); int033(1, 1, 6, [0]); int033(1, 1, 7, [0]); int033(1, 1, 8, [0]); int033(1, 1, 9, [0]); int033(1, 1, 10, [0]); int033(1, 1, 11, [0]); int033(1, 1, 12, [0]); int033(1, 1, 13, [0]); int033(1, 1, 14, [0]); int033(1, 1, 15, [0]); int033(1, 1, 16, [0]); int033(1, 1, 17, [0]); int033(1, 1, 18, [0]); int033(1, 1, 19, [0]); int033(1, 1, 20, [0]); int033(1, 2, 1, [machines]); int033(1, 2, 2, [2]); int033(1, 2, 3, [AVGCONTENT]); int033(1, 2, 4, [[AVGCONTENT]]); int033(1, 2, 5, [AVGSTAY]); int033(1, 2, 6, [[AVGSTAY]]); int033(1, 2, 7, [CONTENT]); int033(1, 2, 8, [[CONTENT]]); int033(1, 2, 9, [INPUT]); int033(1, 2, 10, [[INPUT]]); int033(1, 2, 11, [MAXCONTENT]); int033(1, 2, 12, [[MAXCONTENT]]); int033(1, 2, 13, [MAXCONTENT]); int033(1, 2, 14, [[MAXCONTENT]]); int033(1, 2, 15, [MAXSTAY]); int033(1, 2, 16, [[MAXSTAY]]); int033(1, 2, 17, [OUTPUT]); int033(1, 2, 18, [[OUTPUT]]); int033(1, 2, 19, [STATUS]); int033(1, 2, 20, [[STATUS]]); int032(2, 1, 12); int033(2, 1, 1, [machines]); int033(2, 1, 2, [Cleaning Station]); int033(2, 1, 3, [Coating Machine]); int033(2, 1, 4, [Copy of Cleaning Station]); int033(2, 1, 5, [Copy of Cleaning Station (1)]); int033(2, 1, 6, [Copy of Cleaning Station (2)]); int033(2, 1, 7, [Grinder 1]); int033(2, 1, 8, [Grinder 2]); int033(2, 1, 9, [Inspection Machine]); int033(2, 1, 10, [Load]); int033(2, 1, 11, [Saw Machine]); int033(2, 1, 12, [Unloading Station]); int034; SetAtt(1, 5); SetExprAtt(2, [hr(40)]); SetExprAtt(3, [00]); SetAtt(4, 5); SetAtt(5, 1); SetAtt(13, 20); int007;