מבוא
אנו שמחים להודיע על זמינות של {Aspose}.3D FOSS עבור TypeScript כ‑ @aspose/3d חבילת npm. ספרייה ברישיון MIT זו מביאה עיבוד סצנות תלת‑ממד באיכות ייצור ל‑TypeScript וליישומי Node.js ללא צורך בבינריים מקומיים, שרשראות כלים ספציפיות לפלטפורמה, או רישיונות מסחריים.
הספרייה מתוכננת סביב Scene API: טען קובץ 3D באמצעות scene.open(), בדוק או שנה את גרף הסצנה, וכתוב את התוצאה באמצעות scene.save(). הגדרות טיפוס מלאות של TypeScript מובאות; אין צורך ב‑ @types/ חבילה נדרשת.
Key Features
קלט/פלט מרובה פורמטים. החבילה קוראת וכותבת שישה פורמטים תלת‑ממדיים מרכזיים בהתקנה אחת. OBJ נתמך לייבוא; glTF 2.0, GLB, STL, 3MF, ו‑COLLADA תומכים גם בייבוא וגם ביצוא. קיימות מחלקות ייבוא/ייצוא ל‑FBX אך זיהוי אוטומטי של הפורמט עדיין לא מחובר, ולכן קבצי FBX אינם ניתנים לטעינה באמצעות scene.open().
תמיכה ראשונית ב‑TypeScript. כל המחלקות הציבוריות, המנויים וסוגי האפשרויות ממוספרים במלואם. IDEs עם תמיכת שירות השפה של TypeScript (VS Code, WebStorm, וכו׳) מספקים השלמה אוטומטית מדויקת ותיעוד משולב לכל קריאת API.
תאימות ל‑Node.js 18–22+. החבילה נבדקה מול גרסאות LTS של Node.js 18, 20, ו‑22. אין תוספים מקומיים שמקומטים במהלך ההתקנה, ולכן היא פועלת על כל הפלטפורמות שה‑Node.js תומך בהן.
תלות ריצה אחת. התלות היחידה היא xmldom, משמשת באופן בלעדי לניתוח XML של COLLADA. כל שאר מפענחי הפורמט הם מימושים טהורים ב-JavaScript.
רישיון MIT. השתמש @aspose/3d בפרויקטים מסחריים, קוד פתוח או פנימיים ללא הגבלה.
התחלה מהירה
התקנת החבילה:
npm install @aspose/3d
טען קובץ OBJ והמר אותו ל‑GLB בינארי:
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');
עבור על צמתים בסצנה כדי לבדוק את הגאומטריה:
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}`);
}
}
פורמטים נתמכים
| פורמט | הרחבה | ייבוא | ייצוא | הערות |
|---|---|---|---|---|
| Wavefront OBJ | .obj | כן | לא | ייבוא בלבד; קורא .mtl קבצי חומר |
| glTF 2.0 | .gltf | כן | כן | JSON עם חיצוני .bin מאגר |
| בינארי GLB | .glb | כן | כן | הגדר binaryMode: true ב GltfSaveOptions |
| STL | .stl | כן | כן | ASCII ובינרי STL |
| 3MF | .3mf | כן | כן | ארכיון Open Packaging Convention |
| FBX | .fbx | לא* | לא* | ייבוא/ייצוא קיים אך זיהוי אוטומטי של הפורמט אינו מחובר |
| COLLADA | .dae | כן | כן | דורש חבילה משולבת xmldom תלות |
יתרונות TypeScript
עובד עם @aspose/3d ב‑TypeScript תופס שגיאות קטגוריה בזמן הקומפילציה ולא בזמן הריצה. כאשר אתה קורא scene.save(), המהדר מאמת שה‑object options תואם ל‑subtype הצפוי SaveOptions subtype עבור הפורמט שנבחר. אפשרויות load ו‑save ספציפיות לפורמט חושפות רק את המאפיינים הרלוונטיים לאותו פורמט; אין options bag ללא טיפוס שניתן לנחש.
לדוגמה, GltfSaveOptions.binaryMode הוא typed boolean, ולכן המהדר דוחה saveOpts.binaryMode = 'yes' לפני שהקוד רץ. תכונות אנימציה על AnimationClip, ערוצי חומר על PbrMaterial, וסוגי רכיבי קודקוד על VertexElement כולם בעלי טיפוס דומה וניתנים לגילוי דרך IntelliSense ללא צורך בהתייעצות בתיעוד חיצוני.
קוד פתוח וחינמי
החבילה מתפרסמת תחת MIT License. קוד המקור זמין ב‑GitHub. תרומות, דיווחי באגים ובקשות לתמיכה בפורמט מתקבלות בברכה דרך מערכת המעקב של המאגר.
הספרייה יש תלות ריצה אחת: xmldom גרסה 0.9+, משמשת רק בעת קריאה או כתיבה של קבצי COLLADA. כל שאר הפורסרים והכותבים הם יישומים עצמיים ב‑pure-JavaScript ללא רכיבים בינריים.
התחלה
- npm:
npm install @aspose/3d - מאגר ידע: איך לטעון מודלים תלת‑ממדיים ב‑TypeScript
- מאגר ידע: איך לייצא סצנות תלת‑ממדיות ל‑glTF/GLB ב‑TypeScript
- התייחסות API: Aspose.3D FOSS for TypeScript: הפנייה המלאה למחלקות
- GitHub: aspose-3d/aspose-3d-node
סיכום
@aspose/3d גרסה 24.12.0 מספקת בסיס stable, typed, dependency-light לעיבוד קבצי 3D ב-TypeScript וב-Node.js. בין אם המקרה הוא המרת פורמט, בדיקת סצנה, חילוץ גאומטריה, או pipeline integration, הספרייה מכסה את פורמטי ההחלפה הנפוצים ביותר של 3D תחת רישיון קוד פתוח מתיר.
התקן זאת היום ויידע אותנו מה אתה בונה.