27 lines
1.3 KiB
Python
27 lines
1.3 KiB
Python
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)
|