fix: scad_animate/write_scad 설명에 작업실 프로젝트 폴더 접두어 규칙 명시
모델이 'robot_arm_2min.mp4'처럼 접두어 없이 호출해 워크스페이스 루트에 쓰여 파일 탭에 안 보이는 사고 반복(2026-09-22 실측). 설명에 'workshop/<프로젝트id>/...' 접두어 필수 규칙 추가. Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -1212,7 +1212,7 @@ export function createBuildTools(isOrchestrationSkillEnabled: () => boolean) {
|
||||
parameters: {
|
||||
type: 'object', required: ['scad_path', 'content'],
|
||||
properties: {
|
||||
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로, .scad로 끝나야 함. 폴더가 없으면 자동 생성된다.' },
|
||||
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로, .scad로 끝나야 함. 폴더가 없으면 자동 생성된다. 작업실 채팅이라면 반드시 "workshop/<프로젝트id>/파일명" 형태로 프로젝트 폴더 안에 넣을 것 — 접두어 없이 쓰면 워크스페이스 루트에 저장돼 파일 탭에 안 보인다.' },
|
||||
content: { type: 'string', description: 'OpenSCAD 소스 코드 전체(파일 전체 내용을 매번 새로 씀 — 부분 수정 아님).' },
|
||||
},
|
||||
},
|
||||
@@ -1231,8 +1231,8 @@ export function createBuildTools(isOrchestrationSkillEnabled: () => boolean) {
|
||||
parameters: {
|
||||
type: 'object', required: ['scad_path', 'output_path'],
|
||||
properties: {
|
||||
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로의 .scad 소스 파일. $t로 움직이는 구조(예: 회전각 = 90*$t)가 있어야 프레임마다 다른 장면이 나온다.' },
|
||||
output_path: { type: 'string', description: '결과 MP4를 저장할 워크스페이스 기준 상대경로(.mp4로 끝나야 함).' },
|
||||
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로의 .scad 소스 파일. $t로 움직이는 구조(예: 회전각 = 90*$t)가 있어야 프레임마다 다른 장면이 나온다. 작업실(작업 프로젝트) 채팅이라면 반드시 "workshop/<프로젝트id>/파일명" 형태로 프로젝트 폴더 안에 넣을 것 — 접두어를 빼면 워크스페이스 루트에 쓰여 파일 탭에 안 보인다.' },
|
||||
output_path: { type: 'string', description: '결과 MP4를 저장할 워크스페이스 기준 상대경로(.mp4로 끝나야 함). 작업실 채팅이라면 반드시 "workshop/<프로젝트id>/파일명.mp4" 형태로 — 접두어 없이 쓰면 워크스페이스 루트에 저장돼 파일 탭에 안 보인다.' },
|
||||
frames: { type: 'number', description: '(선택) 프레임 수 — 기본 24, 최대 600. $t는 0부터 (1-1/frames)까지 균등 간격.' },
|
||||
fps: { type: 'number', description: '(선택) MP4 프레임레이트 — 기본 10(1초~2.4초 분량). 부드러운 동작이면 15~24.' },
|
||||
camera: { type: 'string', description: "(선택) OpenSCAD --camera 김발값 — 'tx,ty,tz,rx,ry,rz,dist' 형식(예: '0,0,50,70,0,315,480'). 생략하면 모델 실측(애니메이션 4포즈를 STL로 컴파일해 바운딩박스 합집합 측정) 기준으로 자동 프레이밍한다 — 굳이 줄 필요 없음. 고정 카메라에서 관절만 움직이는 게 보통 보기 좋다." },
|
||||
|
||||
@@ -356,7 +356,7 @@ export const writeScadTool = {
|
||||
type: 'object',
|
||||
required: ['scad_path', 'content'],
|
||||
properties: {
|
||||
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로, .scad로 끝나야 함. 폴더가 없으면 자동 생성된다.' },
|
||||
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로, .scad로 끝나야 함. 폴더가 없으면 자동 생성된다. 작업실 채팅이라면 반드시 "workshop/<프로젝트id>/파일명" 형태로 프로젝트 폴더 안에 넣을 것 — 접두어 없이 쓰면 워크스페이스 루트에 저장돼 파일 탭에 안 보인다.' },
|
||||
content: { type: 'string', description: 'OpenSCAD 소스 코드 전체(파일 전체 내용을 매번 새로 씀 — 부분 수정 아님).' },
|
||||
},
|
||||
additionalProperties: false,
|
||||
@@ -449,8 +449,8 @@ export const scadAnimateTool = {
|
||||
type: 'object',
|
||||
required: ['scad_path', 'output_path'],
|
||||
properties: {
|
||||
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로의 .scad 소스 파일. $t로 움직이는 구조(예: 회전각 = 90*$t)가 있어야 프레임마다 다른 장면이 나온다.' },
|
||||
output_path: { type: 'string', description: '결과 MP4를 저장할 워크스페이스 기준 상대경로(.mp4로 끝나야 함).' },
|
||||
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로의 .scad 소스 파일. $t로 움직이는 구조(예: 회전각 = 90*$t)가 있어야 프레임마다 다른 장면이 나온다. 작업실(작업 프로젝트) 채팅이라면 반드시 "workshop/<프로젝트id>/파일명" 형태로 프로젝트 폴더 안에 넣을 것 — 접두어를 빼면 워크스페이스 루트에 쓰여 파일 탭에 안 보인다.' },
|
||||
output_path: { type: 'string', description: '결과 MP4를 저장할 워크스페이스 기준 상대경로(.mp4로 끝나야 함). 작업실 채팅이라면 반드시 "workshop/<프로젝트id>/파일명.mp4" 형태로 — 접두어 없이 쓰면 워크스페이스 루트에 저장돼 파일 탭에 안 보인다.' },
|
||||
frames: { type: 'number', description: '(선택) 프레임 수 — 기본 24, 최대 600. $t는 0부터 (1-1/frames)까지 균등 간격.' },
|
||||
fps: { type: 'number', description: '(선택) MP4 프레임레이트 — 기본 10(1초~2.4초 분량). 부드러운 동작이면 15~24.' },
|
||||
camera: { type: 'string', description: "(선택) OpenSCAD --camera 김발값 — 'tx,ty,tz,rx,ry,rz,dist' 형식(예: '0,0,50,70,0,315,480'). 생략하면 모델 실측(중간 프레임을 STL로 컴파일해 바운딩박스 측정) 기준으로 자동 프레이밍한다 — 굳이 줄 필요 없음. 고정 카메라에서 관절만 움직이는 게 보통 보기 좋다." },
|
||||
|
||||
Reference in New Issue
Block a user