OpenSource-Hub

text-to-cad

라이브러리

earthtojake/text-to-cad

CAD, 로봇 및 하드웨어 설계를 위한 에이전트 스킬 라이브러리.

개요

CAD 모델, 로봇 디스크립션 및 시뮬레이션 아티팩트의 생성, 검사 및 내보내기를 위한 특화된 워크플로우를 제공합니다. CAD, URDF, SDF, DXF 등의 스킬을 포함하여 AI 에이전트가 기계 공학 작업을 처리할 수 있게 합니다.

README 미리보기

\n\n\n\n\n\n\n ██████╗ █████╗ ██████╗       ███████╗██╗  ██╗██╗██╗     ██╗     ███████╗\n██╔════╝██╔══██╗██╔══██╗      ██╔════╝██║ ██╔╝██║██║     ██║     ██╔════╝\n██║     ███████║██║  ██║      ███████╗█████╔╝ ██║██║     ██║     ███████╗\n██║     ██╔══██║██║  ██║      ╚════██║██╔═██╗ ██║██║     ██║     ╚════██║\n╚██████╗██║  ██║██████╔╝      ███████║██║  ██╗██║███████╗███████╗███████║\n ╚═════╝╚═╝  ╚═╝╚═════╝       ╚══════╝╚═╝  ╚═╝╚═╝╚══════╝╚══════╝╚══════╝\n\n\nA skills library for CAD, robotics, and hardware design agents\n\n[Docs](https://www.cadskills.xyz) | [Demo](https://demo.cadskills.xyz)\n\n[](https://discord.gg/5FGB9DwJYU)\n[](https://github.com/earthtojake/text-to-cad/stargazers)\n[](LICENSE)\n[](https://x.com/earthtojake)\n[](skills/cad/requirements.txt)\n[](skills/cad/SKILL.md)\n[](skills/cad/SKILL.md)\n[](skills/cad/SKILL.md)\n[](skills/urdf/SKILL.md)\n[](skills/sdf/SKILL.md)\n[](skills/srdf/SKILL.md)\n\n\n\n# CAD Skills\n\nCAD Skills is a library of agent skills for generating, inspecting, sourcing,\nslicing, and handing off CAD and robot-description artifacts from local project\nfiles.\n\n## 🧰 Skills\n\nInstall the library to give agents focused workflows for CAD, fabrication,\nrobot description files, simulation, and local review.\n\n| Skill        | Summary                                                                                                                                            | Source                                              |\n| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |\n| CAD          | Creates and edits CAD models from plain-language or image requests, with STEP as the main output along with options to export to STL, 3MF and GLB. | [skills/cad](skills/cad/SKILL.md)                   |\n| CAD Viewer   | Shows local browser previews for CAD, G-code, a

FAQ (5)

문제 해결
cadgen으로 유효한 STEP 솔리드를 STL로 내보낼 때 구멍, 중복 삼각형, 논매니폴드 엣지를 어떻게 수정하나요?

cadgen 0.7.15 이상으로 업그레이드하세요. 결함이 있던 테셀레이션(tessellation)이 해당 릴리스에서 수정되었습니다:

pip install -U cadgen==0.7.15

그런 다음 내보내기를 다시 실행하세요:

cadgen stl build teacup.step teacup-export.stl --json

캐시를 지울 필요는 없습니다. 테셀레이션 버전이 변경되었기 때문에 0.7.14에서 생성된 메시는 자동으로 다시 빌드됩니다. text-to-cad 에이전트/CAD 서버를 통해 cadgen을 사용하는 경우, 해당 설치를 업데이트하여 CAD 서버와 스킬이 cadgen 0.7.15로 고정(pin)되도록 하세요.

영향을 받는 버전에는 0.7.9와 0.7.14가 포함됩니다. --mesh-tolerance 또는 --mesh-angular-tolerance 값을 조이는 것으로는 이 문제를 확실하게 해결할 수 없습니다. 이전 버전에서 임시 해결 방법으로, 동일하고 유효한 STEP 파일을 build123d/OCCT를 통해 직접 내보내세요:

import build123d as bd
part = bd.import_step("teacup.step")
bd.export_stl(part, "teacup-occt.stl", tolerance=0.0004, angular_tolerance=0.15)

결과 STL에서 중복 삼각형이 0개, 경계 엣지가 0개, 그리고 두 개 이상의 면이 공유하는 엣지가 0개인지 확인하세요.

원본 Issue #555
문제 해결
구멍이 곡면 벽을 관통할 때 non-watertight 또는 non-manifold 상태인 cadgen STL을 수정하려면 어떻게 해야 하나요?

곡면의 구멍 주변에서 중복 삼각형과 면적이 0인 삼각형이 생성되는 문제를 수정한 cadgen 0.7.3 이상 버전으로 업그레이드하세요:

pip install --upgrade cadgen==0.7.3

영향을 받는 STL을 다시 내보내세요. 새 테셀레이션 캐시 버전은 새로운 메시 생성을 강제하며, 캐시된 CAD 지오메트리는 그대로 유지할 수 있습니다. dfam-check 또는 Bambu Studio로 검증하세요. 메시가 watertight: true/manifold = yes로 보고되고 유효한 볼륨을 가져야 합니다.

cadgen 0.6.6 이하 버전에서는 build123d.export_stl을 사용해 OpenCascade 메셔로 동일한 형상을 내보내는 것이 임시 해결 방법이며, 이 방법은 결함이 없는 STL을 생성합니다.

원본 Issue #433
문제 해결
Windows Smart App Control에 의해 차단된 'DLL load failed while importing OCP' 오류를 해결하는 방법은?

이 문제는 Smart App Control이 cadquery-ocp/cadquery-ocp-novtk 7.9.3.1.1 Windows 휠에 포함된 서명되지 않은 네이티브 OCP.cp312-win_amd64.pyd를 차단하기 때문에 Windows 11에서 발생합니다. 이벤트 뷰어의 Applications and Services Logs > Microsoft > Windows > CodeIntegrity > Operational에서 확인할 수 있으며, Event ID 3077을 찾으면 됩니다. SAC는 파일별 또는 애플리케이션별 예외를 제공하지 않습니다.

해결 방법:
1. 권장: SAC가 적용되지 않는 WSL2에서 CAD 워크플로를 실행하세요. wsl --install로 WSL을 설치하고, Linux 가상 환경을 다시 만들고, pip install -r skills/cad/requirements.txt를 실행한 다음, 그 환경에서 cadgen/build123d를 사용하세요.
2. 보안상의 절충을 감수할 수 있다면 SAC를 비활성화하세요: Windows 보안 → 앱 및 브라우저 컨트롤 → Smart App Control 설정 → 끄기를 선택한 후 Windows를 다시 시작하세요. 나중에 다시 활성화하려면 초기화/재설치가 필요합니다.
3. 테스트 전용 대안: 관리자 권한으로 reg add HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy /v VerifiedAndReputablePolicyState /t REG_DWORD /d 2 /f를 실행하여 SAC를 Evaluation 모드로 설정한 후 다시 시작하세요. 이 방법은 테스트용으로 문서화되어 있으며 실질적으로 적용(enforcement)을 해제합니다.

cadgen 0.6.2 이상으로 업그레이드하세요. cadgen doctor와 CLI 실패 보고서는 이 ImportError를 명시적으로 감지하여 SAC/Event ID 3077을 안내합니다. 영구적인 Windows 네이티브 해결을 위해서는 업스트림 cadquery-ocp 휠에 Authenticode 서명이 필요합니다.

원본 Issue #404
문제 해결
병렬 빌드 직후 발생하는 cadgen "STALE (closure changed: ./)" 문제를 해결하는 방법은?

이것은 cadgen 0.7.11–0.7.15에서 발생하는 closure-digest 경합(race)입니다. 각 STEP 출력은 최종 출력 위치 옆의 숨겨진 디렉터리(예: .<part>-xxxxxxxx)에 임시로 빌드됩니다. 다른 모델이 os.listdir(), glob 또는 레지스트리 스캔으로 해당 폴더를 나열하면, 임시 디렉터리 이름이 그 모델의 closure에 해시됩니다. 형제 빌드가 완료되어 스테이징 디렉터리를 삭제하면 목록이 변경되므로, 해당 모델은 즉시 STALE (closure changed: ./; changed during the build)로 표시됩니다.

PR #575 및 #578이 포함된 cadgen 릴리스로 업그레이드하거나, 두 PR이 모두 병합된 main에서 설치하여 수정할 수 있습니다:

python -m pip install -U cadgen

#575는 cadgen 자체의 STEP 스테이징 폴더와 임시 파일을 폴더 목록 다이제스트에서 제외합니다. #578은 모델이 선언한 자체 출력을 제외하므로, 모델은 첫 빌드 후 최신 상태로 인식됩니다. 업그레이드 후에는 기존 레코드를 갱신하기 위해 한 번 재빌드를 실행하세요:

cadgen gen

즉시 업그레이드할 수 없는 경우, cadgen gen을 다시 실행하는 것이 우회 방법입니다. 영향을 받는 모델은 동일한 바이트로 재빌드되며 일반적으로 안정화됩니다. 소스 수준의 우회 방법은 cadgen/_internal/generation.py에서 cadgen 소유의 스테이징 접두사(예: .cadgen-stage-<name>-)를 사용하고, _listing_digest를 계산할 때 cadgen/store/closure.py에서 해당 cadgen 임시 항목을 건너뛰는 것입니다.

참고: 비어 있는 폴더에 처음 빌드한 후에는 형제 모델이 한 번 stale 상태가 될 수 있습니다. 이는 의도된 동작입니다. 모델이 새로 게시된 형제 출력을 찾기 위해 폴더를 나열할 수 있기 때문이며, 다시 빌드하면 해결됩니다.

원본 Issue #564
문제 해결
DXF 파일을 열 때 "The viewer did not respond while preparing this model" 오류를 어떻게 해결하나요?

이 타임아웃은 DXF에 수천 개의 TEXT 또는 MTEXT 엔티티가 포함된 경우 Windows에서 CAD 0.7.15를 사용할 때 발생할 수 있습니다. 텍스트가 윤곽선으로 렌더링되어 뷰어의 10초 제한을 초과하는 매우 큰 페이로드가 생성되며, 설치 후 처음으로 여는 DXF는 특히 느릴 수 있습니다.

임시 해결 방법: 약 1분 정도 기다린 후 Retry를 클릭하세요. 두 번째 요청은 기존 렌더를 재사용하여 성공할 수 있습니다.

영구적인 수정: 수정 #579가 포함된 릴리스로 업데이트하세요. 해당 릴리스에서는 도면 텍스트가 윤곽선 대신 텍스트로 전송되며, 도면이 계속 도착하는 동안 뷰어가 더 이상 타임아웃되지 않습니다. 6,000개의 텍스트가 포함된 테스트 도면의 크기가 150 MB에서 1.5 MB로 감소했으며 약 2.5초 만에 열렸습니다. 업데이트 후에도 파일이 계속 실패하면 DXF 파일 크기와 함께 문제를 보고하세요.

원본 Issue #566