Openscad هو برنامج لإنشاء كائنات CAD ثلاثية الأبعاد صلبة. إنه برنامج مجاني ومتوفر لـ Linux/Unix و MS Windows و MacOS.
على عكس معظم البرامج المجانية لإنشاء نماذج ثلاثية الأبعاد (مثل خلاط التطبيق الشهير) ، يركز OpenScad على جوانب CAD بدلاً من الجوانب الفنية للنمذجة ثلاثية الأبعاد. وبالتالي ، قد يكون هذا هو التطبيق الذي تبحث عنه عندما تخطط لإنشاء نماذج ثلاثية الأبعاد من أجزاء الماكينة ، ولكن ربما لا تكون أداة إنشاء أفلام تم توجيهها للكمبيوتر.
Openscad ليس مصمم تفاعلي. بدلاً من ذلك ، يكون الأمر أشبه بمثابة محرك ثلاثي الأبعاد يقرأ ملف نص يصف الكائن ويجعل النموذج ثلاثي الأبعاد من ملف البرنامج النصي هذا (انظر الأمثلة أدناه). يمنحك هذا ، المصمم ، التحكم الكامل في عملية النمذجة ويمكّنك من تغيير أي خطوة في عملية النمذجة بسهولة أو صنع تصميمات محددة بواسطة المعلمات القابلة للتكوين.
يوفر Openscad تقنيتين رئيسيتين للنمذجة: أولاً هناك هندسة صلبة بناءة (AKA CSG) والثانية هناك بثق من الخطوط العريضة ثنائية الأبعاد. نظرًا لأن تنسيق تبادل البيانات لهذه الخطوط العريضة 2D ، يتم استخدام ملفات AutoCAD DXF. بالإضافة إلى مسارات ثنائية الأبعاد للبثق ، من الممكن أيضًا قراءة معلمات التصميم من ملفات DXF. إلى جانب ملفات DXF ، يمكن لـ OPENSCAD قراءة وإنشاء نماذج ثلاثية الأبعاد في تنسيقات الملفات STL و OFF.
يمكنك تنزيل أحدث ثنائيات OpenScad على https://www.openscad.org/downloads.html. تثبيت الثنائيات كما تفعل أي برنامج آخر.
عندما تفتح OpenScad ، سترى ثلاثة إطارات داخل النافذة. الإطار الأيسر هو المكان الذي ستكتب فيه رمزًا لتصميم الكائنات ثلاثية الأبعاد. الإطار الصحيح هو المكان الذي سترى فيه العرض ثلاثي الأبعاد لنموذجك.
دعونا نكون شجرة! اكتب الرمز التالي في الإطار الأيسر:
cylinder(h = 30, r = 8);
ثم جعل النموذج ثلاثي الأبعاد عن طريق ضرب F5. الآن يمكنك رؤية أسطوانة للجذع في شجرتنا. الآن دعونا نضيف الجزء الكثيف/الورقي من الشجرة الممثلة بلوفة. للقيام بذلك ، سوف نؤمن أسطوانة وكرة.
union() {
cylinder(h = 30, r = 8);
sphere(20);
}
ولكن ، هذا ليس صحيحا تماما! الكثافة/الورقية حول قاعدة الشجرة. نحن بحاجة إلى تحريك الكرة إلى أعلى المحور.
union() {
cylinder(h = 30, r = 8);
translate([0, 0, 40]) sphere(20);
}
وهذا كل شيء! لقد صنعت أول طراز ثلاثي الأبعاد الخاص بك! هناك أشكال بدائية أخرى يمكنك دمجها مع عمليات محددة أخرى (الاتحاد ، التقاطع ، الاختلاف) والتحولات (تدوير ، مقياس ، ترجمة) لصنع نماذج معقدة! تحقق من جميع ميزات اللغة الأخرى في دليل OpenScad.
ألقِ نظرة على صفحة OpenScad الرئيسية (https://www.openscad.org/documentation.html) للوثائق.
لبناء OpenScad من المصدر ، اتبع إرشادات النظام الأساسي المطبقة عليك أدناه.
لبناء OpenScad ، تحتاج إلى بعض المكتبات والأدوات. تحدد أرقام الإصدار بين قوسين الإصدارات التي تم استخدامها للتطوير. قد تعمل أو لا تعمل الإصدارات الأخرى أيضًا.
إذا كنت تستخدم إصدارًا جديدًا من Ubuntu ، فيمكنك تثبيت هذه المكتبات من Aptitude. إذا كنت تستخدم Mac ، أو Linux/BSD الأقدم ، فهناك نصوص بناء تنزيل المكتبات وتجمعها من المصدر. اتبع إرشادات النظام الأساسي الذي تقوم بتجميعه أدناه.
بالنسبة لمجموعة الاختبار ، فإن المتطلبات الإضافية هي:
قم بتثبيت GIT (https://git-scm.com/) على نظامك. ثم قم بتشغيل استنساخ:
git clone https://github.com/openscad/openscad.git
سيؤدي ذلك إلى تنزيل أحدث المصادر في دليل يدعى openscad .
لسحب العارض الفرعي المختلفة (بما في ذلك مكتبة MCAD) ، قم بما يلي:
cd openscad
git submodule update --init --recursive
المتطلبات الأساسية:
تثبيت التبعيات:
بعد بناء التبعيات باستخدام أحد الخيارات التالية ، اتبع التعليمات الواردة في قسم التجميع .
من المصدر
قم بتشغيل البرنامج النصي الذي يقوم بإعداد متغيرات البيئة:
source scripts/setenv-macos.sh
ثم قم بتشغيل البرنامج النصي لتجميع جميع التبعيات:
./scripts/macosx-build-dependencies.sh
البيرة (يفترض أن Homebrew مثبت بالفعل)
./scripts/macosx-build-homebrew.sh
أولاً ، تأكد من تثبيت GIT (غالبًا ما يتم تعبئته كـ "git-core" أو "SCMGIT"). بمجرد استنساخ مستودع GIT هذا ، قم بتنزيل وتثبيت حزم التبعية المذكورة أعلاه باستخدام مدير حزمة النظام الخاص بك. يتم توفير برنامج نصي مناسب يمكنه المساعدة في هذه العملية على بعض الأنظمة:
sudo ./scripts/uni-get-dependencies.sh
بعد تثبيت التبعيات ، تحقق من إصداراتها. يمكنك تشغيل هذا البرنامج النصي لمساعدتك:
./scripts/check-dependencies.sh
احرص على عدم وجود نسخ محلية قديمة في أي مكان ( /usr/local/ ). إذا كانت جميع التبعيات موجودة ونسخة عالية بما يكفي ، فانتقل إلى تعليمات التجميع.
إذا كانت بعض مكتبات الاعتماد على النظام مفقودة أو قديمة ، فيمكنك تنزيل وبناء إصدارات أحدث إلى $HOME/openscad_deps باتباع هذه العملية. أولاً ، قم بتشغيل البرنامج النصي الذي يقوم بإعداد متغيرات البيئة.
source ./scripts/setenv-unibuild.sh
ثم قم بتشغيل البرنامج النصي لتجميع جميع المكتبات المتطلبات المذكورة أعلاه:
./scripts/uni-build-dependencies.sh
لاحظ أن التبعيات الضخمة مثل GCC أو QT أو GLIB2 لم يتم تضمينها هنا ، فقط التبعات الأصغر (Boost ، CGAL ، OpenCSG ، إلخ). بعد الإنشاء ، تحقق مرة أخرى من التبعيات.
./scripts/check-dependencies.sh
بعد ذلك ، اتبع تعليمات التجميع أدناه.
عادة ما يتم تنسيق OpenScad لنظام التشغيل Windows من Linux. إذا كنت ترغب في محاولة بناء MSVC على Windows ، يرجى الاطلاع على هذا الموقع: https://en.wikibooks.org/wiki/openscad_user_manual/building_on_windows
للبناء المتبادل ، تأكد أولاً من أن لديك جميع التبعيات اللازمة لمشروع MXE (المدرج في https://mxe.cc/#requirements). لا تقم بتثبيت MXE نفسها ، فإن البرامج النصية أدناه ستفعل ذلك من أجلك بموجب $HOME/openscad_deps/mxe
ثم قم بتثبيت أدوات التطوير الخاصة بك للحصول على GCC. ثم بعد استنساخ مستودع GIT هذا ، ابدأ قشرة باش نظيفة جديدة وقم بتشغيل البرنامج النصي الذي يضع متغيرات البيئة.
source ./scripts/setenv-mingw-xbuild.sh 64
ثم قم بتشغيل البرنامج النصي لتنزيل وتجميع جميع المكتبات المتطلبات المذكورة أعلاه:
./scripts/mingw-x-build-dependencies.sh 64
لاحظ أن هذه العملية قد تستغرق عدة ساعات ، وعشرات جيجابت من مساحة القرص ، لأنها تستخدم نظام https://mxe.cc لبناء العديد من المكتبات. بعد اكتماله ، قم ببناء OpenScad وقم بتعبئته على المثبت:
./scripts/release-common.sh mingw64
لبناء Windows 32 بت ، استبدل 64 بـ 32 في التعليمات المذكورة أعلاه.
نحن ندعم بناء OpenScad مقطوعة الرأس من أجل webassembly مع emscripten ، باستخدام صورة Docker قبل الصيد المدمجة في OpenScad/ OpenScad-Wasm (والتي لديها أيضًا أمثلة على الاستخدام)
#### متصفح
يقوم الأمر التالي build-web/openscad.wasm & build-web/openscad.js :
./scripts/wasm-base-docker-run.sh emcmake cmake -B build-web -DCMAKE_BUILD_TYPE=Debug -DEXPERIMENTAL=1
./scripts/wasm-base-docker-run.sh cmake --build build-web -j2يستخدم OpenScad/OpenScad-Playground هذا البناء لتزويد واجهة مستخدم الويب بمجموعة فرعية من ميزات OpenScad.
ملحوظة
مع بناء تصحيح ( -DCMAKE_BUILD_TYPE=Debug ) ، يمكنك تعيين نقاط التوقف C ++ في Firefox وفي الكروم (يحتاج الأخير إلى امتداد).
يقوم الأمر التالي بإنشاء build-node/openscad.js ، وهو أمر قابل للتنفيذ (يتطلب node ):
./scripts/wasm-base-docker-run.sh emcmake cmake -B build-node -DWASM_BUILD_TYPE=node -DCMAKE_BUILD_TYPE=Debug -DEXPERIMENTAL=1
./scripts/wasm-base-docker-run.sh cmake --build build-node -j2
build-node/openscad.js --helpملحوظة
مع بناء تصحيح ( -DCMAKE_BUILD_TYPE=Debug ) ، يمكنك تعيين نقاط توقف C ++ في عقدة VScode+ (يحتاج إلى امتداد).
أولاً ، قم بتشغيل cmake -B build -DEXPERIMENTAL=1 لإنشاء makefile في مجلد build .
ثم قم بتشغيل cmake --build build . أخيرًا ، على Linux ، قد تقوم بتشغيل cmake --install build كجذر.
إذا واجهت مشاكل في التجميع من المصدر ، فثر مشكلة جديدة في تعقب القضية على صفحة GitHub.
يمكن أن يكون هذا الموقع والصفحات الفرعية مفيدة أيضًا: https://en.wikibooks.org/wiki/openscad_user_manual/building_openscad_from_sources
بمجرد بناؤها ، يمكنك إجراء اختبارات مع ctest من دليل build .
ملاحظة: يقبل كل من cmake --build و ctest وسيطة -j N لتوزيع الحمل على العمليات المتوازية N .
تثبيت circleci-cli (ستحتاج إلى مفتاح API)
ملاحظة : نستخدم أيضًا مهام سير عمل GitHub ، ولكن فقط لتشغيل الاختبارات على Windows (والتي نتقاطع معها في سير عمل Circleci المستندة إلى Linux أدناه). أيضا ، ACT لا يحب إعداد الجهاز الفرعي الخاص بنا على أي حال.
قم بتشغيل وظائف CI
# When "successful", these will fail to upload at the very end of the workflow.
circleci local execute --job openscad-mxe-64bit
circleci local execute --job openscad-mxe-32bit
circleci local execute --job openscad-appimage-64bitملاحظة : لا يمكن بناء OpenScad-Macos محليًا.
إذا/عندما يتم قتل GCC بشكل عشوائي ، امنح Docker المزيد من ذاكرة الوصول العشوائي (مثل 4 جيجابايت لكل صورة متزامنة تخطط لتشغيلها)
لتصحيح الوظائف بشكل أكثر تفاعلية ، يمكنك السير في المسار اليدوي (فحص .circleci/config.yml للحصول على صورة Docker الفعلية التي تحتاجها)
docker run --entrypoint=/bin/bash -it openscad/mxe-x86_64-gui:latestثم بمجرد الحصول على وحدة التحكم:
git clone https://github.com/%your username%/openscad.git workspace
cd workspace
git checkout %your branch%
git submodule init
git submodule update
# Then execute the commands from .circleci/config.yml:
# export NUMCPU=2
# ...
# ./scripts/release-common.sh -snapshot -mingw64 -v "$OPENSCAD_VERSION"