def openStlDialog(self): fname = QFileDialog.getOpenFileName(self, 'Open file', '', "Mesh (*.stl);") if fname[0]: ext_file = path.splitext(fname[0])[1] if ext_file in fname[1]: self.initParam() self.message("Load " + fname[0]) self.model_path = fname[0] else: return self.mesh = mesh.Mesh.from_file(fname[0]) self.mesh_info = modelInfo.ModelInfo(self.mesh) self.message(self.mesh_info.get_info()) verts = self.mesh.vectors.reshape(self.mesh.vectors.shape[0]*3,3) n_face = self.mesh.vectors.shape[0] faces = np.arange(n_face*3) faces = faces.reshape(n_face, 3) colors = [1,0,0,0.3] colors = colors * n_face colors = np.array(colors).reshape(n_face, 4) self.update_ui() else: return #verts = np.array([ #[0, 0, 0], #[2, 0, 0], #[1, 2, 0], #[1, 1, 1], #])*50 #faces = np.array([ #[0, 1, 2], #[0, 1, 3], #[0, 2, 3], #[1, 2, 3] #]) #colors = np.array([ #[1, 0, 0, 0.3], #[0, 1, 0, 0.3], #[0, 0, 1, 0.3], #[1, 1, 0, 0.3] #]) # clear and reset view self.view.items = [] self.add_3d_printing_region() # add new model m1 = gl.GLMeshItem(vertexes=verts, faces=faces, faceColors=colors, smooth=False) m1.translate(5, 5, 0) m1.setGLOptions('additive') self.view.addItem(m1) # reset slider self.sl.setMinimum(0) self.sl.setMaximum(0) self.sl.setValue(0)
def initParam(self): ## Init members self.m_msg = '' self.m_last_msg = '' self.model_path = '' self.vert = np.zeros(1) self.face = np.zeros(1) self.color = np.zeros(1) self.mesh = [] self.mesh_info = modelInfo.ModelInfo() self.slices = {} self.out_path = "" return
def __init__(self): self.mesh_info = modelInfo.ModelInfo()
if __name__ == "__main__": # for visualization colors = pathengine.suPath2D.generate_RGB_list(400) # parameters parser = argparse.ArgumentParser(description="Runs RMEC g-code generator.") parser.add_argument('--stl-file', dest='stl_file', required=True) parser.add_argument('--output-path', dest='output_path', required=False) parser.add_argument('--slice-layers', dest='N', required=False) args = parser.parse_args() N = 10 file_path = "/" if args.N: N = int(args.N) if args.stl_file: file_path = args.stl_file if args.output_path: output_path = args.output_path # load stl ms = mesh.Mesh.from_file(file_path) m = modelInfo.ModelInfo(ms) m.path = file_path m.set_layers(N) #path = gen_continuous_path(m, "r:/images", N, 3) path = gen_continuous_path_with_constraint(m, "r:/images", 30, 30, -8) print(path.shape)