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
| Muoto | Tiedostopääte | Tuonti | Vienti | Huomautukset |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Kyllä | Kyllä | Lukee/kirjoittaa .mtl materiaalitiedostot |
| glTF 2.0 | .gltf | Kyllä | Kyllä | JSON ulkoisella .bin puskuri |
| Binäärinen GLB | .glb | Kyllä | Kyllä | Aseta binaryMode: true sisään GltfSaveOptions |
| STL | .stl | Kyllä | Kyllä | ASCII- ja binäärinen STL |
| 3MF | .3mf | Kyllä | Kyllä | Open Packaging Convention -arkisto |
| FBX | .fbx | Ei* | Ei* | Importer/exporter on olemassa, mutta formaatin automaattinen tunnistus ei ole kytketty |
| COLLADA | .dae | Kyllä | 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
- npm:
npm install @aspose/3d - Tietopankki: Kuinka ladata 3D-malleja TypeScriptissä
- Tietopankki: Kuinka viedä 3D‑kohtauksia glTF/GLB-muotoon TypeScriptissä
- API‑viite: Aspose.3D FOSS for TypeScript: Täydellinen luokkaviite
- GitHub: aspose-3d/aspose-3d-node
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.