OpenSCAD是用於創建固體3D CAD對象的軟件。它是免費軟件,可用於Linux/Unix,MS Windows和MacOS。
與大多數用於創建3D模型的免費軟件(例如著名的應用程序攪拌機)不同,OpenScad專注於CAD方面,而不是3D建模的藝術方面。因此,這可能是您打算創建機器零件的3D模型時要尋找的應用程序,但可能不是創建計算機動畫電影的工具。
OpenSCAD不是交互式建模者。取而代之的是,它更像是一個讀取腳本文件的3D編譯器,該文件描述對象並從此腳本文件中呈現3D模型(請參見下面的示例)。這為您提供了設計師,完全控制建模過程,並使您能夠輕鬆地更改建模過程中的任何步驟或製作由可配置參數定義的設計。
OpenSCAD提供了兩種主要的建模技術:首先有建設性的實體幾何形狀(又稱CSG),其次是2D輪廓的擠出。由於這些2D的數據交換格式使用了AutoCAD DXF文件。除了擠出2D路徑外,還可以從DXF文件讀取設計參數。除了DXF文件外,OpenSCAD還可以以STL和OFF文件格式讀取和創建3D模型。
您可以在https://www.openscad.org/downloads.html上下載OpenSCAD的最新二進製文件。像其他任何軟件一樣安裝二進製文件。
打開OpenSCAD時,您會在窗口內看到三幀。左幀是將代碼寫入模型3D對象的地方。正確的框架是您可以看到模型的3D渲染。
讓我們做一棵樹吧!將以下代碼鍵入左側框架:
cylinder(h = 30, r = 8);
然後通過擊中F5渲染3D模型。現在,您可以看到我們樹中的樹幹的氣缸。現在,讓我們添加由球體代表的樹的濃密/多葉部分。為此,我們將結合一個圓柱體和一個球體。
union() {
cylinder(h = 30, r = 8);
sphere(20);
}
但是,這不是很正確!濃密的/多葉在樹的底部。我們需要將球移到Z軸上。
union() {
cylinder(h = 30, r = 8);
translate([0, 0, 40]) sphere(20);
}
就是這樣!您製作了第一個3D模型!您還可以將其他原始形狀與其他設定操作(聯合,交點,差異)和轉換(旋轉,比例,轉換)結合使用,以製成複雜的模型!查看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的目錄中。
要拉出各種子模型(包括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核”或“ 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
之後,請按照下面的彙編說明進行操作。
Windows的OpenSCAD通常是從Linux進行交叉編譯的。如果您想嘗試在Windows上構建MSVC,請參閱此網站:https://en.wikibooks.org/wiki/openscad_user_manual/building_on_windows
要交叉構建,請首先確保您擁有MXE項目的所有必要依賴項(在https://mxe.cc/#requirnements上列出)。不要安裝MXE本身,下面的腳本將在$HOME/openscad_deps/mxe下為您執行此操作
然後安裝您的開發工具以獲取GCC。然後,將此Git存儲庫克隆後,啟動一個新的干淨的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位Windows跨構建,在上述說明中將64替換為32。
我們使用openscad/ openscad-wasm內置的預製Docker映像(也有使用示例),我們支持w/ emscripten的WebAssembly的openscad無頭。
####瀏覽器
以下命令創建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-PLAYGOUND使用此WASM構建為Web UI提供了一部分OpenSCAD功能。
筆記
使用DEBUG構建( -DCMAKE_BUILD_TYPE=Debug ),您可以在Firefox和Chrome中設置C ++斷點(後者需要擴展)。
以下命令創建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筆記
使用DEBUG構建( -DCMAKE_BUILD_TYPE=Debug ),您可以在VSCODE+ NODE中設置C ++斷點(需要擴展名)。
首先,運行cmake -B build -DEXPERIMENTAL=1以在build文件夾中生成一個makefile。
然後運行cmake --build build 。最後,在Linux上,您可能會運行cmake --install build為root。
如果您從源頭編譯的問題遇到問題,請在GitHub頁面上的問題跟踪器中提出新問題。
此站點及其子頁面也可能有用:https://en.wikibooks.org/wiki/openscad_user_manual/building_openscad_from_sources
構建後,您可以從build目錄中使用ctest進行測試。
注意: cmake --build和ctest均接受A -j N參數,用於在N並行過程上分配負載。
安裝CircleCi-CLI(您需要一個API鍵)
注意:我們還使用GitHub工作流,但僅在Windows上運行測試(我們在下面的基於Linux的CircleCi工作流程中跨越了測試)。另外,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更多RAM(例如,您計劃運行的同時圖像4GB)
要更互動地調試作業,您可以使用手動路由(Inspect .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"