Commit 39dbf389 authored by Sebastien Robin's avatar Sebastien Robin

PartJobShop: update case thanks to George comments

parent 753a0f50
...@@ -275,7 +275,7 @@ path, ._jsPlumb_endpoint { ...@@ -275,7 +275,7 @@ path, ._jsPlumb_endpoint {
background-image: linear-gradient(to bottom, #ffe 0%, #dde 100%); background-image: linear-gradient(to bottom, #ffe 0%, #dde 100%);
} }
.Dream-Machine, .Dream-MachineJobShop, .Dream-BatchScrapMachine, .Dream-MachineManagedJob { .Dream-Machine, .Dream-MachineJobShop, .Dream-BatchScrapMachine, .Dream-MachineManagedJob, .Dream-MouldAssembly {
border: 1px solid #cbc; border: 1px solid #cbc;
background-color: #fef; background-color: #fef;
background-image: linear-gradient(to bottom, #fef 0%, #ede 100%); background-image: linear-gradient(to bottom, #fef 0%, #ede 100%);
......
{ {
"edges": { "edges": {
"con_10": [ "con_10": [
"QStart",
"CAD1",
{}
],
"con_108": [
"QMASS",
"MASS3",
{}
],
"con_15": [
"CAD1", "CAD1",
"Decomposition", "Decomposition",
{} {}
], ],
"con_20": [ "con_15": [
"CAD2", "CAD2",
"Decomposition", "Decomposition",
{} {}
], ],
"con_25": [ "con_20": [
"Decomposition", "Decomposition",
"QCAM", "QCAM",
{} {}
], ],
"con_30": [ "con_25": [
"QMILL", "QMILL",
"MILL2", "MILL2",
{} {}
], ],
"con_35": [ "con_30": [
"QMILL", "QMILL",
"MILL1", "MILL1",
{} {}
], ],
"con_40": [ "con_35": [
"QStart", "QStart",
"CAD2", "CAD2",
{} {}
], ],
"con_45": [ "con_40": [
"QCAM", "QCAM",
"CAM1", "CAM1",
{} {}
], ],
"con_5": [ "con_45": [
"QCAM", "QCAM",
"CAM2", "CAM2",
{} {}
], ],
"con_5": [
"QStart",
"CAD1",
{}
],
"con_50": [ "con_50": [
"QEDM", "QEDM",
"EDM", "EDM",
...@@ -80,26 +75,32 @@ ...@@ -80,26 +75,32 @@
"QIM", "QIM",
{} {}
], ],
"con_82": [ "con_80": [
"QMASS", "QMASS",
"MASS1", "MASS1",
{} {}
], ],
"con_95": [ "con_85": [
"QMASS", "QMASS",
"MASS2", "MASS2",
{} {}
],
"con_90": [
"QMASS",
"MASS3",
{}
] ]
}, },
"general": { "general": {
"confidenceLevel": 0.95, "confidenceLevel": 0.95,
"currentDate": "2014/02/01", "currentDate": "",
"maxSimTime": -1, "maxSimTime": -1,
"numberOfAntsPerGenerations": 2, "numberOfAntsPerGenerations": 2,
"numberOfGenerations": 4, "numberOfGenerations": 4,
"numberOfReplications": 1, "numberOfReplications": 1,
"numberOfSolutions": 4, "numberOfSolutions": 4,
"processTimeout": 200 "processTimeout": 2000,
"trace": "Yes"
}, },
"nodes": { "nodes": {
"CAD1": { "CAD1": {
...@@ -115,7 +116,7 @@ ...@@ -115,7 +116,7 @@
"processingTime": { "processingTime": {
"distributionType": "Fixed", "distributionType": "Fixed",
"max": "1", "max": "1",
"mean": 0.9, "mean": "0.9",
"min": "0.1", "min": "0.1",
"stdev": "0.1" "stdev": "0.1"
} }
...@@ -133,7 +134,7 @@ ...@@ -133,7 +134,7 @@
"processingTime": { "processingTime": {
"distributionType": "Fixed", "distributionType": "Fixed",
"max": "1", "max": "1",
"mean": 0.9, "mean": "0.9",
"min": "0.1", "min": "0.1",
"stdev": "0.1" "stdev": "0.1"
} }
...@@ -151,7 +152,7 @@ ...@@ -151,7 +152,7 @@
"processingTime": { "processingTime": {
"distributionType": "Fixed", "distributionType": "Fixed",
"max": "1", "max": "1",
"mean": 0.9, "mean": "0.9",
"min": "0.1", "min": "0.1",
"stdev": "0.1" "stdev": "0.1"
} }
...@@ -169,7 +170,7 @@ ...@@ -169,7 +170,7 @@
"processingTime": { "processingTime": {
"distributionType": "Fixed", "distributionType": "Fixed",
"max": "1", "max": "1",
"mean": 0.9, "mean": "0.9",
"min": "0.1", "min": "0.1",
"stdev": "0.1" "stdev": "0.1"
} }
...@@ -181,7 +182,8 @@ ...@@ -181,7 +182,8 @@
}, },
"E1": { "E1": {
"_class": "Dream.ExitJobShop", "_class": "Dream.ExitJobShop",
"element_id": "DreamNode_6" "element_id": "DreamNode_6",
"name": "Exit"
}, },
"EDM": { "EDM": {
"_class": "Dream.MachineManagedJob", "_class": "Dream.MachineManagedJob",
...@@ -196,7 +198,7 @@ ...@@ -196,7 +198,7 @@
"processingTime": { "processingTime": {
"distributionType": "Fixed", "distributionType": "Fixed",
"max": "1", "max": "1",
"mean": 0.9, "mean": "0.9",
"min": "0.1", "min": "0.1",
"stdev": "0.1" "stdev": "0.1"
} }
...@@ -214,7 +216,7 @@ ...@@ -214,7 +216,7 @@
"processingTime": { "processingTime": {
"distributionType": "Fixed", "distributionType": "Fixed",
"max": "1", "max": "1",
"mean": 0.9, "mean": "0.9",
"min": "0.1", "min": "0.1",
"stdev": "0.1" "stdev": "0.1"
} }
...@@ -232,63 +234,63 @@ ...@@ -232,63 +234,63 @@
"processingTime": { "processingTime": {
"distributionType": "Fixed", "distributionType": "Fixed",
"max": "1", "max": "1",
"mean": 0.9, "mean": "0.9",
"min": "0.1", "min": "0.1",
"stdev": "0.1" "stdev": "0.1"
} }
}, },
"MASS1": { "MASS1": {
"_class": "Dream.MachineManagedJob", "_class": "Dream.MouldAssembly",
"element_id": "DreamNode_10", "element_id": "DreamNode_10",
"failures": { "failures": {
"MTTF": "40", "MTTF": 40,
"MTTR": "10", "MTTR": 10,
"failureDistribution": "No", "failureDistribution": "No",
"repairman": "None" "repairman": "None"
}, },
"name": "MASS1", "name": "MouldAss",
"processingTime": { "processingTime": {
"distributionType": "Fixed", "distributionType": "Fixed",
"max": "1", "max": 1,
"mean": 0.9, "mean": 0.9,
"min": "0.1", "min": 0.1,
"stdev": "0.1" "stdev": 0.1
} }
}, },
"MASS2": { "MASS2": {
"_class": "Dream.MachineManagedJob", "_class": "Dream.MouldAssembly",
"element_id": "DreamNode_11", "element_id": "DreamNode_11",
"failures": { "failures": {
"MTTF": "40", "MTTF": 40,
"MTTR": "10", "MTTR": 10,
"failureDistribution": "No", "failureDistribution": "No",
"repairman": "None" "repairman": "None"
}, },
"name": "MASS2", "name": "MouldAss",
"processingTime": { "processingTime": {
"distributionType": "Fixed", "distributionType": "Fixed",
"max": "1", "max": 1,
"mean": 0.9, "mean": 0.9,
"min": "0.1", "min": 0.1,
"stdev": "0.1" "stdev": 0.1
} }
}, },
"MASS3": { "MASS3": {
"_class": "Dream.MachineManagedJob", "_class": "Dream.MouldAssembly",
"element_id": "DreamNode_12", "element_id": "DreamNode_12",
"failures": { "failures": {
"MTTF": "40", "MTTF": 40,
"MTTR": "10", "MTTR": 10,
"failureDistribution": "No", "failureDistribution": "No",
"repairman": "None" "repairman": "None"
}, },
"name": "MASS3", "name": "MouldAss",
"processingTime": { "processingTime": {
"distributionType": "Fixed", "distributionType": "Fixed",
"max": "1", "max": 1,
"mean": 0.9, "mean": 0.9,
"min": "0.1", "min": 0.1,
"stdev": "0.1" "stdev": 0.1
} }
}, },
"MILL1": { "MILL1": {
...@@ -304,7 +306,7 @@ ...@@ -304,7 +306,7 @@
"processingTime": { "processingTime": {
"distributionType": "Fixed", "distributionType": "Fixed",
"max": "1", "max": "1",
"mean": 0.9, "mean": "0.9",
"min": "0.1", "min": "0.1",
"stdev": "0.1" "stdev": "0.1"
} }
...@@ -322,7 +324,7 @@ ...@@ -322,7 +324,7 @@
"processingTime": { "processingTime": {
"distributionType": "Fixed", "distributionType": "Fixed",
"max": "1", "max": "1",
"mean": 0.9, "mean": "0.9",
"min": "0.1", "min": "0.1",
"stdev": "0.1" "stdev": "0.1"
} }
...@@ -355,7 +357,7 @@ ...@@ -355,7 +357,7 @@
}, },
"QIM": { "QIM": {
"_class": "Dream.QueueManagedJob", "_class": "Dream.QueueManagedJob",
"capacity": "1", "capacity": -1,
"element_id": "DreamNode_19", "element_id": "DreamNode_19",
"isDummy": "0", "isDummy": "0",
"name": "QIM", "name": "QIM",
...@@ -363,8 +365,8 @@ ...@@ -363,8 +365,8 @@
}, },
"QMASS": { "QMASS": {
"_class": "Dream.MouldAssemblyBuffer", "_class": "Dream.MouldAssemblyBuffer",
"capacity": "1", "capacity": -1,
"element_id": "DreamNode_22", "element_id": "DreamNode_20",
"isDummy": "0", "isDummy": "0",
"name": "QMASS", "name": "QMASS",
"schedulingRule": "FIFO" "schedulingRule": "FIFO"
...@@ -372,7 +374,7 @@ ...@@ -372,7 +374,7 @@
"QMILL": { "QMILL": {
"_class": "Dream.QueueManagedJob", "_class": "Dream.QueueManagedJob",
"capacity": "-1", "capacity": "-1",
"element_id": "DreamNode_20", "element_id": "DreamNode_21",
"isDummy": "0", "isDummy": "0",
"name": "QMILL", "name": "QMILL",
"schedulingRule": "FIFO" "schedulingRule": "FIFO"
...@@ -380,7 +382,7 @@ ...@@ -380,7 +382,7 @@
"QStart": { "QStart": {
"_class": "Dream.QueueManagedJob", "_class": "Dream.QueueManagedJob",
"capacity": "1", "capacity": "1",
"element_id": "DreamNode_21", "element_id": "DreamNode_22",
"isDummy": "0", "isDummy": "0",
"name": "QStart", "name": "QStart",
"schedulingRule": "FIFO" "schedulingRule": "FIFO"
...@@ -477,7 +479,7 @@ ...@@ -477,7 +479,7 @@
"top": 0.05376099760119495 "top": 0.05376099760119495
} }
}, },
"zoom_level": 0.99999 "zoom_level": 0.8099919000000001
}, },
"shift_spreadsheet": [ "shift_spreadsheet": [
[ [
...@@ -523,9 +525,9 @@ ...@@ -523,9 +525,9 @@
null, null,
"Part1", "Part1",
"Basic", "Basic",
"CAM-MILL-EDM-MILL-IM", "CAM-MILL-EDM-MILL-MASS",
"8-4-2-8-12", "8-4-2-8-8",
"Design" ""
], ],
[ [
null, null,
...@@ -534,9 +536,9 @@ ...@@ -534,9 +536,9 @@
null, null,
"Part2", "Part2",
"Basic", "Basic",
"CAM-MILL-EDM-CAM-IM", "CAM-MILL-EDM-MILL-EDM-MASS",
"20-15-8-4-13", "10-7-8-4-13-8-8",
"Design" ""
], ],
[ [
"", "",
...@@ -544,10 +546,10 @@ ...@@ -544,10 +546,10 @@
"", "",
"", "",
"Assemble", "Assemble",
"Basic", "Mould",
"MASS-IM", "MASS-IM",
"8-12", "2-12",
"Part1-Part2" ""
], ],
[ [
"Order 2", "Order 2",
...@@ -557,7 +559,7 @@ ...@@ -557,7 +559,7 @@
"Design", "Design",
"Design", "Design",
"CAD", "CAD",
"8", "6",
"" ""
], ],
[ [
...@@ -567,9 +569,9 @@ ...@@ -567,9 +569,9 @@
"", "",
"Part1", "Part1",
"Basic", "Basic",
"CAM-MILL-EDM-MILL", "CAM-MILL-EDM-MILL-MASS",
"20-15-8-12", "8-4-2-8-8",
"Design" ""
], ],
[ [
"", "",
...@@ -578,9 +580,20 @@ ...@@ -578,9 +580,20 @@
"", "",
"Part2", "Part2",
"Basic", "Basic",
"CAM-MIL", "CAM-MILL-EDM-MASS",
"2-4", "20-15-8-8-8",
"Design" ""
],
[
"",
"",
"",
"",
"Assemble",
"Mould",
"MASS-IM",
"1-12",
""
], ],
[ [
"Order 3", "Order 3",
...@@ -590,7 +603,7 @@ ...@@ -590,7 +603,7 @@
"Design", "Design",
"Design", "Design",
"CAD", "CAD",
"7", "6",
"" ""
], ],
[ [
...@@ -600,20 +613,31 @@ ...@@ -600,20 +613,31 @@
"", "",
"Part1", "Part1",
"Basic", "Basic",
"CAM-MILL-EDM-MILL-IM", "CAM-MILL-EDM-MASS",
"12-7-3-6-9", "8-4-2-8-",
"Design" ""
], ],
[ [
null, "",
null, "",
null, "",
null, "",
"Part2", "Part2",
"Basic", "Basic",
"CAM-MILL-EDM-CAM-IM", "CAM-MILL-EDM-MASS",
"20-14-9-3-12", "7-15-8-8-8",
"Design" ""
],
[
"",
"",
"",
"",
"Assemble",
"Mould",
"MASS-IM",
"1-3",
""
], ],
[ [
null, null,
......
...@@ -8,7 +8,7 @@ from datetime import datetime ...@@ -8,7 +8,7 @@ from datetime import datetime
from dream.simulation.GUI import ACO from dream.simulation.GUI import ACO
from dream.simulation.GUI.Default import schema from dream.simulation.GUI.Default import schema
MACHINE_TYPE_SET = set(["Dream.MachineManagedJob"]) MACHINE_TYPE_SET = set(["Dream.MachineManagedJob", "Dream.MouldAssembly"])
class Simulation(ACO.Simulation): class Simulation(ACO.Simulation):
def getConfigurationDict(self): def getConfigurationDict(self):
...@@ -21,6 +21,14 @@ class Simulation(ACO.Simulation): ...@@ -21,6 +21,14 @@ class Simulation(ACO.Simulation):
"_class": 'Dream.MachineManagedJob', "_class": 'Dream.MachineManagedJob',
"name": 'Machine' "name": 'Machine'
} }
conf["Dream-MouldAssembly"] = {
"property_list": [
schema["processingTime"],
schema["failures"]
],
"_class": 'Dream.MouldAssembly',
"name": 'MouldAss'
}
conf["Dream-QueueManagedJob"] = { conf["Dream-QueueManagedJob"] = {
"property_list": [ "property_list": [
schema["capacity"], schema["capacity"],
...@@ -63,7 +71,7 @@ class Simulation(ACO.Simulation): ...@@ -63,7 +71,7 @@ class Simulation(ACO.Simulation):
conf["Dream-Configuration"]["gui"]["job_schedule_spreadsheet"] = 1 conf["Dream-Configuration"]["gui"]["job_schedule_spreadsheet"] = 1
conf["Dream-Configuration"]["gui"]["job_gantt"] = 1 conf["Dream-Configuration"]["gui"]["job_gantt"] = 1
#conf["Dream-Configuration"]["gui"]["debug_json"] = 1 conf["Dream-Configuration"]["gui"]["debug_json"] = 1
# remove tools that does not make sense here # remove tools that does not make sense here
conf.pop('Dream-Machine') conf.pop('Dream-Machine')
...@@ -131,6 +139,13 @@ class Simulation(ACO.Simulation): ...@@ -131,6 +139,13 @@ class Simulation(ACO.Simulation):
route["prerequisites"] = prerequisite_list route["prerequisites"] = prerequisite_list
route_list.append(route) route_list.append(route)
route_counter += 1 route_counter += 1
"""
if sequence_step == "IM":
route_counter += 1
route_list.append({"stationIdsList": ["E1"],
"stepNumber": "%i" % route_counter})
route_counter += 1
"""
return route_list return route_list
def getListFromString(self, my_string): def getListFromString(self, my_string):
...@@ -198,12 +213,20 @@ class Simulation(ACO.Simulation): ...@@ -198,12 +213,20 @@ class Simulation(ACO.Simulation):
processing_time_list = processing_time_list.split('-') processing_time_list = processing_time_list.split('-')
component_dict = {} component_dict = {}
component_dict["_class"] = "Dream.OrderComponent" component_dict["_class"] = "Dream.OrderComponent"
if part_type == "Mould":
component_dict["_class"] = "Dream.Mould"
component_dict["componentType"] = part_type component_dict["componentType"] = part_type
component_dict["id"] = "%i" % i # XXX hack, we use it in UI to retrieve spreadsheet line component_dict["id"] = "%i" % i # XXX hack, we use it in UI to retrieve spreadsheet line
component_dict["name"] = part component_dict["name"] = part
component_list.append(component_dict) component_list.append(component_dict)
route_list = self.getRouteList(sequence_list, processing_time_list, route_list = self.getRouteList(sequence_list, processing_time_list,
prerequisite_list) prerequisite_list)
if part_type == "Mould":
route_list = route_list[1:]
counter = 0
for route in route_list:
route["stepNumber"] = "%i" % counter
counter += 1
component_dict["route"] = route_list component_dict["route"] = route_list
i+=1 i+=1
order_dict["componentsList"] = component_list order_dict["componentsList"] = component_list
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment