مكتبة JavaScript لإنشاء تصميمات CAD ثنائية وثلاثية الأبعاد

تتيح مكتبة جافا سكريبت مفتوحة المصدر للمبرمجين إنشاء تصاميم ثنائية وثلاثية الأبعاد. أنشئ برنامجك الخاص للهندسة ثلاثية الأبعاد وثنائية الأبعاد عبر واجهة برمجة تطبيقات مجانية.

ما هو JSCAD؟

JSCAD هي مكتبة جافا سكريبت مجانية مفتوحة المصدر، تُمكّن مطوري البرامج من إنشاء نماذج ثلاثية الأبعاد ومعالجتها في بيئة متصفح داخل تطبيقات جافا سكريبت الخاصة بهم. صُممت المكتبة لتكون سهلة الاستخدام ومرنة للغاية، مما يجعلها خيارًا ممتازًا لمجموعة واسعة من التطبيقات. توفر JSCAD مجموعة من الأدوات والوظائف لإنشاء نماذج معقدة بسهولة، بالإضافة إلى مجموعة من خيارات التخصيص لضبط مظهر ووظائف نماذجك.

JSCAD أداة فعّالة لإنشاء نماذج ثلاثية الأبعاد يمكن استخدامها في مجموعة واسعة من التطبيقات، من الألعاب والترفيه إلى البحث العلمي والتصميم الصناعي. تدعم مكتبة JSCAD مجموعة واسعة من تنسيقات الملفات، بما في ذلك STL وOBJ و3MF، مما يُسهّل تصدير نماذجك لاستخدامها في تطبيقات برمجية أخرى. تتميز مكتبة JSCAD بتعدد استخداماتها، حيث تتيح للمستخدمين دمج أشكال وعناصر مختلفة لإنشاء هياكل ونماذج معقدة، مما يجعلها أداةً متعددة الاستخدامات للمصممين والمهندسين والهواة. تتميز JSCAD بواجهة استخدام سهلة للغاية، وهي مصممة لتكون عملية وعفوية. توفر المكتبة مجموعة واسعة من خيارات التخصيص، مما يسمح للمستخدمين بتعديل مظهر ووظائف نماذجهم لتناسب احتياجاتهم وتفضيلاتهم الخاصة. بفضل خيارات التخصيص الواسعة، والميزات المتقدمة، ودعمها لمجموعة متنوعة من تنسيقات الملفات، تُعد JSCAD أداةً فعّالة يمكن استخدامها في مجموعة واسعة من التطبيقات.

Previous Next

البدء باستخدام JSCAD

الطريقة المُوصى بها للتثبيت هي استخدام npm. يُرجى استخدام الأمر التالي لتثبيت سلس.

قم بتثبيت JSCAD عبر npm

 npm install @jscad/modeling 

يمكنك أيضًا تثبيته يدويًا؛ قم بتنزيل ملفات الإصدار الأحدث مباشرةً من مستودع GitHub.

إنشاء تصميم جديد عبر واجهة برمجة تطبيقات JavaScript

تدعم مكتبة OpenCascade مفتوحة المصدر تعدد خيوط المعالجة لعمليات معينة. لا توفر المكتبة دعمًا أصليًا لتعدد خيوط المعالجة، لأن JavaScript لغة أحادية الخيط. مع ذلك، يمكن للمطورين استخدام Web Workers في تطبيقاتهم لأداء مهام معينة في سلسلة معالجة منفصلة، ​​مما يُحسّن الأداء والاستجابة. يوضح المثال التالي كيفية استخدام Web Workers لأداء مهمة حسابية معقدة في سلسلة معالجة منفصلة مع الحفاظ على استجابة واجهة المستخدم الرئيسية.

كيفية إنشاء تصميم وتصديره إلى تنسيق STL عبر واجهة برمجة تطبيقات 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);

تحويل صيغ التصاميم في تطبيقات جافا سكريبت

تتيح مكتبة JSCAD مفتوحة المصدر لمطوري البرامج تحويل أي صيغة تصميم إلى صيغ الملفات الأخرى المدعومة. وتدعم المكتبة العديد من صيغ الملفات الشائعة، مثل STL وAMF وDXF وJSON وX3D وصور SVG وغيرها الكثير. لتحويل صيغة ملف موجود، عليك أولاً تحميل الملف واختيار صيغ الملفات الناتجة. يمكن مشاركة التصاميم بسهولة مع الآخرين كمرفقات في البريد الإلكتروني والرسائل وغيرها.

كيفية تحميل التصميم وتحويل تنسيقه عبر واجهة برمجة تطبيقات 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، وعكس الأشكال (انعكاسها)، وغيرها.

كيفية إجراء دوران الشكل حول محور واحد عبر واجهة برمجة تطبيقات 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)
 عربي