def execute(self, context): keywords = self.as_keywords(ignore=("axis_forward", "axis_up", "use_selection", "global_scale", "check_existing", "filter_glob", "use_scene_unit", "use_mesh_modifiers", "batch_mode" )) scene = context.scene Shell = bpy.data.objects.get('Final Splint') #Check for CORK created Shell if not Shell: Shell = bpy.data.objects.get('Splint Shell') if not Shell: self.report({'ERROR'}, 'You have not created your splint yet') return {'CANCEL'} #TODO, maybe give option to export the sweep surface or convex surface data_seq = [Shell] # Take into account scene's unit scale, so that 1 inch in Blender gives 1 inch elsewhere! See T42000. global_scale = self.global_scale if scene.unit_settings.system != 'NONE' and self.use_scene_unit: global_scale *= scene.unit_settings.scale_length global_matrix = axis_conversion(from_forward=self.axis_forward, from_up=self.axis_up, ).to_4x4() * Matrix.Scale(global_scale, 4) if self.batch_mode == 'OFF': faces = itertools.chain.from_iterable( blender_utils.faces_from_mesh(ob, global_matrix, self.use_mesh_modifiers) for ob in data_seq) stl_utils.write_stl(faces=faces, **keywords) elif self.batch_mode == 'OBJECT': prefix = os.path.splitext(self.filepath)[0] keywords_temp = keywords.copy() for ob in data_seq: faces = blender_utils.faces_from_mesh(ob, global_matrix, self.use_mesh_modifiers) keywords_temp["filepath"] = prefix + bpy.path.clean_name(ob.name) + ".stl" stl_utils.write_stl(faces=faces, **keywords_temp) return {'FINISHED'}
def export(filepath, use_mesh_modifiers=True, batch_mode='OFF'): global_matrix = axis_conversion( to_forward='Y', to_up='Z', ).to_4x4() * Matrix.Scale(1.0, 4) if batch_mode == 'OFF': faces = itertools.chain.from_iterable( blender_utils.faces_from_mesh(ob, global_matrix, use_mesh_modifiers) for ob in context.scene.objects) stl_utils.write_stl(faces=faces, filepath=filepath) elif batch_mode == 'OBJECT': prefix = os.path.splitext(filepath)[0] for ob in context.scene.objects: faces = blender_utils.faces_from_mesh(ob, global_matrix, use_mesh_modifiers) stl_utils.write_stl(faces=faces, filepath=filepath)
def execute(self, context): keywords = self.as_keywords(ignore=( "axis_forward", "axis_up", "global_scale", "check_existing", "filter_glob", "use_mesh_modifiers", )) global_matrix = axis_conversion( to_forward=self.axis_forward, to_up=self.axis_up, ).to_4x4() * Matrix.Scale(self.global_scale, 4) if self.one_file_per_object: basepath = os.path.splitext(self.filepath)[0] os.mkdir(basepath) print('Exporting multiple .stl files into {}'.format(basepath)) for ob in context.selected_objects: stlfile = basepath + os.sep + ob.name + '.stl' print(stlfile) keywords = {'filepath': stlfile, 'ascii': self.ascii} faces = itertools.chain.from_iterable( blender_utils.faces_from_mesh(ob, global_matrix, self.use_mesh_modifiers) for ob in [ob]) stl_utils.write_stl(faces=faces, **keywords) else: faces = itertools.chain.from_iterable( blender_utils.faces_from_mesh(ob, global_matrix, self.use_mesh_modifiers) for ob in context.selected_objects) stl_utils.write_stl(faces=faces, **keywords) return {'FINISHED'}
def get_oclSTL(operation): me = None oclSTL = ocl.STLSurf() for collision_object in operation.objects: activate(collision_object) if collision_object.type == "MESH": global_matrix = mathutils.Matrix.Identity(4) faces = blender_utils.faces_from_mesh(collision_object, global_matrix, operation.use_modifiers) for face in faces: t = ocl.Triangle(ocl.Point(face[0][0]*OCL_SCALE, face[0][1]*OCL_SCALE, (face[0][2]+operation.skin)*OCL_SCALE), ocl.Point(face[1][0]*OCL_SCALE, face[1][1]*OCL_SCALE, (face[1][2]+operation.skin)*OCL_SCALE), ocl.Point(face[2][0]*OCL_SCALE, face[2][1]*OCL_SCALE, (face[2][2]+operation.skin)*OCL_SCALE)) oclSTL.addTriangle(t) # FIXME needs to work with collections return oclSTL
vectmod = vect radvector_mod(vectmo) #for and proccess the object math_lev_mod("3*x-10") nholes = 0.003 * int(frec) nholes = int(nholes) randomize_holes(nholes,meshmap,8,4) bpy.ops.object.modifier_add(type='SUBSURF') bpy.ops.object.modifier_add(type='SUBSURF') facesgen=[] obj = bpy.context.selected_objects[0] facestosave = blender_utils.faces_from_mesh(obj,True,True) #save object save_object(objectpath+timedate+".stl",facestosave) print("------------ Object data ------------------") print("- Frquency data:" +str(frec)+" - N holes: "+str(nholes)) print("- Legnth scream:" + str(screamlength)) print("- Average loudness:"+ str(average)) print("- Max loudness:" + str(maxvect)) print("- Min loudness:" + str(minvect)) print("- Scaling XY value: " + str(scalefactor)) print("- Scaling Z value: " + str(zscale)) if(debugplot == True): csocket.send (bytes("showplots", 'UTF-8')) # Convert and print the object. Pronsole & skeinforge #