OpenSCAD는 견고한 3D CAD 객체를 생성하기위한 소프트웨어입니다. 무료 소프트웨어이며 Linux/Unix, MS Windows 및 MacOS에서 사용할 수 있습니다.
OpenSCAD는 3D 모델 (예 : 유명한 응용 프로그램 블렌더)을 생성하기위한 대부분의 무료 소프트웨어와 달리 3D 모델링의 예술적 측면보다는 CAD 측면에 중점을 둡니다. 따라서 이것은 기계 부품의 3D 모델을 만들 계획이지만 컴퓨터 애니메이션 영화를 만드는 도구는 아닐 수도 있습니다.
OpenSCAD는 대화식 모델러가 아닙니다. 대신 객체를 설명 하고이 스크립트 파일에서 3D 모델을 렌더링하는 스크립트 파일을 읽는 3D 컴파일러와 비슷합니다 (아래 예제 참조). 이를 통해 디자이너, 모델링 프로세스를 완전히 제어 할 수 있으며 모델링 프로세스의 모든 단계를 쉽게 변경하거나 구성 가능한 매개 변수로 정의되는 설계를 만들 수 있습니다.
OpenSCAD는 두 가지 주요 모델링 기술을 제공합니다. 먼저 건설적인 고체 지오메트리 (일명 CSG)가 있고 두 번째는 2D 외곽선의 압출이 있습니다. 이 2D 개요의 데이터 교환 형식이 AutoCAD DXF 파일을 사용합니다. 압출을위한 2D 경로 외에도 DXF 파일의 설계 매개 변수를 읽을 수도 있습니다. DXF 파일 외에 OpenSCAD는 STL 및 OFF 파일 형식에서 3D 모델을 읽고 생성 할 수 있습니다.
https://www.openscad.org/downloads.html에서 OpenScad의 최신 바이너리를 다운로드 할 수 있습니다. 다른 소프트웨어와 마찬가지로 Binaries를 설치하십시오.
OpenSCAD를 열면 창 내에 3 개의 프레임이 표시됩니다. 왼쪽 프레임은 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를 사용하는 경우 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와 같은 거대한 의존성은 여기에 포함되지 않으며 작은 것만 포함되어 있습니다 (부스트, 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/#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
32 비트 Windows 교차 건물의 경우 위의 지침에서 64를 32로 교체하십시오.
우리는 OpenSCAD/ OpenSCAD-WASM (사용 예제가 있음)에 내장 된 미리 메이드 Docker 이미지를 사용하여 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-Playground는이 WASM 빌드를 사용하여 OpenSCAD의 기능의 하위 집합을 웹 UI에 제공합니다.
메모
디버그 빌드 ( -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메모
디버그 빌드 ( -DCMAKE_BUILD_TYPE=Debug )를 사용하면 vscode+ 노드에서 C ++ 브레이크 포인트를 설정할 수 있습니다 (확장자 필요).
먼저 cmake -B build -DEXPERIMENTAL=1 실행하여 build 폴더에서 makefile을 생성합니다.
그런 다음 cmake --build build 실행하십시오. 마지막으로 Linux에서는 cmake --install build .
소스에서 컴파일하는 데 문제가있는 경우 GitHub 페이지의 문제 추적기에서 새로운 문제를 제기하십시오.
이 사이트와 하위 페이지도 도움이 될 수 있습니다 : https://en.wikibooks.org/wiki/openscad_user_manual/building_openscad_from_sources
일단 구축되면 build 디렉토리에서 ctest 로 테스트를 실행할 수 있습니다.
참고 : cmake --build 및 ctest 모두 N 프로세스를 통해 하중을 분배하기위한 -j 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)
작업을보다 대화식으로 디버깅하려면 수동 경로로 이동할 수 있습니다 (필요한 실제 Docker 이미지를 얻으려면 .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"