import pymeshlab def convert_simplify_and_scale_ply_to_obj(input_file, output_file, target_faces, scale_factor): # Carrega o arquivo PLY usando pymeshlab ms = pymeshlab.MeshSet() ms.load_new_mesh(input_file) # Simplificação de malha com um número alvo de faces ms.meshing_decimation_quadric_edge_collapse(targetfacenum=target_faces) # Reduz a escala do objeto # Usando uma transformação manual com multiplicação de coordenadas ms.apply_filter('transform_scale', xscale=scale_factor, yscale=scale_factor, zscale=scale_factor) # Salva como arquivo OBJ, garantindo que as cores sejam mantidas ms.save_current_mesh(output_file, save_vertex_color=True) print(f"Conversão, simplificação e escalamento concluídos. Arquivo OBJ salvo em: {output_file}") if __name__ == "__main__": input_file = 'montagem_pulverizador.ply' # Substitua pelo caminho do seu arquivo PLY de entrada output_file = 'montagem_pulverizador_2.obj' # Substitua pelo caminho do seu arquivo OBJ de saída target_faces = 50000 # Número desejado de faces após a simplificação scale_factor = 0.5 # Fator de escala (0.5 reduz pela metade, 2.0 dobra o tamanho, etc.) convert_simplify_and_scale_ply_to_obj(input_file, output_file, target_faces, scale_factor)