Formaattituki

Aspose.3D FOSS for Python voi lukea ja kirjoittaa seitsemän 3D-muotoa käyttäen yhtä muistissa olevaa kohtausrepresentaatiota. Kirjasto muuntaa jokaisen formaatin yhteiseksi Scene objektiksi latauksen yhteydessä ja sarjoittaa sen objektin takaisin kohdeformaattiin tallennuksen yhteydessä. Tämä tarkoittaa, että OBJ:sta ladattu kohtaus voidaan tallentaa suoraan glTF-muotoon ilman välivaiheita.


Tuetut formaatit

MuotoTiedostopääteLukuKirjoitusAsetusluokkaHuomautuksia
Wavefront OBJ.objKylläKylläObjLoadOptions.mtl materiaalin lataus tuettu
STL (binary).stlKylläKylläStlSaveOptionsBinäärinen ja ASCII-luku; tallennus oletuksena binäärinen
STL (ASCII).stlKylläKylläStlSaveOptionsKierrosmatka vahvistettu
glTF 2.0.gltfKylläKylläGltfSaveOptionsKoko kohtausgrafiikka, materiaalit ja animaatiot säilytetään
GLB (binary glTF).glbKylläKylläGltfSaveOptionsYksittäinen binäärikontti
COLLADA.daeKylläKylläColladaLoadOptions / ColladaSaveOptionsSkenaarion hierarkia ja materiaalit
3MF.3mfKylläKylläThreeMfSaveOptionsAdditiivisen valmistuksen formaatti
FBX.fbxOsittainenEiN/ATokenisoija toimii; täysi jäsentäjä on työn allaei tuotantokelpoinen)

OBJ-formaatti

Wavefront OBJ on laajimmin tuettu vaihtomuoto staattisille verkkoille. Aspose.3D FOSS lataa geometrian (solmut, normaalit, UV-koordinaatit ja polygonipinnat) ja valinnaisesti siihen liittyvän .mtl materiaalitiedoston.

ObjLoadOptions

OminaisuusTyyppiOletusKuvaus
enable_materialsboolTrueJäsennä .mtl OBJ-otsakkeen viittaama tiedosto
flip_coordinate_systemboolFalseMuunna Y-ylöspäin oikeakätisestä Z-ylöspäin oikeakätiseksi
normalize_normalboolTrueNormalisoi kaikki tuodut pintanormaalit yksikköpituuteen
scalefloat1.0Yhtenäinen skaalauskerroin, joka sovelletaan kaikkiin vertex-sijainteihin

OBJ-tiedoston lataaminen

from aspose.threed import Scene
from aspose.threed.formats import ObjLoadOptions

options = ObjLoadOptions()
options.enable_materials = True
options.flip_coordinate_system = False
options.scale = 1.0

scene = Scene()
scene.open("model.obj", options)

print(f"Top-level nodes: {len(scene.root_node.child_nodes)}")

Tallennetaan OBJ:ksi

scene.save("output.obj")

OBJ-vienti kirjoittaa kärkipisteet ja monikulmioiden kasvot. Jos kohtaus sisältää LambertMaterial tai PhongMaterial objekteja, kirjasto kirjoittaa kumppani .mtl tiedoston automaattisesti.


STL-muoto

STL (STereoLithography) tallentaa kolmioverkot indeksoimattomana listana faseteista. Sekä binaari- että ASCII-muodot ovat tuettuja luettavaksi; kirjasto käyttää oletuksena binaaria tallennettaessa.

StlSaveOptions

StlSaveOptions ei sisällä pakollisia kenttiä. Instansoi se välittääksesi scene.save():

from aspose.threed.formats import StlSaveOptions

opts = StlSaveOptions()
scene.save("output.stl", opts)

Kierrosesimerkki

from aspose.threed import Scene

##Load
scene = Scene.from_file("model.stl")

##Inspect
for node in scene.root_node.child_nodes:
    if node.entity:
        print(f"{node.name}: {len(node.entity.control_points)} vertices")

##Save
scene.save("roundtrip.stl")

STL tallentaa vain kolmio-geometrian, eikä sisällä normaalivektoreita facetin normaalin lisäksi, UV-koordinaatteja, materiaaleja tai hierarkiaa. Jos kohtauksessasi on nelikulmioita tai korkeamman asteen polygonia, ne trianguloidaan automaattisesti tallennettaessa.


glTF / GLB -formaatti

glTF 2.0 on suositeltu formaatti nykyaikaiselle 3D-vaihdolle. Se säilyttää koko kohtausgraafin (soluhierarkian, nimetyt solmut, muunnokset), materiaalit (LambertMaterial, PhongMaterial → PBR-muunnos), ja animaatioleikkeet. GLB on yhden tiedoston binäärinen säiliövariantti.

GltfSaveOptions

from aspose.threed.formats import GltfSaveOptions

opts = GltfSaveOptions()
scene.save("output.gltf", opts)   # JSON + external .bin
scene.save("output.glb",  opts)   # Self-contained binary

Materiaalituki

Aspose.3D FOSS -materiaalit on kartoitettu glTF:iin pbrMetallicRoughness viedessä:

from aspose.threed import Scene
from aspose.threed.shading import PhongMaterial
from aspose.threed.utilities import Vector3

scene = Scene()
node = scene.root_node.create_child_node("object")

mat = PhongMaterial()
mat.diffuse_color  = Vector3(0.8, 0.2, 0.2)   # red
mat.specular_color = Vector3(1.0, 1.0, 1.0)
mat.shininess = 50.0
node.material = mat

scene.save("colored.gltf")

glTF-tulosteen tarkistaminen

import json

with open("output.gltf") as f:
    data = json.load(f)

print(f"Asset version : {data['asset']['version']}")
print(f"Nodes         : {len(data.get('nodes', []))}")
print(f"Meshes        : {len(data.get('meshes', []))}")

COLLADA -formaatti

COLLADA (.dae) on XML-pohjainen formaatti, joka tukee kohtaushierarkioita, materiaaleja, useita UV-kanavia ja luurankoanimaatiota. Aspose.3D FOSS lukee ja kirjoittaa koko solmutason puun ja materiaalimäärittelyt.

from aspose.threed import Scene

##Load a COLLADA file
scene = Scene.from_file("model.dae")

##Inspect top-level nodes
for node in scene.root_node.child_nodes:
    print(f"  {node.name}")

##Save back to COLLADA
scene.save("output.dae")

COLLADA on hyvä valinta, kun tarvitset hierarkioiden pyöräytyksen nimetyillä solmuilla ja materiaaleilla ilman tietojen menetyksiä.


3MF Format

3MF (3D Manufacturing Format) targets additive manufacturing (3D printing) workflows. It stores triangle geometry, colour, and print-specific metadata in a ZIP-based container.

from aspose.threed import Scene
from aspose.threed.formats import ThreeMfSaveOptions

scene = Scene.from_file("part.stl")   # Load from STL
opts  = ThreeMfSaveOptions()
scene.save("part.3mf", opts)          # Write as 3MF

3MF is the recommended export format when targeting slicer software (Cura, PrusaSlicer, Bambu Studio, etc.).


FBX-muoto

Tila: käynnissä (ei tuotantokelpoinen).

FBX (.fbx) tuki Aspose.3D FOSS:ssa on tällä hetkellä tokenisoijavaiheessa. Binäärinen FBX-tokenisoija pystyy jäsentämään tiedoston rakenteen, mutta täysi solmu-, verkko- ja materiaalijäsennin sisältää tunnettuja virheitä eikä ole valmis. FBX-lukutuloksia tulisi pitää kokeellisina.

Älä käytä FBX:ää tuotantoputkissa tämän julkaisun kanssa. Jos lähdetietosi ovat FBX-muodossa, muunna ne ensin glTF- tai OBJ-muotoon käyttäen Blenderiä tai FBX Review -ohjelmaa ennen lataamista Aspose.3D FOSS:lla.

FBX-tallennusta ei tueta.


Formaatin automaattinen tunnistus

Scene.from_file() ja scene.open() tunnistaa formaatin automaattisesti tiedostopäätteen ja, jos saatavilla, tiedoston otsakkeen taikabittien avulla:

from aspose.threed import Scene

##The library detects each format without being told explicitly
scene_obj  = Scene.from_file("model.obj")
scene_glb  = Scene.from_file("model.glb")
scene_stl  = Scene.from_file("model.stl")
scene_dae  = Scene.from_file("model.dae")
scene_3mf  = Scene.from_file("model.3mf")

Jos tiedostopääte puuttuu tai on epäselvä, kirjasto käyttää varalla otsakkeen tarkistusta (taikabittejä). Tukemattomat tai tunnistamattomat tiedostot aiheuttavat IOError kuvaavan viestin.


Vinkkejä ja parhaat käytännöt

  • Käytä glTF- tai GLB-muotoa moderneissa putkistoissa. glTF säilyttää koko kohtausgraafin, materiaalit ja animaatiotiedot. Se on kaikkein täydellisin formaatti vaihdettavaksi pelimoottoreiden ja verkkokatselijoiden kanssa.
  • Käytä OBJ-muotoa maksimaalisen yhteensopivuuden saavuttamiseksi. OBJ on tuettu käytännössä kaikissa 3D-työkaluissa. Se on rajoitettu staattisiin verkkoihin, mutta on erittäin siirrettävä.
  • Käytä 3MF:tä tulostukseen. 3MF carries colour, orientation hints, and print settings that STL cannot express.
  • Vältä FBX:ää, kunnes se on tuotantokelpoinen. Tarkista julkaisumuistiinpanot siitä versiosta, jossa täysi FBX-jäsennys on valmis.
  • Varmista, että tallennustiedostopääte vastaa formaattia. Älä anna .gltf tiedostopäätettä, kun haluat binäärisen GLB:n; käytä .glb erikseen. Tiedostopääte määrää, mitä sarjoittajaa käytetään.
  • Tarkista monikulmioiden yhteensopivuus. STL- ja 3MF-tiedostot vaativat kolmioita. Nelikulmiot ja N-gonit trianguloidaan automaattisesti tallennettaessa, mutta kärkipisteiden määrä kasvaa. Jos sinun täytyy hallita triangulaatiota, kutsu mesh.triangulate() ennen tallentamista.
 Suomi