Introducere

Lansăm Aspose.3D FOSS pentru Python, o bibliotecă pure-Python pentru citirea, scrierea și conversia formatelor de fișiere 3D comune. Biblioteca este publicată pe PyPI ca aspose-3d-foss, are o licență MIT și nu are dependențe externe.

Dacă ați avut vreodată nevoie să inspectați sau să convertiți fișiere 3D programatic (să extrageți numărul de vârfuri ale rețelei, să direcționați geometria OBJ într-un script de procesare sau să convertiți în lot fișiere STL în glTF pentru un vizualizator web), această bibliotecă este concepută pentru acest scenariu. Nu necesită driver grafic, modul de extensie nativă sau vreo conexiune la cloud.


Ce este inclus

Grafică de scenă de bază

Fiecare fișier este încărcat într-un Scene obiect care reflectă ierarhia de noduri a fișierului original. Nodurile conțin Transform (translație, rotație, scară) și una sau mai multe entități atașate, cum ar fi Mesh, Camera, sau Light. Graful de scenă este același indiferent de formatul sursă, astfel că codul scris pentru a parcurge și procesa geometria funcționează pe toate formatele suportate fără modificări.

Acces la geometrie

Mesh obiectele expun:

  • control_points: listă de poziții de vârfuri ca Vector4 (x, y, z, w)
  • polygons: listă de liste de indici de fețe (aritate poligonală arbitrară, nu doar triunghiuri)
  • get_element(VertexElementType): recuperează straturi de date de vârf numite pentru normale, UV-uri, culori de vârf și grupuri de netezire

Materiale

LambertMaterial și PhongMaterial transportă proprietățile materialului citite din OBJ .mtl fișiere (ambient, difuz, specular, emisiv, transparență, luciu). Materialele supraviețuiesc ciclului de încărcare‑salvare pentru formatele care le suportă.

Utilitare Matematice

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, și BoundingBox sunt incluse ca tipuri de valori ușoare pentru calcule geometrice.

Animație

Clasa AnimationClip, AnimationNode, KeyframeSequence, și KeyFrame clasele oferă acces la datele de animație pe cadre cheie din formatele care le conțin, cum ar fi glTF și COLLADA.


Începe rapid

pip install aspose-3d-foss

Încarcă un fișier 3D și afișează numărul de vârfuri al fiecărui mesh:

from aspose.threed import Scene
from aspose.threed.entities import Mesh

scene = Scene.from_file("model.obj")

def visit(node):
    for entity in node.entities:
        if isinstance(entity, Mesh):
            print(f"{node.name}: {len(entity.control_points)} vertices, "
                  f"{len(entity.polygons)} polygons")
    for child in node.child_nodes:
        visit(child)

visit(scene.root_node)

Convertește același fișier în glTF:

from aspose.threed import Scene
from aspose.threed.formats import GltfSaveOptions

scene = Scene.from_file("model.obj")
scene.save("model.gltf", GltfSaveOptions())

Acesta este programul complet. Fără fișiere de configurare, fără chei API, fără apeluri de rețea.


Formate suportate

FormatExtension(s)ÎncărcareSalvareNote
Wavefront OBJ.objDaDa.mtl Încărcarea materialelor este suportată
STL.stlDaDaBinare și ASCII; opțiune de inversare a sistemului de coordonate
glTF 2.0.gltf, .glbDaDaGLB (binar auto-conținut) suportat
COLLADA.daeDaDaColladaSaveOptions disponibil cu flip_coordinate_system, enable_materials, indented
3MF.3mfDaDaPotrivit pentru fluxurile de lucru de imprimare 3D
FBX.fbxParțialN/ANumai tokenizer; parser complet în curs de dezvoltare

Detectarea formatului este automată din extensia fișierului. Opțiunile de încărcare și salvare specifice formatului (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) sunt disponibile pentru control detaliat.


Open Source și Gratuit

Biblioteca este licențiată sub MIT. O poți folosi în aplicații comerciale, o poți modifica și redistribui fără restricții. Codul sursă este disponibil pe GitHub în cadrul organizației Aspose.

Nu există niveluri de utilizare, nici limite de tokenuri și nici telemetrie. Biblioteca efectuează tot procesul local.

Dependențe: niciuna. Pachetul se instalează ca un wheel pure-Python fără extensii C și fără cerințe de runtime de la terți.


Începeți


Concluzie

Aspose.3D FOSS pentru Python 26.1.0 acoperă cele mai comune formate de fișiere 3D utilizate în unelte, fluxuri de lucru și aplicații web (OBJ, STL, glTF, COLLADA și 3MF) cu un API Python consistent și fără fricțiune la instalare. Dacă întâmpini un bug, un caz limită neacceptat sau un format pe care trebuie să-l adaugi, te rugăm să deschizi o problemă pe GitHub. Menținem activ biblioteca și așteptăm cu nerăbdare contribuțiile.