Arch OBJ/fr: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
No edit summary
 
Line 14: Line 14:
== Description ==
== Description ==


<div class="mw-translate-fuzzy">
En plus de l'exportateur standard '''[https://fr.wikipedia.org/wiki/Objet_3D_(format_de_fichier) .OBJ]''' de FreeCAD, l'[[Arch_Workbench/fr|atelier Arch]] dispose d'une solution alternative d'exportation qui exporte les faces coplanaires comme des faces OBJ entières, au lieu de trianguler les objets basés sur les [[Shape/fr|Shape]], comme le fait l'exportateur standard.
En plus de l'exportateur standard '''[https://fr.wikipedia.org/wiki/Objet_3D_(format_de_fichier) .OBJ]''' de FreeCAD, l'[[Arch_Workbench/fr|atelier Arch]] dispose d'une solution alternative d'exportation qui exporte les faces coplanaires comme des faces OBJ entières, au lieu de trianguler les objets basés sur les [[Shape/fr|Shape]], comme le fait l'exportateur standard.
</div>


<span id="Exporting_without_GUI"></span>
<span id="Exporting_without_GUI"></span>

Latest revision as of 08:41, 20 May 2023

Description

En plus de l'exportateur standard .OBJ de FreeCAD, l'atelier Arch dispose d'une solution alternative d'exportation qui exporte les faces coplanaires comme des faces OBJ entières, au lieu de trianguler les objets basés sur les Shape, comme le fait l'exportateur standard.

Exporter sans GUI

L'exportation sans l'interface graphique est possible à partir de la ligne de commande, en utilisant uniquement l'exportateur de l'atelier Mesh.

Dans cet exemple, un fichier STEP est importé, les couleurs de Shape sont sauvegardées, puis un maillage est généré, les couleurs de l'objet d'origine sont réappliquées sur les faces du nouveau maillage, qui est ensuite exporté au format OBJ. Comme cela est fait avec l'Atelier Mesh, le résultat est un maillage triangulé.

import Mesh
import MeshPart
import Import

data = Import.open("example.stp")
shape = data[0][0].Shape
shape_colors = data[0][1]

mesh = MeshPart.meshFromShape(Shape=shape, LinearDeflection=0.1, Segments=True)

face_colors = [(0, 0, 0)] * mesh.CountFacets

for i in range(mesh.countSegments()):
    color = shape_colors[i]
    segm = mesh.getSegment(i)
    for j in segm:
        face_colors[j] = color

mesh.write(Filename="new_example.obj", Material=face_colors, Format="obj")

Plus d'informations

Tutoriels