Hacker News 의견들
  • OpenSCAD는 프로그래머 사고방식에 딱 맞는 CAD 도구임
    모든 요소를 매개변수화할 수 있어서, 한 번 만든 프로젝트 인클로저를 변수 몇 개만 바꿔서 다양한 버전으로 생성할 수 있음
    최신 nightly 빌드에서 Manifold 백엔드를 설정하면 렌더링 속도가 분 단위에서 초 단위로 줄어듦
    공식 2021 릴리스는 너무 오래되어 사용하기 힘듦
    BOSL2 라이브러리는 필렛, 라운딩, 부착 같은 기능을 추가해 OpenSCAD를 장난감 수준에서 실용적인 설계 도구로 만들어줌
    Git 친화성도 뛰어나서, Fusion 360의 바이너리 파일보다 .scad 파일의 변경점을 훨씬 쉽게 비교할 수 있음

  • OpenSCAD의 한계를 느껴서 Python으로 SDF(서명 거리 함수) 기반 3D 메쉬 생성 라이브러리 sdf를 직접 만들었음
    Python의 자유로운 로직을 활용해 모델을 구성할 수 있고, 기존 3D 메쉬를 불러와 침식, 확장, 절단, 중공화 같은 작업을 수행할 수 있음
    이 프로젝트에는 아직 할 일이 많지만, 이 분야에 관심이 많다고 생각함

    • 다른 Python 기반 모델링 도구인 Build123dCadQuery와 어떤 점이 다른지 궁금함
      STL은 비트맵처럼 삼각형 좌표를 저장하지만, STEP은 벡터 아트처럼 모델 생성 명령을 저장함
      대부분의 GUI CAD는 STEP 기반이라 호환성이 좋음
      SDF가 STL만 생성한다면, GUI CAD와의 호환성을 생각하면 Build123d나 CadQuery를 배우는 게 낫지 않을까 생각함
      Build123d는 Fusion360이나 FreeCAD처럼 2D 스케치 후 3D 변환하는 개념이라, GUI와 코드 기반 CAD를 오가기에 편함
    • 이 라이브러리가 테이퍼드 가변 피치 헬릭스 문제를 해결해줄지도 몰라 기대됨
    • PythonSCAD도 libfive를 통해 SDF를 지원함 — 예시 페이지 중간쯤에서 “sdf”를 검색하면 됨
    • 메타볼(blobby) 스타일의 블렌딩을 쉽게 구현할 수 있는 점이 특히 인상적임
    • 기존 STL 파일을 불러와 구멍을 뚫거나 다른 오브젝트를 합치는 기능이 흥미로움
      Meshlab 같은 툴은 오류 메시지가 난해해서 실패했는데, 이 방식이라면 훨씬 직관적으로 작업할 수 있을 듯함
  • 최근 OpenSCAD를 쓰기 시작했는데, 대부분의 CAD가 수많은 기능을 배우게 하는 반면 OpenSCAD는 A4 한 장짜리 치트시트로 설명 가능함
    2021 릴리스 대신 git master 버전을 쓰면 훨씬 빠르고 최신 기능을 쓸 수 있음
    BOSL2 라이브러리를 쓰면 전통 CAD의 복잡한 기능을 직접 구현하지 않아도 되고, 내부 구현을 볼 수 있어 배우는 재미가 큼

    • 나도 OpenSCAD 덕분에 3D 프린팅 설계의 정밀도를 얻었음
      GUI CAD에서는 0.25mm 수정에도 모든 구멍과 컷아웃을 다시 조정해야 해서 좌절했는데, 코드 기반 접근으로 그런 문제를 피할 수 있음
      BOSL2의 center origin 기본값 덕분에 변환 작업이 훨씬 쉬워짐
    • git master 버전은 렌더링 속도가 구버전보다 수십 배 빠름
    • 치트시트 링크를 요청함
    • 하지만 날카로운 모서리 제거 같은 작업은 여전히 어렵다는 한계가 있음
    • BOSL2는 정말 강력하고 유용한 라이브러리임
  • OpenSCAD에 객체 개념이 없어서 box1.width 같은 접근이 불가능한 게 아쉬움
    Build123d를 써봤지만 버그가 많고 문서화도 부족함. 언젠가 개선되길 바람

  • OpenSCAD의 장점은 구, 원기둥, 큐브를 수학적으로 조합해 모델링하기 쉬운 점임
    단점은 그 수학적 조합 능력에 모델링 한계가 걸린다는 것임
    Python을 지원하는 PythonSCAD 포크가 곧 메인 릴리스에 통합될 예정임

    • OpenSCAD는 절대 좌표 기반이라 상대적 배치나 솔리드 간의 관계를 표현하기 어려움
      볼트 같은 모델을 만들려면 각 부분을 따로 만들고 겹치게 해야 함
      실제 부품과 정렬하려면 많은 수동 계산이 필요하고, 하드코딩된 치수는 수정이 어려움
      최신 베타 버전의 렌더러는 훨씬 빠르니 꼭 써볼 만함
    • OpenSCAD에는 hullminkowski 합도 있어서 익히면 강력한 도구가 됨
    • 브라우저에서 실행되는 JavaScript 버전 OpenJSCAD도 있음
      GitHub 저장소 참고
    • Java 기반의 Bowler Studio도 추천함. Clojure 지원과 물리 시뮬레이션 기능이 내장되어 있음
    • 점 좌표를 직접 정의해 복잡한 형상을 만들 수도 있지만, 순서가 까다로워 MENSA 테스트처럼 느껴짐
  • 나는 가벼운 3D 모델러로서 OpenSCAD의 단순함이 좋음
    거대한 GUI CAD 대신, 그래픽 프로그래밍처럼 기본 도형과 변환만으로 모델을 만들 수 있음
    오랜만에 코드를 열어도 몇 줄만 보면 바로 이해할 수 있음

    • 예전엔 OpenSCAD를 많이 썼지만, 실제로는 전통 CAD가 더 직관적인 경우가 많다고 느낌
      수학적 계산이 필요한 제약 조건은 GUI CAD의 스케치 기능이 훨씬 간단함
      CAD는 단계별로 되돌아가며 구조를 볼 수 있어서, 스크립트를 해석할 필요가 없음
  • OpenSCAD는 자체 에디터 대신 외부 에디터를 쓸 수 있음
    외부 에디터에서 저장하면 자동으로 미리보기가 갱신됨
    외부 에디터 설정 가이드

  • 예전에 OpenSCAD 입문용으로 “10가지 핵심 개념” 튜토리얼을 작성했음
    튜토리얼 링크

  • 팁: $fn 변수를 설정해 해상도 조절 가능함
    $fn = $preview ? 32 : 64;

    • 단, FEM 해석용으로 내보낼 때는 너무 높은 $fn 값을 쓰면 메시 성능이 떨어질 수 있음
      시각적 부드러움보다는 해석 정확도가 중요하므로 32~64 정도가 적당함
  • 현실적으로 유용한 모델을 만들려면 손이 많이 가지만, 2KB짜리 텍스트 파일로 완전한 파라메트릭 모델을 표현할 수 있다는 점이 너무 매력적임
    Git diff도 의미 있게 작동하고, 커스터마이저 패널로 모델을 앱처럼 조정할 수 있음
    FreeCAD의 거대한 XML 파일보다 훨씬 효율적임

    • 나는 주로 단일 부품 수정이나 변형을 자주 하는데, Python을 이용하면 이런 반복 작업이 훨씬 쉬움
    • 수학적으로 모델을 기술하는 게 나에게는 더 자연스러움
      다만 모따기(chamfer)라운딩 같은 기능이 기본 제공되지 않아, cone이나 sphere를 이용한 minkowski 연산으로 구현해야 하는 점이 번거로움