מבוא
אנו שמחים להודיע על זמינות של Aspose.3D FOSS ל-TypeScript כ- @aspose/3d חבילת npm. ספרייה זו ברישיון MIT מביאה עיבוד סצנות 3D באיכות ייצור ליישומי TypeScript ו-Node.js ללא צורך בבינאריים מקומיים, שרשראות כלי פלטפורמה ספציפיות, או רישיונות מסחריים.
הספרייה מתוכננת סביב גישה פשוטה Scene API: טען קובץ תלת‑ממדי עם scene.open(), בדוק או שנה את גרף הסצנה, וכתוב את התוצאה עם scene.save(). הגדרות סוג מלאות של TypeScript נכללות; אין צורך ב @types/ חבילה נדרשת.
תכונות מרכזיות
קלט/פלט מרובה פורמטים. החבילה קוראת וכותבת שישה פורמטים תלת‑ממדיים מרכזיים בהתקנה אחת. 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 ו‑binary STL |
| 3MF | .3mf | כן | כן | ארכיון Open Packaging Convention |
| FBX | .fbx | לא* | לא* | קיים ייבוא/ייצוא אך זיהוי אוטומטי של הפורמט אינו מחובר |
| COLLADA | .dae | כן | כן | דורש משולב xmldom תלות |
יתרונות TypeScript
עובד עם @aspose/3d ב-TypeScript תופס שגיאות קטגוריה בזמן הקומפילציה ולא בזמן הריצה. כאשר אתה קורא scene.save(), המהדר מאמת שהאובייקט options תואם לצפוי SaveOptions תת‑סוג עבור הפורמט שנבחר. אפשרויות טעינה ושמירה ספציפיות לפורמט מציגות רק את המאפיינים הרלוונטיים לאותו פורמט; אין קבוצה של אפשרויות ללא טיפוס לנחש.
לדוגמה, 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 מספקת בסיס יציב, טיפוסי, קל בתלות לעיבוד קבצי 3D ב-TypeScript וב-Node.js. בין אם מקרה השימוש הוא המרת פורמט, בדיקת סצנה, חילוץ גאומטריה, או אינטגרציית צינור, הספרייה מכסה את רוב פורמטי ההחלפה של 3D תחת רישיון קוד פתוח מתיר.
התקן אותה היום ויידע אותנו מה אתה בונה.