מבוא

אנו שמחים להודיע על זמינות של 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 ללא רכיבים בינריים.

התחלה

סיכום

@aspose/3d גרסה 24.12.0 מספקת בסיס יציב, טיפוסי, קל בתלות לעיבוד קבצי 3D ב-TypeScript וב-Node.js. בין אם מקרה השימוש הוא המרת פורמט, בדיקת סצנה, חילוץ גאומטריה, או אינטגרציית צינור, הספרייה מכסה את רוב פורמטי ההחלפה של 3D תחת רישיון קוד פתוח מתיר.

התקן אותה היום ויידע אותנו מה אתה בונה.