Johdanto

Meillä on ilo ilmoittaa saatavuudesta Aspose.3D FOSS TypeScriptille nimisenä @aspose/3d npm-pakettina. Tämä MIT-lisenssillä varustettu kirjasto tuo tuotantotason 3D‑kohtauskäsittelyn TypeScript‑ ja Node.js‑sovelluksiin ilman, että vaaditaan natiiveja binaareja, alusta‑kohtaisia työkaluja tai kaupallisia lisenssejä.

Kirjasto on suunniteltu yksinkertaisen Scene API:n: ladata 3D‑tiedosto käyttäen scene.open(), tarkastella tai muuntaa kohtausgraafia, ja kirjoittaa tuloksen käyttäen scene.save(). Täydet TypeScript‑tyyppimääritelmät sisältyvät; erillistä @types/ pakettia ei tarvita.

Keskeiset ominaisuudet

Moniformaattinen I/O. Paketti lukee ja kirjoittaa kuusi suurta 3D‑formaattia yhdellä asennuksella. OBJ, glTF 2.0, GLB, STL, 3MF ja COLLADA tukevat sekä tuontia että vientiä. FBX‑tuonti‑/vientiluokkia on olemassa, mutta formaatin automaattinen tunnistus ei ole vielä kytketty, joten FBX‑tiedostoja ei voida ladata via scene.open().

Ensiluokkainen TypeScript‑tuki. Kaikki julkiset luokat, luettelotyypit ja asetustyypit on täysin tyypitetty. IDE:t, joilla on TypeScript‑kielipalvelutuki (VS Code, WebStorm ym.), tarjoavat tarkan automaattisen täydennyksen ja sisäisen dokumentaation jokaiselle API‑kutsulle.

Node.js 18–22+ yhteensopivuus. Pakettia on testattu Node.js 18, 20 ja 22 LTS -julkaisuja vastaan. Asennuksen aikana ei käännetä natiiveja lisäosia, joten se toimii kaikilla Node.js:n tukemilla alustoilla.

Yksi ajonaikainen riippuvuus. Ainoa riippuvuus on xmldom, käytetään yksinomaan COLLADA XML -jäsennykseen. Kaikki muut formaattiparsijat ovat puhtaita JavaScript‑toteutuksia.

MIT-lisenssi. Käytä @aspose/3d kaupallisissa, avoimen lähdekoodin tai sisäisissä projekteissa ilman rajoituksia.

Pikakäynnistys

Asenna paketti:

npm install @aspose/3d

Lataa OBJ‑tiedosto ja muunna se binaariseksi GLB:ksi:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true;   // produce a single .glb file
scene.save('output.glb', GltfFormat.getInstance(), saveOpts);

console.log('Converted to GLB successfully');

Käy läpi kohtausnodet tarkastellaksesi geometriaa:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

for (const node of scene.rootNode.childNodes) {
    console.log(`Node: ${node.name}`);
    if (node.entity) {
        console.log(`  Entity type: ${node.entity.constructor.name}`);
    }
}

Tuetut tiedostomuodot

MuotoTiedostopääteTuontiVientiHuomautukset
Wavefront OBJ.objKylläKylläLukee/kirjoittaa .mtl materiaalitiedostot
glTF 2.0.gltfKylläKylläJSON ulkoisella .bin puskuri
Binäärinen GLB.glbKylläKylläAseta binaryMode: true sisään GltfSaveOptions
STL.stlKylläKylläASCII- ja binäärinen STL
3MF.3mfKylläKylläOpen Packaging Convention -arkisto
FBX.fbxEi*Ei*Importer/exporter on olemassa, mutta formaatin automaattinen tunnistus ei ole kytketty
COLLADA.daeKylläKylläVaatii paketoitua xmldom riippuvuus

TypeScript‑edut

Työskenteleminen @aspose/3d TypeScriptissä havaitsee luokkarajat virheet käännösaikana sen sijaan, että ne ilmenisivät suoritusaikana. Kun kutsut scene.save(), kääntäjä tarkistaa, että asetuskohde vastaa odotettua SaveOptions alityyppiä valitulle formaatille. Formaattiin spesifiset lataus- ja tallennusasetukset paljastavat vain kyseiseen formaattiin liittyvät ominaisuudet; ei ole olemattomia tyypittömiä asetuskasseja, joista arvata.

Esimerkiksi, GltfSaveOptions.binaryMode on tyypitetty boolean, joten kääntäjä hylkää saveOpts.binaryMode = 'yes' ennen kuin mikään koodi suoritetaan. Animaatio-ominaisuudet kohteessa AnimationClip, materiaalikanavat kohteessa PbrMaterial, ja vertex-elementtityypit kohteessa VertexElement ovat kaikki samankaltaisesti tyypitettyjä ja löydettävissä IntelliSensen kautta ilman ulkoisen dokumentaation konsultointia.

Avoin lähdekoodi

Paketti on julkaistu lisenssin alla MIT License. Lähdekoodi on saatavilla GitHubissa. Avustukset, virheraportit ja formaattituen pyynnöt ovat tervetulleita versionhallinnan issue-trackerin kautta.

Kirjastolla on yksi suoritusajan riippuvuus: xmldom versio 0.9+, käytetään vain COLLADA-tiedostojen lukemiseen tai kirjoittamiseen. Kaikki muut jäsentimet ja kirjoittajat ovat itsenäisiä puhtaasti JavaScript -toteutuksia ilman binääri-komponentteja.

Aloittaminen

Yhteenveto

@aspose/3d versio 24.12.0 tarjoaa vakaan, tyyppitetyn, riippuvuuksilta kevyen perustan 3D-tiedostojen käsittelyyn TypeScriptissä ja Node.js:ssä. Olipa käyttötapaus formaattimuunnos, kohtauksen tarkastelu, geometrian poiminta tai putkiston integrointi, kirjasto kattaa yleisimmät 3D-vaihtoformaatit sallivan avoimen lähdekoodin lisenssin alaisena.

Asenna se tänään ja kerro meille, mitä rakennat.