|
@@ -30,16 +30,24 @@ transformation_add_AL({}, {}, "models/DTCBD/restartSim", open("models/generic/re
|
|
|
model_add("models/live_modelling_DTCBD", "formalisms/ProcessModel", open("models/DTCBD/PM_live_modelling.mvc", 'r').read())
|
|
|
|
|
|
def modify_model(model):
|
|
|
- time.sleep(10)
|
|
|
-
|
|
|
- if len(all_instances(model, "Design/ProbeBlock")) > 2:
|
|
|
- import time
|
|
|
- print("Sufficient Probeblocks detected, so pausing with edits")
|
|
|
- while 1:
|
|
|
- time.sleep(1)
|
|
|
-
|
|
|
- new_block = instantiate(model, "Design/ProbeBlock")
|
|
|
- attr_assign(model, new_block, "name", "MyProbeBlock")
|
|
|
- print("Added new probeblock: " + new_block)
|
|
|
+ elements = element_list_nice(model)
|
|
|
+ for e in elements:
|
|
|
+ if e.get("value", None) == 2.0:
|
|
|
+ while 1:
|
|
|
+ time.sleep(1)
|
|
|
+ elif e.get("type", None) == "Design/AdditionBlock":
|
|
|
+ adder = e["id"]
|
|
|
+ links = read_outgoing(model, adder, "Design/Link")
|
|
|
+ destinations = [read_association_destination(model, link) for link in links]
|
|
|
+ else:
|
|
|
+ mult = instantiate(model, "Design/MultiplyBlock")
|
|
|
+ two = instantiate(model, "Design/ConstantBlock")
|
|
|
+ attr_assign(model, two, "value", 2.0)
|
|
|
+ instantiate(model, "Design/Link", (adder, mult))
|
|
|
+ instantiate(model, "Design/Link", (two, mult))
|
|
|
+ for link in links:
|
|
|
+ delete_element(model, link)
|
|
|
+ for destination in destinations:
|
|
|
+ instantiate(model, "Design/Link", (mult, destination))
|
|
|
|
|
|
process_execute("models/live_modelling_DTCBD", {"design_model": "models/DTCBD_model"}, {"models/DTCBD/edit": modify_model})
|