def operate(self,design): operationgeom = design.sketches[self.sketchid].output_csg() layers = [design.return_layer_definition().getlayer(item) for item in self.layer_links] try: laminate1 = design.op_from_ref(self.operation_link1).output[self.getoutputref()].csg except NoOperation: laminate1 = Laminate(design.return_layer_definition()) laminate2 = Laminate(design.return_layer_definition()) for layer in layers: laminate2.replacelayergeoms(layer,operationgeom) lsout = laminate1.binaryoperation(laminate2,self.function) return lsout