Arch OBJ/de: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
Line 9: Line 9:
==Beschreibung==
==Beschreibung==


Zusätzlich zur Standard-FreeCAD [http://en.wikipedia.org/wiki/Wavefront_.obj_file OBJ]-Exportfunktion hat das [[Arch_Workbench/de|Arch-Modul]] eine alternative Exportfunktion, die nebeneinander liegende Flächen als vollständige (whole) Flächen exportiert, anstatt als dreiecksbasierte [[Shape/de|Formteil]]-Objekte, wie es die Standard-Exportfunktion tut.
<div class="mw-translate-fuzzy">
Zusätzlich zur Standard-FreeCAD [http://en.wikipedia.org/wiki/Wavefront_.obj_file OBJ]-Exportfunktion hat das [[Arch_Module/de|Arch-Modul]] eine alternative Exportfunktion, die nebeneinander liegende Flächen als vollständige (whole) Flächen exportiert, anstatt als dreiecksbasierte [[Shape/de|Formteil]]-Objekte, wie es die Standard-Exportfunktion tut.
</div>


== Exportieren ohne GUI ==
== Exportieren ohne GUI ==

Revision as of 12:03, 28 August 2021

Beschreibung

Zusätzlich zur Standard-FreeCAD OBJ-Exportfunktion hat das Arch-Modul eine alternative Exportfunktion, die nebeneinander liegende Flächen als vollständige (whole) Flächen exportiert, anstatt als dreiecksbasierte Formteil-Objekte, wie es die Standard-Exportfunktion tut.

Exportieren ohne GUI

Exportieren ohne die grafische Benutzeroberfläche ist auf der Kommandozeile nur mit dem Mesh-Arbeitsbereich-Exporter möglich.

In diesem Beispiel wird eine STEP-Datei importiert, die Farben der Form werden gespeichert, dann ein Polygonnetz daraus erstellt, die Farben des Originalobjekts auf die Flächen des neuen Netzes angewendet, das dann im OBJ-Format exportiert wird. Weil dies mit dem Mesh-Arbeitsbereich passiert, ist das Ergebnis ein trianguliertes Netz.

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")

Weitere Informationen

Übungen