ספריית JavaScript ליצירת עיצובי CAD פרמטריים דו-ממדיים ותלת-ממדיים

ספריית CAD בקוד פתוח של JavaScript מאפשרת למתכנתים ליצור עיצובים פרמטריים דו-ממדיים ותלת-ממדיים. צרו רנדרר משלכם עבור גיאומטריות תלת-ממדיות ודו-ממדיות באמצעות API חינמי.

מה זה JSCAD?

JSCAD היא ספריית JavaScript חינמית בקוד פתוח המאפשרת למפתחי תוכנה ליצור ולטפל במודלים תלת-ממדיים בסביבת דפדפן בתוך יישומי ה-JavaScript שלהם. הספרייה נועדה להיות קלה לטיפול וגם גמישה מאוד, מה שהופך אותה לבחירה מצוינת עבור מגוון רחב של יישומים. JSCAD מספק סט של כלים ופונקציות ליצירת מודלים מורכבים בקלות, כמו גם מגוון אפשרויות התאמה אישית להתאמת המראה והפונקציונליות של המודלים שלך.

JSCAD הוא כלי רב עוצמה ליצירת מודלים תלת-ממדיים שניתן להשתמש בהם במגוון רחב של יישומים, החל ממשחקים ובידור ועד מחקר מדעי ועיצוב תעשייתי. ספריית JSCAD תומכת במגוון רחב של פורמטים של קבצים, כולל STL, OBJ ו-3MF, מה שמקל על ייצוא המודלים שלך לשימוש ביישומי תוכנה אחרים. הספרייה רב-תכליתית ומאפשרת למשתמשים לשלב צורות ואלמנטים שונים כדי ליצור מבנים ומודלים מורכבים, מה שהופך אותה לכלי רב-תכליתי עבור מעצבים, מהנדסים וחובבים.

ל-JSCAD ממשק ידידותי למשתמש והוא נועד להיות ספונטני מאוד. הספרייה מספקת מגוון אפשרויות התאמה אישית, המאפשרות למשתמשים להתאים את המראה והפונקציונליות של המודלים שלהם לצרכים ולהעדפות הספציפיים שלהם. עם מגוון רחב של אפשרויות התאמה אישית, תכונות מתקדמות ותמיכה במגוון פורמטים של קבצים, JSCAD הוא כלי רב עוצמה שניתן להשתמש בו עבור מגוון רחב של יישומים.

Previous Next

תחילת העבודה עם JSCAD

הדרך המומלצת להתקנה היא באמצעות npm. אנא השתמשו בפקודה הבאה להתקנה חלקה.

התקן JSCAD באמצעות npm

 npm install @jscad/modeling 

ניתן גם להתקין אותו באופן ידני; הורידו את קבצי הגרסה האחרונים ישירות ממאגר GitHub.

יצירת עיצוב חדש באמצעות JavaScript API

ספריית OpenCascade בקוד פתוח תומכת בריבוי הליכים עבור פעולות מסוימות. הספרייה אינה מספקת תמיכה מקורית בריבוי הליכים, מכיוון ש-JavaScript היא שפת הליכים חד-שלביים. עם זאת, מפתחים יכולים להשתמש ב-Web Workers ביישום שלהם כדי לבצע משימות מסוימות בהליך נפרד, מה שיכול לשפר את הביצועים ואת התגובתיות. הדוגמה הבאה מדגימה כיצד להשתמש ב-Web Worker כדי לבצע משימה חישובית כבדה בהליך נפרד תוך שמירה על ממשק המשתמש הראשי רספונסיבי.

כיצד ליצור עיצוב ולייצא לפורמט STL באמצעות ממשק API של JavaScript?

 const {CAG, CSG} = require('@jscad/csg');

// create a simple shape like a cube:

const cube = CSG.cube({
  center: [0, 0, 0],
  radius: 10
});

//export your design in a desired format:

const stlSerializer = require('@jscad/stl-serializer');
const stlData = stlSerializer.serialize(result);
console.log(stlData);

המרת פורמט עיצובים באפליקציות JavaScript

ספריית JSCAD בקוד פתוח מעניקה למפתחי תוכנה את היכולת להמיר פורמט של כל עיצוב לפורמטים נתמכים אחרים. הספרייה כוללת תמיכה במגוון פורמטים פופולריים של קבצים, כגון STL, AMF, DXF, JSON, X3D, תמונות SVG ועוד רבים. כדי להמיר את הפורמט של קובץ קיים, ראשית עליך לטעון קובץ קיים ולבחור את פורמטי קובץ הפלט. ניתן לשתף בקלות את העיצובים עם אחרים כקבצים מצורפים לדואר, הודעות וכו'.

כיצד לטעון את העיצוב ולהמיר את הפורמט שלו באמצעות ממשק ה-API של JavaScript?

const {CSG} = require('@jscad/modeling')
const {STL} = require('@jscad/stl-serializer')

// Load the design file in the desired format
const stlString = fs.readFileSync('design.stl', 'utf8')

//Convert the STL format to a JSCAD CSG object:

const design = STL.parse(stlString)
const stlString = STL.serialize(design)
fs.writeFileSync('manipulated_design.stl', stlString)

טרנספורמציות צורות ב-CAD באמצעות אפליקציות JavaScript

ספריית JSCAD מאפשרת למפתחי תוכנה ליצור בקלות צורות ומודלים תלת-ממדיים בתוך יישומי JavaScript משלהם. ניתן לשנות את הצורה המקורית מספר פעמים ללא הגבלה. הספרייה סיפקה קבוצה של פונקציות ותכונות לטרנספורמציה של צורות, כגון סיבוב צורות בכל זווית נתונה סביב ציר X, Y ו-Z, שינוי קנה מידה של צורות בכל גורם, הזזת צורות למיקום אחר, יישור או מרכז של צורות לאורך ציר X, Y ו-Z, שיקוף צורות וכן הלאה.

כיצד לבצע סיבוב צורה סביב ציר יחיד באמצעות ממשק API של JavaScript?

const { cuboid } = require('@jscad/modeling').primitives
const { rotateX,rotateY,rotateZ } = require('@jscad/modeling').transforms
 
const myshape = cuboid({size: [5, 20, 5]})
let newshape = rotateX((Math.PI * 2 / 4), myshape)
newshape = rotateY((Math.PI * 2 / 24), newshape)
newshape = rotateZ((Math.PI * 2 / 12), newshape)
 עִברִית