Exemplo n.º 1
0
    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)        
Exemplo n.º 2
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 
Exemplo n.º 3
0
 def __init__(self):
     self.mesh_info = modelInfo.ModelInfo()
Exemplo n.º 4
0
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)