feat(CAD): 331-3 선 중 닫기(C) · 명령취소(U) · 한 번 스냅 이름 · 한글 안내문

- 선 — 이어 그리기 첫 점 · 구간 기억 · C = 둘째 선부터 첫 점으로 닫고 끝 · U = 마지막 한 구간만 취소
- 점 단계 글 — 선택지 글자(meta.options)만 도구로 · 나머지는 명령 이름 그대로 · 한글 받개는 점 단계에서 안 잡음
- 새 input-snap-override — END · MID · CEN · INT · PER · NEA · NON 다음 한 점만 · F3 꺼져도 · 맞는 점 없으면 클릭 버림 · Esc 풂 · 커서 옆 안내
- 원본 도구 안내문 한글(선 · 원 · 사각형 · 이동 · 복사 · 회전 · 배열 · 정렬 · 지우개 · 그림 · 폴리선 합치기 · 선택)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013QyNXY2TUKXCFMwAca2APG
This commit is contained in:
2026-10-15 12:41:16 +09:00
co-authored by Claude Opus 5.5
parent 32ddaa8064
commit ca11ee1456
16 changed files with 318 additions and 61 deletions
@@ -91,7 +91,7 @@ export const arrayToolStateMachine = createMachine(
[ArrayState.WAITING_FOR_SELECTION]: {
description: 'Select what you want to copy',
meta: {
instructions: 'Select what you want to copy, then ENTER',
instructions: '배열할 객체 선택 뒤 Enter',
},
invoke: {
id: 'selectToolInsideTheCopyTool',
@@ -145,7 +145,7 @@ export const arrayToolStateMachine = createMachine(
],
},
[ArrayState.ASK_COPY_MODE]: {
meta: { instructions: 'Choose copy mode: Linear (L) or Radial (R), ENTER for Linear' },
meta: { instructions: '배열 방식 [직선(L)/원형(R)] <직선>:' },
on: {
TEXT_INPUT: {
actions: assign(({ event }) => {
@@ -168,7 +168,7 @@ export const arrayToolStateMachine = createMachine(
},
},
[ArrayState.ASK_NUMBER_OF_COPIES]: {
meta: { instructions: 'Enter number of copies' },
meta: { instructions: '복사 개수 입력:' },
on: {
NUMBER_INPUT: [
{
@@ -196,7 +196,7 @@ export const arrayToolStateMachine = createMachine(
},
},
[ArrayState.LINEAR_WAITING_FOR_START_POINT]: {
meta: { instructions: 'Click to define the start of the distance vector' },
meta: { instructions: '간격 시작점 지정:' },
on: {
ABSOLUTE_POINT_INPUT: {
actions: assign(({ event }) => ({
@@ -216,7 +216,7 @@ export const arrayToolStateMachine = createMachine(
},
},
[ArrayState.LINEAR_WAITING_FOR_END_POINT]: {
meta: { instructions: 'Click to define the end of the distance vector' },
meta: { instructions: '간격 끝점 지정:' },
on: {
RELATIVE_POINT_INPUT: {
actions: assign(({ event, context }) => ({
@@ -245,7 +245,7 @@ export const arrayToolStateMachine = createMachine(
},
},
[ArrayState.RADIAL_WAITING_FOR_PIVOT_POINT]: {
meta: { instructions: 'Click to set pivot point' },
meta: { instructions: '회전 중심점 지정:' },
on: {
ABSOLUTE_POINT_INPUT: {
actions: assign(({ event }) => ({
@@ -265,7 +265,7 @@ export const arrayToolStateMachine = createMachine(
},
},
[ArrayState.RADIAL_WAITING_FOR_ANGLE]: {
meta: { instructions: 'Enter angle per step (in degrees)' },
meta: { instructions: '한 칸 각도(도) 입력:' },
on: {
NUMBER_INPUT: {
target: ArrayState.EXECUTE_COPY,