agentcad은(는) 무엇을 하나요?
1. 핵심 규칙
agentcad로 구축된 형상을 직접 측정하지 않은 치수, 공차 또는 PASS를 절대 보고하지 마십시오.
매개변수는 의도일 뿐, 증거가 아닙니다. model.py에 입력한 값은 당신이 원한 것을 말해줄 뿐, 실제 존재하는 것을 말해주지 않습니다.
2. 작업 루프
agentcad new my-part --template blank # 또는 bracket, box-with-lid
# my-part/model.py 및 my-part/agentcad.toml 편집
agentcad check my-part --json # 빌드 후 측정
agentcad render my-part # build/renders/: 뷰별 PNG + sheet.png
agentcad view my-part # 실시간 뷰어, 사람용
- 먼저 또는 모델링 중에 요구사항에 대한 검사를 작성합니다 (섹션 3).
agentcad check --json을 실행합니다. 모든 FAIL을 읽으십시오:summary,measured,limit,where.where가 가리키는 위치의 형상을 수정합니다. 재실행합니다. 요구사항 자체가 변경되지 않았다면 FAIL을 없애기 위해 limit을 편집하지 마십시오.agentcad render를 실행하고 이미지 뷰어로sheet.png를 엽니다. 괜찮다고 말하기 전에 실제로 보십시오. 렌더링은 큰 오류(누락된 피처, 잘못된 면)를 찾습니다. 두께, 공차 또는 중첩을 증명하지는 않습니다.- 모든 게이트가 통과할 때까지 반복합니다. 마지막 편집 후 다시
agentcad check를 실행합니다.
overhang 게이트는 베드 위의 면과 first_layer_mm(기본값 0.3) 아래에 중심이 있는 아래쪽 면을 무시하므로, 하단 모서리 모따기는 계산되지 않습니다. 면제 영역은 first_layer_area_mm2로 보고됩니다.
--only ID,ID를 사용하여 선택한 게이트만 재실행하고, build/가 최신일 때만 --no-build를 사용하십시오.
3. 요구사항을 검사로 전환
브리프의 모든 기능적 요구사항은 checks(ctx)의 검사가 됩니다. 프로브 솔리드(섹션 4)는 결합 대상의 대리 역할을 합니다. 아래의 모든 이름은 실제 API입니다.
맞춤은 유격 측정이 됩니다:
def checks(ctx):
play = ctx.play("lid", "box", direction=(1, 0, 0), max_mm=2.0)
ctx.expect("lid_side_play", play if play is not None else 2.0, min=0.15, max=0.4, part="lid")
"뚜껑이 분리됨"은 슬라이드 테스트가 됩니다:
sweep = ctx.slide("lid", "box", direction=(0, 0, 1), distance=15.0, steps=40)
ctx.expect("lid_lifts_free", max(s["overlap_mm3"] for s in sweep), max=0.01, unit="mm3", part="lid")
"M4 나사가 통과함"은 충돌하지 않고 벽에 가까워야 하는 프로브 실린더가 됩니다:
import cadquery as cq
screw = cq.Workplane("XY").circle(2.0).extrude(30).translate((10, 0, -5)) # 4.0 mm 생크
ctx.expect("screw_interference", ctx.interference("bracket", screw), max=0.01, unit="mm3", part="bracket")
ctx.expect("screw_wall_gap", ctx.distance("bracket", screw), min=0.0, max=0.5, part="bracket")
거리 대역은 나사가 실제로 구멍 근처에 있고 14mm 떨어져 중첩이 0이 아님을 증명합니다.
"프린터에 맞음"은 내장 bed_fit 게이트입니다: agentcad.toml의 [printer]를 실제 기계로 설정하십시오 (profile 또는 bed = [X, Y, Z]). "벽이 충분히 강함"은 [checks] 아래의 min_wall_mm입니다.
4. 프로브 솔리드
결합 대상의 대리 역할을 요구사항으로부터 구축하고, 절대 모델 자체의 매개변수에서 가져오지 마십시오. M4 나사는 4.0mm 원통입니다. 54mm 볼은 54mm 구입니다. 케이블은 경로를 따라 원통입니다. 손은 손 크기의 상자입니다. 프로브가 구멍을 만드는 데 사용된 동일한 변수를 읽으면 검사는 절대 실패할 수 없습니다.
프로브는 이미 사용 프레임에 있는 cq.Workplane 또는 cq.Shape 객체입니다. .translate로 배치하고 부품 이름이 허용되는 모든 곳(ctx.interference, ctx.distance, ctx.slide, ctx.play)에 전달하십시오.
5. 검사가 실패할 수 있음을 증명
실패하는 것을 한 번도 본 적 없는 검사는 추측에 불과합니다. 작성 후:
- 반드시 검사가 발동되도록 형상(또는 프로브)을 망가뜨리십시오: 구멍을 3mm 이동시키고, 공차를 0으로 줄이고, 프로브를 1mm 크게 만드십시오.
agentcad check를 실행합니다. 이 검사가 자체 어설션에서 예상한 숫자로 FAIL하는지 확인합니다.- 형상을 복원하고 PASS를 확인합니다.
망가진 상태에서 통과하면 검사는 잘못된 것을 측정하는 것입니다. 다른 결과를 신뢰하기 전에 검사를 수정하십시오.
6. 프레임
| 프레임 | 의미 | 사용처 |
|---|---|---|
| model | 자체 좌표계의 부품 | build/step/<part>.step |
| use | 조립된 포즈, Part.use | interference, 프로브, ctx.slide, ctx.play, build/assembly/ |
베드 위, z = 0은 바닥, XY 중앙, Part.print 회전 | bed_fit, bed_contact, overhang, min_wall, watertight, build/stl/ |
각 부품이 지지대 없이 인쇄되고 하중 방향으로 레이어가 쌓이도록 Part.print = Pose(rx=180)(또는 적절한 회전)을 설정하십시오. 먼저 베드에 닿을 면을 선택한 다음 해당 프레임에서 overhang을 확인하십시오. 구매 부품은 printed=False를 설정합니다. 편리한 로컬 프레임에 부품을 모델링하고 Part.use로 배치하십시오.
7. 보고서, 종료 코드, 차이점 및 느슨한 파일
종료 코드: 0 모두 통과(WARN 허용), 1 하나 이상 FAIL, 2 사용법 또는 구성 오류(agentcad.toml의 알 수 없는 키 포함), 3 모델 코드가 예외를 발생시키거나 유효한 솔리드를 생성하지 않음. 2와 3은 "결과 없음"으로 처리하고 통과로 처리하지 마십시오.
agentcad check --json은 "schema": "agentcad.report/1" 및 checks 목록이 포함된 하나의 문서를 출력합니다. 각 검사에는 id, part, status (PASS, WARN, FAIL, SKIP, ERROR), summary, measured, limit, where가 있습니다. 프로젝트 검사가 예외를 발생시키면 ERROR가 되고 실행은 계속됩니다.
agentcad diff OLD NEW(두 개의 manifest.json 파일 또는 두 개의 빌드 폴더, 볼륨, 경계 상자, 부품 세트)로 빌드를 비교하여 편집 후 의도하지 않은 변경을 포착하십시오. 위험한 변경 전에 build/manifest.json을 따로 복사해 두십시오.
작성하지 않은 CAD를 검토하려면 파일을 직접 측정하십시오:
agentcad measure part.step --json
agentcad interfere a.stl b.stl --json
agentcad overhang part.stl --max-deg 45 --json
agentcad wall part.stl --thin 1.2 --json
agentcad fit part.stl --printer generic-220 --json
8. 중단 시점
다음 모든 조건이 충족될 때만 중단하십시오:
- 마지막 편집 후 실행한 최신
agentcad check실행에서 모든 게이트가 통과함; - 브리프의 모든 요구사항에 검사가 있고 각각이 실패하는 것을 확인했음(섹션 5);
- 렌더링을 확인했음;
- 요약에 단위가 포함된 측정된 숫자(공차, 벽 p1, 오버행 면적, 베드 핏)를 인용함;
- 부품 수와 벤치 검사로 남겨진 항목(스냅력, 실제 프린터의 공차, 재료 거동)을 명시함.
9. 안티 패턴 및 이로 인한 실패
- 매개변수를 읽고 구축된 형상을 무시함. 작업자가 슬라이딩 더브테일 공차에 대해 PASS를 보고했지만 부품이 홈에서 14mm 떨어져 있었는데, 검사가 매개변수를 읽었기 때문입니다.
- 인쇄 프레임을 건너뜀. 플레이트가 인쇄 방향에서 오버행을 확인하지 않았기 때문에 약 6100mm2의 지지되지 않은 천장으로 인쇄되도록 모델링되었습니다.
- 쌍별 간섭을 건너뜀. 사용 포즈에서 간섭을 실행하지 않았기 때문에 두 부품이 어셈블리에서 50cm3 중첩되었습니다.
- 거친 내보내기 공차. 회전 부품의 거친 STL 내보내기는 2.0mm 벽을 1.5mm로 슬라이싱하는 패싯을 생성했습니다. 수정: 내보내기 공차 0.02mm, 각도 공차 0.05rad (
[export]의 기본값). - 측정되지 않은 설명. 설계 문서에는 외경이 29~33.5mm라고 명시되어 있지만 모델은 19mm로 측정되었습니다. 설명에 작성하는 모든 숫자를 측정하십시오.
- "빌드됨"만 게이팅함. 모든 내부 채널이 밀봉되고 주둥이가 솔리드인 상태에서 재빌드가 유일한 게이트를 통과했습니다. 기능적 경로를 추적하십시오: 물, 케이블 또는 공기 경로를 따라 프로브를 스윕하십시오.
- 전체만 확인함. 느슨한 단계 하나가 6도에서 혼자 기울어졌지만 어셈블리는 전체적으로 안정적이었습니다. 각 느슨한 하위 스택을 확인하십시오.
- 오래된 보고서 신뢰. 이전 보고서가 작성된 후 빌드가 충돌하여 게이트 보고서가 오래되었습니다. agentcad는 원자적으로 빌드하지만, 여전히 보고서 타임스탬프를 마지막 편집과 비교하고 모든 편집 후에 재실행하십시오.
- 그림 신뢰. 깨끗한 렌더링이 위의 모든 것을 숨겼습니다.
10. 참고 자료
- references/design-for-printing.md: FDM 부품의 방향, 벽 두께, 맞춤, 나사 구멍 또는 스냅 피처를 선택하기 전에 읽으십시오.
- references/cadquery-patterns.md: CadQuery 작업이 실패하거나 예상치 못한 형상을 반환하거나 선택기, 셸, 필렛 또는 프로브 솔리드가 필요할 때 읽으십시오.
- references/verification-playbook.md: 브리프에 대한 검사를 계획하거나, 동작 또는 기능을 테스트하거나, 다른 에이전트의 CAD를 검토할 때 읽으십시오.