OpenSCAD เป็นซอฟต์แวร์สำหรับการสร้างวัตถุ CAD 3D แบบแข็ง เป็นซอฟต์แวร์ฟรีและพร้อมใช้งานสำหรับ Linux/UNIX, MS Windows และ MacOS
ซึ่งแตกต่างจากซอฟต์แวร์ฟรีส่วนใหญ่สำหรับการสร้างโมเดล 3 มิติ (เช่นแอปพลิเคชันที่มีชื่อเสียง) OpenScad มุ่งเน้นไปที่ด้าน CAD มากกว่าด้านศิลปะของการสร้างแบบจำลอง 3 มิติ ดังนั้นนี่อาจเป็นแอปพลิเคชันที่คุณกำลังมองหาเมื่อคุณวางแผนที่จะสร้างชิ้นส่วนเครื่อง 3 มิติ แต่อาจไม่ใช่เครื่องมือในการสร้างภาพยนตร์แอนิเมชั่นคอมพิวเตอร์
OpenScad ไม่ใช่ตัวสร้างแบบโต้ตอบ แต่มันเป็นเหมือนคอมไพเลอร์ 3D ที่อ่านไฟล์สคริปต์ที่อธิบายวัตถุและแสดงผลโมเดล 3D จากไฟล์สคริปต์นี้ (ดูตัวอย่างด้านล่าง) สิ่งนี้จะช่วยให้คุณนักออกแบบควบคุมกระบวนการสร้างแบบจำลองได้อย่างสมบูรณ์และช่วยให้คุณสามารถเปลี่ยนขั้นตอนใด ๆ ในกระบวนการสร้างแบบจำลองได้อย่างง่ายดายหรือทำการออกแบบที่กำหนดโดยพารามิเตอร์ที่กำหนดค่าได้
OpenSCAD ให้เทคนิคการสร้างแบบจำลองหลักสองประการ: ครั้งแรกที่มีรูปทรงเรขาคณิตที่สร้างสรรค์ (AKA CSG) และที่สองมีการอัดขึ้นรูปแบบ 2D เนื่องจากรูปแบบการแลกเปลี่ยนข้อมูลสำหรับ 2D สรุปไฟล์ AutoCAD DXF เหล่านี้ นอกเหนือจากเส้นทาง 2D สำหรับการอัดขึ้นรูปแล้วยังเป็นไปได้ที่จะอ่านพารามิเตอร์การออกแบบจากไฟล์ DXF นอกจากไฟล์ DXF OpenSCAD ยังสามารถอ่านและสร้างโมเดล 3 มิติในรูปแบบไฟล์ STL และปิด
คุณสามารถดาวน์โหลดไบนารีล่าสุดของ OpenScad ได้ที่ https://www.openscad.org/downloads.html ติดตั้งไบนารีเช่นเดียวกับซอฟต์แวร์อื่น ๆ
เมื่อคุณเปิด OpenScad คุณจะเห็นสามเฟรมภายในหน้าต่าง เฟรมด้านซ้ายคือที่ที่คุณจะเขียนโค้ดไปยังวัตถุ 3D รุ่น เฟรมที่เหมาะสมคือที่ที่คุณจะเห็นการแสดงผล 3 มิติของโมเดลของคุณ
มาสร้างต้นไม้กันเถอะ! พิมพ์รหัสต่อไปนี้ลงในเฟรมซ้าย:
cylinder(h = 30, r = 8);
จากนั้นแสดงรุ่น 3D โดยกดปุ่ม F5 ตอนนี้คุณสามารถเห็นกระบอกสูบสำหรับลำตัวในต้นไม้ของเรา ตอนนี้เรามาเพิ่มส่วนที่เป็นพวง/ใบไม้ของต้นไม้ที่แสดงด้วยทรงกลม ในการทำเช่นนั้นเราจะรวมตัวกันเป็นทรงกระบอกและทรงกลม
union() {
cylinder(h = 30, r = 8);
sphere(20);
}
แต่มันไม่ถูกต้อง! พุ่มไม้/ใบไม้อยู่รอบ ๆ ฐานของต้นไม้ เราจำเป็นต้องเลื่อนทรงกลมขึ้นแกน z
union() {
cylinder(h = 30, r = 8);
translate([0, 0, 40]) sphere(20);
}
แล้วก็แค่ไหน! คุณสร้างรุ่น 3 มิติแรกของคุณ! มีรูปร่างดั้งเดิมอื่น ๆ ที่คุณสามารถรวมเข้ากับการดำเนินการชุดอื่น ๆ (ยูเนี่ยน, สี่แยก, ความแตกต่าง) และการแปลง (หมุน, สเกล, แปล) เพื่อสร้างโมเดลที่ซับซ้อน! ตรวจสอบคุณสมบัติภาษาอื่น ๆ ทั้งหมดในคู่มือ OpenSCAD
ดูหน้าแรกของ OpenScad (https://www.openscad.org/documentation.html) สำหรับเอกสาร
ในการสร้าง OpenScad จากแหล่งที่มาให้ทำตามคำแนะนำสำหรับแพลตฟอร์มที่ใช้กับคุณด้านล่าง
ในการสร้าง OpenScad คุณต้องมีห้องสมุดและเครื่องมือบางอย่าง หมายเลขเวอร์ชันในวงเล็บระบุรุ่นที่ใช้สำหรับการพัฒนา เวอร์ชันอื่นอาจใช้งานได้หรือไม่ก็เช่นกัน
หากคุณใช้ Ubuntu รุ่นใหม่กว่าคุณสามารถติดตั้งไลบรารีเหล่านี้ได้จากความถนัด หากคุณใช้ Mac หรือ Linux/BSD รุ่นเก่ามีสคริปต์บิลด์ที่ดาวน์โหลดและรวบรวมไลบรารีจากแหล่งที่มา ทำตามคำแนะนำสำหรับแพลตฟอร์มที่คุณรวบรวมไว้ด้านล่าง
สำหรับชุดทดสอบข้อกำหนดเพิ่มเติมคือ:
ติดตั้ง GIT (https://git-scm.com/) ลงในระบบของคุณ จากนั้นเรียกใช้โคลน:
git clone https://github.com/openscad/openscad.git
สิ่งนี้จะดาวน์โหลดแหล่งข้อมูลล่าสุดลงในไดเรกทอรีชื่อ openscad
หากต้องการดึง submodules ต่าง ๆ (รวมห้องสมุด McAd) ทำสิ่งต่อไปนี้:
cd openscad
git submodule update --init --recursive
ข้อกำหนดเบื้องต้น:
ติดตั้งการพึ่งพา:
หลังจากสร้างการพึ่งพาโดยใช้หนึ่งในตัวเลือกต่อไปนี้ให้ทำตามคำแนะนำในส่วน การรวบรวม
จากแหล่งกำเนิด
เรียกใช้สคริปต์ที่ตั้งค่าตัวแปรสภาพแวดล้อม:
source scripts/setenv-macos.sh
จากนั้นเรียกใช้สคริปต์เพื่อรวบรวมการพึ่งพาทั้งหมด:
./scripts/macosx-build-dependencies.sh
Homebrew (ติดตั้ง 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 นี้เริ่มต้น Clean Bash Shell ใหม่และเรียกใช้สคริปต์ที่ตั้งค่าตัวแปรสภาพแวดล้อม
source ./scripts/setenv-mingw-xbuild.sh 64
จากนั้นเรียกใช้สคริปต์เพื่อดาวน์โหลดและรวบรวมไลบรารีที่จำเป็นทั้งหมดด้านบน:
./scripts/mingw-x-build-dependencies.sh 64
โปรดทราบว่ากระบวนการนี้อาจใช้เวลาหลายชั่วโมงและอวกาศดิสก์หลายสิบแห่งเนื่องจากใช้ระบบ https://mxe.cc เพื่อข้ามห้องสมุดหลายแห่ง หลังจากเสร็จสิ้นให้สร้าง openScad และจัดเก็บไว้กับตัวติดตั้ง:
./scripts/release-common.sh mingw64
สำหรับการสร้างไขว้แบบ 32 บิตให้เปลี่ยน 64 ด้วย 32 ในคำแนะนำข้างต้น
เราสนับสนุนการสร้าง OpenScad Headless สำหรับ WebAssembly W/ Emscripten โดยใช้อิมเมจนักเทียบท่าที่สร้างไว้ล่วงหน้าใน OpenSCAD/ OpenSCAD-WASS (ซึ่งมีตัวอย่างการใช้งาน)
#### เบราว์เซอร์
คำสั่งต่อไปนี้สร้าง 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 -j2OpenSCAD/OpenScad-playground ใช้การสร้าง WASM นี้เพื่อให้เว็บ UI มีคุณสมบัติย่อยของคุณสมบัติของ OpenSCAD
บันทึก
ด้วย build debug ( -DCMAKE_BUILD_TYPE=Debug ) คุณสามารถตั้งค่าเบรกพอยต์ C ++ ใน Firefox และใน Chrome (หลังต้องการส่วนขยาย)
คำสั่งต่อไปนี้สร้าง 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+ NODE (ต้องการส่วนขยาย)
ก่อนอื่นให้เรียกใช้ 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 ด้านล่าง) นอกจากนี้พระราชบัญญัติไม่ชอบการตั้งค่า submodule ของเราอยู่แล้ว
รันงาน 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 มากขึ้น RAM (เช่น 4GB ต่อภาพที่เกิดขึ้นพร้อมกันที่คุณวางแผนจะเรียกใช้)
ในการดีบักงานที่มีปฏิสัมพันธ์มากขึ้นคุณสามารถไปตามเส้นทางด้วยตนเอง (ตรวจสอบ. circleci/config.yml เพื่อรับภาพนักเทียบท่าที่คุณต้องการ)
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"