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