banner

블로그

Jun 07, 2024

CadQuery의 시대가 되다

이제 우리는 여러분 중 일부가 "아, 다른 프로그래밍 CAD 도구가 아닌데 OpenSCAD에 무슨 문제가 있습니까?"라고 말할지 알고 있습니다. — 그리고 당신이 옳을 수도 있지만, 잠시만 기다려서 이것을 살펴보세요. 왜냐하면 우리는 그것이 이제 꽤 굉장하다고 생각하기 때문입니다! OpenSCAD는 훌륭합니다. 우리는 이 부분에서 항상 그것을 사용하지만, 아시다시피 일부에서는 약간 이상합니다. 그런 다음 CadQuery가 등장하여 사용 편의성과 기능면에서 물 밖으로 날려 버립니다. 이제 우리는 수년에 걸쳐 CadQuery에 대한 몇 가지 언급을 보았고 마침내 그래픽 프런트엔드/편집기, CQ 편집기를 갖춘 완전한 도구 세트가 되었습니다. FreeCAD에 대한 이상한 의존성은 보이지 않습니다! 즉, FreeCAD를 설치하는 것도 나쁜 것은 아닙니다.

목표는 이 개체를 생성하는 CadQuery 스크립트를 인간이 사용하는 영어 문구에 최대한 가깝게 만드는 것입니다.

이전에 본 적이 없는 분들을 위해 설명하자면, CadQuery는 3D 모델을 생성하고 이를 STL 및 STEP로 내보낼 수 있는 Python 라이브러리이므로 KiCAD 프로젝트용 모델을 만드는 것도 하나의 옵션입니다. 그러나 OpenSCAD와 달리 CadQuery는 훨씬 더 설계 의도에 중점을 둡니다. 아이디어는 전역 좌표계를 기준으로 직선 부울 연산으로 객체를 구성하는 여러 알고리즘과 달리 Python 스크립트를 객체의 형태에 대한 인간의 설명처럼 읽도록 하는 것입니다. CadQuery는 사물이 다른 사물에 상대적으로 정의되는 상대 연관 모델을 사용합니다. 문서에서:

CadQuery는 다릅니다. 상대적인 방식으로 다른 기능과 관련된 기능을 찾을 수 있습니다. 즉, 인간이 도면을 만들거나 객체를 만들 때와 마찬가지로 디자인 의도를 보존합니다.

높이 = 60.0너비 = 80.0두께 = 10.0직경 = 22.0패딩 = 12.0

# 기본 결과를 만듭니다 = cq.Workplane("XY").box(height, width, Thickness)\.faces(">Z").workplane().hole(diameter)\.faces(">Z"). workplane() \.direct(높이 - 패딩, 너비 - 패딩,forConstruction=True)\.vertices()\.cboreHole(2.4, 4.4, 2.1)\.edges("|Z").fillet(2.0)

# solidshow_object 렌더링(결과)

# 내보내기cq.exporters.export(result,'result.stl')cq.exporters.export(result,'result.step')

OpenSCAD가 나쁘다고 말하는 것이 아닙니다. OpenSCAD와는 거리가 멀고, 어떤 사람들에게는 CadQuery가 필요한 작업을 수행하는 데 훨씬 더 쉬울 것입니다. 3D 프린팅을 위해 완전히 매개변수화된 인클로저가 필요합니까? 단 47줄의 파이썬 코드로 작업을 수행하는 것은 어떻습니까? 객체의 복잡성이 증가함에 따라 CadQuery 접근 방식의 이점도 증가합니다. 이 도구는 매우 강력하고 문제를 해결할 수 있는 다양한 방법을 제공하므로 배울 수 있는 개념이 상당히 적지만 노력할 가치가 충분하다고 생각합니다. QC 편집기가 마음에 들지 않더라도 문제 없습니다. CadQuery는 원하는 편집기와 함께 독립형으로 사용할 수 있으며 Jupyter 노트북에서도 작동합니다! 미리 준비된 빌드를 사용할 수 있으므로 설치하는 것도 문제가 되지 않습니다. 하지만 설치가 엄청나게 중요하므로 여유 디스크 공간이 있기를 바랍니다!

당신이 좀 더 시각적인 사고를 갖고 있고 이 모든 코딩이 당신을 냉담하게 만든다면 FreeCAD의 파라메트릭 모델링에 대한 이 가이드, fusion360에 대한 유사한 가이드를 확인하거나 OpenSCAD를 잘 사용하고 있다면 감사합니다. -매우 그렇다면 OpenSCAD 기술을 복습해 보는 것은 어떨까요?

팁을 주신 [JohnU]님께 감사드립니다!

공유하다