def gen_geoms(self, joint_def, layerdef, design,split_buffer): print('Generating geometry') hinge_gap = joint_def.width *popupcad.csg_processing_scaling # split_buffer = .1 * hinge_gap sublaminate_layers = [ layerdef.getlayer(item) for item in joint_def.sublaminate_layers] hingelayer = layerdef.getlayer(joint_def.joint_layer) operationgeom = design.sketches[joint_def.sketch].output_csg() sketch_result = Laminate(design.return_layer_definition()) sketch_result.replacelayergeoms(hingelayer, operationgeom) hingelines = sketch_result.to_generic_laminate().geoms[hingelayer] hingelines = [item for item in hingelines if item.is_valid_bool()] buffered_split = sketch_result.buffer(split_buffer,resolution=self.resolution) allgeoms4 = [] for geom in hingelines: geom = geom.to_shapely() laminate = Laminate(layerdef) for layer in sublaminate_layers: laminate.replacelayergeoms(layer, [geom]) allgeoms4.append( laminate.buffer(hinge_gap,resolution=self.resolution)) return allgeoms4, buffered_split, hingelines
def gen_geoms(self, joint_def, layerdef, design): hinge_gap = joint_def.width *popupcad.csg_processing_scaling split_buffer = .1 * hinge_gap stiffness = joint_def.stiffness damping = joint_def.damping preload_angle = joint_def.preload_angle sublaminate_layers = [ layerdef.getlayer(item) for item in joint_def.sublaminate_layers] hingelayer = layerdef.getlayer(joint_def.joint_layer) operationgeom = design.sketches[joint_def.sketch].output_csg() sketch_result = Laminate(design.return_layer_definition()) sketch_result.replacelayergeoms(hingelayer, operationgeom) hingelines = sketch_result.to_generic_laminate().geoms[hingelayer] hingelines = [item for item in hingelines if item.is_valid_bool()] buffered_split = sketch_result.buffer(split_buffer,resolution=self.resolution) allgeoms4 = [] for geom in hingelines: geom = geom.to_shapely() laminate = Laminate(layerdef) for layer in sublaminate_layers: laminate.replacelayergeoms(layer, [geom]) allgeoms4.append(laminate.buffer(hinge_gap,resolution=self.resolution)) joint_props = [(stiffness, damping, preload_angle) for item in hingelines] return allgeoms4, buffered_split, hingelines, joint_props
def gen_geoms(self, joint_def, layerdef, design, split_buffer): print('Generating geometry') hinge_gap = joint_def.width * popupcad.csg_processing_scaling # split_buffer = .1 * hinge_gap sublaminate_layers = [ layerdef.getlayer(item) for item in joint_def.sublaminate_layers ] hingelayer = layerdef.getlayer(joint_def.joint_layer) operationgeom = design.sketches[joint_def.sketch].output_csg() sketch_result = Laminate(design.return_layer_definition()) sketch_result.replacelayergeoms(hingelayer, operationgeom) hingelines = sketch_result.to_generic_laminate().geoms[hingelayer] hingelines = [item for item in hingelines if item.is_valid_bool()] buffered_split = sketch_result.buffer(split_buffer, resolution=self.resolution) allgeoms4 = [] for geom in hingelines: geom = geom.to_shapely(scaling=popupcad.csg_processing_scaling) laminate = Laminate(layerdef) for layer in sublaminate_layers: laminate.replacelayergeoms(layer, [geom]) allgeoms4.append( laminate.buffer(hinge_gap, resolution=self.resolution)) return allgeoms4, buffered_split, hingelines
def gen_geoms(self,joint_def,layerdef,design): hinge_gap = joint_def.width*popupcad.internal_argument_scaling # safe_buffer1 = .5*hinge_gap # safe_buffer2 = .5*hinge_gap # safe_buffer3 = .5*hinge_gap split_buffer = .1*hinge_gap stiffness = joint_def.stiffness damping = joint_def.damping preload_angle = joint_def.preload_angle sublaminate_layers = [layerdef.getlayer(item) for item in joint_def.sublaminate_layers] hingelayer = layerdef.getlayer(joint_def.joint_layer) operationgeom = design.sketches[joint_def.sketch].output_csg() sketch_result = Laminate(design.return_layer_definition()) sketch_result.replacelayergeoms(hingelayer,operationgeom) hingelines = sketch_result.genericfromls()[hingelayer] buffered_split= sketch_result.buffer(split_buffer,resolution = self.resolution) allgeoms4 = [] for geom in hingelines: geom = geom.outputshapely() laminate = Laminate(layerdef) for layer in sublaminate_layers: laminate.replacelayergeoms(layer,[geom]) allgeoms4.append(laminate.buffer(hinge_gap,resolution = self.resolution)) joint_props = [(stiffness,damping,preload_angle) for item in hingelines] return allgeoms4, buffered_split,hingelines,joint_props