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"