RecordEdits Define ExpressionThreshold { JobEntry Press1Busy Press1Queue Press2Busy Press2Queue } Define FileToHashMap { FileToHashMap1 } Define FileToMatrix { FileToMatrix1 } Define Assign { Assign1 Assign1_1 Assign1_2 Assign2_1 Assign2_2 } Define EntityDelay { Setup1 Setup2 } Define EntityGate { EntityGate1 EntityGate2 } Define EntityGenerator { EntityGenerator1 } Define Queue { JobsQueue P1Q_in P1Q_out P2Q_in P2Q_out S1Q S2Q } Define Release { Release1 Release2 } Define Seize { Seize1 Seize2 } Define Server { Press1 Press2 } Define SimEntity { SimEntity1 } Define Resource { Resource1 } Define ColladaModel { Axis Grid100x100 } Define DisplayEntity { XY-Grid XYZ-Axis } Define OverlayClock { Clock } Define OverlayText { Title } Define Text { Text1 Text3 Text4 Text5 Text6 Text7 Text8 } Define View { View1 } FileToHashMap1 DataFile { ItemsList.txt } FileToMatrix1 DataFile { JobsList.txt } Assign1 AttributeDefinitionList { { Number 0 } } Assign1_2 AttributeDefinitionList { { LastItem '""' } } Assign2_2 AttributeDefinitionList { { LastItem '""' } } Press1 AttributeDefinitionList { { Tons 450 } { Busy 0 } } Press2 AttributeDefinitionList { { Tons 150 } { Busy 0 } } SimEntity1 AttributeDefinitionList { { Pos 0 } { JobID '""' } { ItemID '""' } { Qty 0 } { DeliveryDate '""' } } Simulation Description { 'Simulation run control inputs' } # *** ExpressionThreshold *** JobEntry OpenCondition { '[JobsQueue].QueueLength < 2' } Press1Busy OpenCondition { '[Press1].Busy == 0' } Press1Queue OpenCondition { '[S1Q].QueueLength < 1' } Press2Busy OpenCondition { '[Press2].Busy == 0' } Press2Queue OpenCondition { '[S2Q].QueueLength < 1' } # *** FileToHashMap *** # *** FileToMatrix *** # *** Assign *** Assign1 NextComponent { JobsQueue } Assign1 AttributeAssignmentList { { 'this.Number = this.NumberAdded' } { 'this.obj.Pos = this.Number' } { 'this.obj.JobID = [FileToMatrix1].Value(this.obj.Pos)(2)' } { 'this.obj.ItemID = [FileToMatrix1].Value(this.obj.Pos)(3)' } { 'this.obj.Qty = [FileToMatrix1].Value(this.obj.Pos)(4)' } { 'this.obj.DeliveryDate = [FileToMatrix1].Value(this.obj.Pos)(5)' } } Assign1_1 NextComponent { Setup1 } Assign1_1 StateAssignment { '[Press1].Busy = 1' } Assign1_1 AttributeAssignmentList { { '[Press1].Busy = 1' } } Assign1_2 NextComponent { P1Q_out } Assign1_2 AttributeAssignmentList { { '[Press1].Busy = 0' } { 'this.LastItem = [Press1].obj.ItemID' } } Assign2_1 NextComponent { Setup2 } Assign2_1 StateAssignment { '[Press1].Busy = 1' } Assign2_1 AttributeAssignmentList { { '[Press2].Busy = 1' } } Assign2_2 NextComponent { P2Q_out } Assign2_2 AttributeAssignmentList { { '[Press2].Busy = 0' } { 'this.LastItem = [Press2].obj.ItemID' } } # *** EntityDelay *** Setup1 NextComponent { Release1 } Setup1 Duration { ' ( [FileToHashMap1].Value(this.obj.ItemID)(4) / 60 ) * (this.obj.ItemID != [Assign1_2].LastItem) * 1[h] ' } Setup2 NextComponent { Release2 } Setup2 Duration { ' ( [FileToHashMap1].Value(this.obj.ItemID)(4) / 60 ) * (this.obj.ItemID != [Assign2_2].LastItem) * 1[h] ' } # *** EntityGate *** EntityGate1 OperatingThresholdList { Press1Busy Press1Queue } EntityGate1 NextComponent { S1Q } EntityGate1 WaitQueue { JobsQueue } EntityGate1 SelectionCondition { '[Press1].Tons > [FileToHashMap1].Value(this.obj.ItemID)(1) && [Press1].Tons < [FileToHashMap1].Value(this.obj.ItemID)(2)' } EntityGate2 OperatingThresholdList { Press2Busy Press2Queue } EntityGate2 NextComponent { S2Q } EntityGate2 WaitQueue { JobsQueue } EntityGate2 SelectionCondition { '[Press2].Tons > [FileToHashMap1].Value(this.obj.ItemID)(1) && [Press2].Tons < [FileToHashMap1].Value(this.obj.ItemID)(2)' } # *** EntityGenerator *** EntityGenerator1 OperatingThresholdList { JobEntry } EntityGenerator1 NextComponent { Assign1 } EntityGenerator1 InterArrivalTime { 50[s] } EntityGenerator1 PrototypeEntity { SimEntity1 } EntityGenerator1 MaxNumber { size([FileToMatrix1].Value) } # *** Queue *** # *** Release *** Release1 NextComponent { P1Q_in } Release1 ResourceList { Resource1 } Release1 NumberOfUnits { [FileToHashMap1].Value(this.obj.ItemID)(5) } Release2 NextComponent { P2Q_in } Release2 ResourceList { Resource1 } Release2 NumberOfUnits { [FileToHashMap1].Value(this.obj.ItemID)(5) } # *** Seize *** Seize1 NextComponent { Assign1_1 } Seize1 WaitQueue { S1Q } Seize1 SelectionCondition { } Seize1 ResourceList { Resource1 } Seize1 NumberOfUnits { [FileToHashMap1].Value(this.obj.ItemID)(5) } Seize2 NextComponent { Assign2_1 } Seize2 WaitQueue { S2Q } Seize2 SelectionCondition { } Seize2 ResourceList { Resource1 } Seize2 NumberOfUnits { [FileToHashMap1].Value(this.obj.ItemID)(5) } # *** Server *** Press1 NextComponent { Assign1_2 } Press1 WaitQueue { P1Q_in } Press1 SelectionCondition { 'this.Tons > [FileToHashMap1].Value(this.obj.ItemID)(1) && this.Tons < [FileToHashMap1].Value(this.obj.ItemID)(2)' } Press1 ServiceTime { ' ( this.obj.Qty / ( 3600 / [FileToHashMap1].Value(this.obj.ItemID)(3)) ) * 1[h] ' } Press2 NextComponent { Assign2_2 } Press2 WaitQueue { P2Q_in } Press2 SelectionCondition { 'this.Tons > [FileToHashMap1].Value(this.obj.ItemID)(1) && this.Tons < [FileToHashMap1].Value(this.obj.ItemID)(2)' } Press2 ServiceTime { ' ( this.obj.Qty / ( 3600 / [FileToHashMap1].Value(this.obj.ItemID)(3)) ) * 1[h] ' } # *** SimEntity *** # *** Resource *** Resource1 Capacity { 2 } # *** GRAPHICS INPUTS *** Simulation RealTime { TRUE } Simulation SnapToGrid { TRUE } Simulation RealTimeFactor { 62496 } Simulation ShowLabels { TRUE } Simulation ShowSubModels { TRUE } Simulation ShowReferences { FALSE } Simulation ShowEntityFlow { TRUE } Simulation ShowModelBuilder { TRUE } Simulation ShowObjectSelector { TRUE } Simulation ShowInputEditor { TRUE } Simulation ShowOutputViewer { TRUE } Simulation ShowPropertyViewer { FALSE } Simulation ShowLogViewer { FALSE } JobEntry Position { -11.5 -2.2 0.0 m } Press1Busy Position { 4.5 -0.6 0.0 m } Press1Busy ShowWhenOpen { } Press1Queue Position { -6.5 -0.6 0.0 m } Press2Busy Position { 4.5 -3.8 0.0 m } Press2Queue Position { -6.5 -3.8 0.0 m } FileToHashMap1 Position { 2.9 2.7 0.0 m } FileToMatrix1 Position { -11.5 2.7 0.0 m } Assign1 Position { -11.5 -1.0 0.0 m } Assign1_1 Position { -3.4 0.7 0.0 m } Assign1_2 Position { 4.5 0.7 0.0 m } Assign2_1 Position { -3.4 -2.6 0.0 m } Assign2_2 Position { 4.5 -2.6 0.0 m } Setup1 Points { { -2.1 0.7 0.0 m } { -1.1 0.7 0.0 m } } Setup2 Points { { -2.1 -2.6 0.0 m } { -1.1 -2.6 0.0 m } } EntityGate1 Position { -7.9 0.7 0.0 m } EntityGate2 Position { -7.9 -2.6 0.0 m } EntityGenerator1 Position { -13.5 -1.0 0.0 m } JobsQueue Position { -10.2 -1.0 0.0 m } JobsQueue MaxPerLine { 3 } P1Q_in Position { 1.6 0.7 0.0 m } P1Q_out Position { 6.7 0.7 0.0 m } P1Q_out MaxPerLine { 3 } P2Q_in Position { 1.6 -2.6 0.0 m } P2Q_out Position { 6.7 -2.6 0.0 m } P2Q_out MaxPerLine { 3 } S1Q Position { -6.5 0.7 0.0 m } S2Q Position { -6.5 -2.6 0.0 m } Release1 Position { 0.0 0.7 0.0 m } Release2 Position { 0.0 -2.6 0.0 m } Seize1 Position { -5.0 0.7 0.0 m } Seize2 Position { -5.0 -2.6 0.0 m } Press1 Position { 2.9 0.7 0.0 m } Press2 Position { 2.9 -2.6 0.0 m } SimEntity1 Position { -15.4 -1.0 0.0 m } SimEntity1 Alignment { 0.0 0.0 -0.5 } Resource1 Position { -5.0 2.7 0.0 m } # *** ColladaModel *** Axis ColladaFile { /shapes/axis_text.dae } Grid100x100 ColladaFile { /shapes/grid100x100.dae } # *** DisplayEntity *** XY-Grid Description { 'Grid for the X-Y plane (100 m x 100 m)' } XY-Grid Size { 100 100 m } XY-Grid DisplayModel { Grid100x100 } XY-Grid Show { FALSE } XY-Grid Movable { FALSE } XYZ-Axis Description { 'Unit vectors' } XYZ-Axis Alignment { -0.4393409 -0.4410096 -0.4394292 } XYZ-Axis Size { 1.125000 1.1568242 1.1266404 m } XYZ-Axis DisplayModel { Axis } XYZ-Axis Show { FALSE } XYZ-Axis Movable { FALSE } # *** OverlayClock *** Clock Description { 'Simulation date and time' } Clock ScreenPosition { 15 15 } Clock AlignBottom { TRUE } Clock TextHeight { 10 } Clock FontColour { gray20 } Clock FontStyle { ITALIC } Clock DateFormat { 'yyyy-MMM-dd HH:mm:ss.SSS' } # *** OverlayText *** Title Description { 'Title for the simulation model' } Title ScreenPosition { 15 15 } Title Format { 'Injection Job Shop' } Title TextHeight { 18 } Title FontColour { 150 23 46 } Title FontStyle { BOLD } # *** Text *** Text1 Position { -1.6 -3.8 0.0 m } Text1 Size { 1.5 0.6 1.0 m } Text1 TextHeight { 0.2 m } Text1 FontColour { 150 23 46 } Text1 DataSource { ' ( [FileToHashMap1].Value([Setup2].obj.ItemID)(4) / 60 ) * 1[h] ' } Text3 Position { -3.2 2.6 0.0 m } Text3 Size { 1.5 0.6 1.0 m } Text3 TextHeight { 0.15 m } Text3 Format { 'MechanicsAvailable = %.0f' } Text3 DataSource { [Resource1].AvailableUnits } Text4 Position { -5.0 -0.6 0.0 m } Text4 Size { 1.5 0.6 1.0 m } Text4 TextHeight { 0.2 m } Text4 FontColour { 150 23 46 } Text4 DataSource { [Seize1].obj.ItemID } Text5 Position { -5.0 -3.8 0.0 m } Text5 Size { 1.5 0.6 1.0 m } Text5 TextHeight { 0.2 m } Text5 FontColour { 150 23 46 } Text5 DataSource { [Seize2].obj.ItemID } Text6 Position { 2.9 -0.6 0.0 m } Text6 Size { 1.5 0.6 1.0 m } Text6 TextHeight { 0.2 m } Text6 FontColour { 150 23 46 } Text6 DataSource { [Press1].obj.JobID } Text7 Position { 2.9 -3.8 0.0 m } Text7 Size { 1.5 0.6 1.0 m } Text7 TextHeight { 0.2 m } Text7 FontColour { 150 23 46 } Text7 DataSource { [Press2].obj.JobID } Text8 Position { -1.6 -0.6 0.0 m } Text8 Size { 1.5 0.6 1.0 m } Text8 TextHeight { 0.2 m } Text8 FontColour { 150 23 46 } Text8 Format { } Text8 DataSource { ' ( [FileToHashMap1].Value([Setup1].obj.ItemID)(4) / 60 ) * 1[h] ' } Text8 FailText { } # *** View *** View1 Description { 'Default view window' } View1 ViewCenter { -2.14621 -2.250507 7.892039 m } View1 ViewPosition { -2.14621 -2.250507 25.212547 m } View1 ShowWindow { TRUE } View1 Lock2D { TRUE } View1 SkyboxImage { /images/sky_map_2048x1024.jpg }