Ievads

Mēs izlaidām Aspose.3D FOSS for Python, tīra-Python bibliotēka lasīšanai, rakstīšanai un kopīgu 3D failu formātu konvertēšanai. Bibliotēka publicēta PyPI kā aspose-3d-foss, ir ar MIT licenci, un nav ārēju atkarību.

Ja jebkad esat vajadzējis programmatūrā pārbaudīt vai konvertēt 3D failus (izgūt režģa virsotņu skaitu, pārsūtīt OBJ ģeometriju uz apstrādes skriptu vai masveida konvertēt STL failus uz glTF tīmekļa skatītājam), šī bibliotēka ir izveidota tieši šim lietojumam. Tai nav vajadzīgs grafikas draiveris, vietējais paplašinājuma modulis vai jebkāda mākoņa savienojums.


Kas iekļauts

Pamat Scēnas Grafs

Katrs fails tiek ielādēts uz Scene objektu, kas atspoguļo sākotnējā faila mezglu hierarhiju. Mezgli satur Transform (tulkojumu, rotāciju, mērogu) un vienu vai vairākas pievienotas vienības, piemēram Mesh, Camera, vai Light. Skatuves grafiks ir vienāds neatkarīgi no avota formāta, tāpēc kods, kas rakstīts, lai pārvietotos un apstrādātu ģeometriju, darbojas visos atbalstītajos formātos bez izmaiņām.

Ģeometrijas Piekļuve

Mesh objekti atklāj:

  • control_points: virsotņu pozīciju saraksts kā Vector4 (x, y, z, w)
  • polygons: seju indeksa sarakstu saraksts (arbitāra daudzstūru aritāte, ne tikai trīsstūri)
  • get_element(VertexElementType): izgūst nosauktus virsotņu datu slāņus normālēm, UV, virsotņu krāsām un gludināšanas grupām

Materiāli

LambertMaterial un PhongMaterial nes materiāla īpašības, kas nolasītas no OBJ .mtl faili (ambient, diffuse, specular, emissive, transparency, shininess). Materiāli iztur ielādes‑saglabāšanas ciklu formātiem, kas tos atbalsta.

Matemātikas utilītprogrammas

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, un BoundingBox tiek iekļauti kā vieglie vērtību tipi ģeometrijas aprēķiniem.

Animācija

Tas AnimationClip, AnimationNode, KeyframeSequence, un KeyFrame klases nodrošina piekļuvi atslēgkadru animācijas datiem no formātiem, kas tos nes, piemēram, glTF un COLLADA.


Ātrais sākums

pip install aspose-3d-foss

Ielādējiet 3D failu un izdrukājiet katra režģa virsotņu skaitu:

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)

Pārvērst to pašu failu uz glTF:

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

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

Tas ir pilns programmas kods. Nav konfigurācijas failu, nav API atslēgu, nav tīkla izsaukumu.


Atbalstītie formāti

FormātsExtension(s)IelādētSaglabātPiezīmes
Wavefront OBJ.obj.mtl atbalstīta materiālu ielāde
STL.stlBinārs un ASCII; koordinātu sistēmas apgriešanas iespēja
glTF 2.0.gltf, .glbGLB (neatkarīgs binārais fails) atbalstīts
COLLADA.daeColladaSaveOptions pieejams ar flip_coordinate_system, enable_materials, indented
3MF.3mfPiemērots 3D drukāšanas darbplūsmām
FBX.fbxDaļējsN/ATikai tokenizators; pilns parsētājs izstrādē

Formāta noteikšana notiek automātiski no faila paplašinājuma. Formātam specifiskās ielādes un saglabāšanas iespējas (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) ir pieejamas smalkākai vadībai.


Atvērtā koda un bezmaksas

Bibliotēka ir licencēta saskaņā ar MIT. To varat izmantot komerciālās lietojumprogrammās, modificēt un izplatīt bez ierobežojumiem. Avots ir pieejams GitHub zem Aspose organizācijas.

Nav lietošanas līmeņu, nav tokenu ierobežojumu un nav telemetrijas. Bibliotēka veic visu apstrādi lokāli.

Atkarības: nav. Pakotne instalējas kā tīrs-Python wheel bez C paplašinājumiem un bez trešo pušu izpildlaika prasībām.


Sākums


Secinājums

Aspose.3D FOSS for Python 26.1.0 aptver vispopulārākos 3D failu formātus, kas tiek izmantoti instrumentu izstrādē, datu plūsmās un tīmekļa lietojumprogrammās (OBJ, STL, glTF, COLLADA un 3MF), ar konsekventu Python API un bez instalācijas traucējumiem. Ja saskaraties ar kļūdu, neatbalstītu gadījumu vai formātu, ko vajadzētu pievienot, lūdzu, atveriet problēmu (issue) GitHub. Mēs aktīvi uzturam bibliotēku un laipni gaidām ieguldījumus.