- MOVE: 기준점 [변위(D)] <변위> · 두 번째 점 <첫 번째 점을 변위로 사용> · 변위 기억(MOVE.DISP) · 한 번 뒤 끝 · Esc 제자리 끝 - ROTATE · SCALE: 공용 틀(pivot-tool) — 누름 한 번 = 값 · 복사(C) · 참조(R) → 새 값 [점(P)] · 각 · 비율 기억 · 0 이하 축척 거절 - 공용 고르기 상태(transform.helpers) — PICKFIRST · 빈 고르기 Enter = 끝 · OPTION.* 넘김 · 원본은 확정까지 도면에 그대로(N1 · N2) - 시험 transform-acad(15) · scale-tool 단위 시험 새 상태 이름 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TteK8mfYZetk5P3bEZkyVZ
26 lines
1.3 KiB
TypeScript
26 lines
1.3 KiB
TypeScript
/**
|
|
* ROTATE(337 라 · 설계 1-3) — 「기준점 지정:」 → 「회전 각도 지정 또는 [복사(C)/참조(R)] <0>:」 ·
|
|
* 누름 한 번 = 기준점에서 그 점 방향 각 · 숫자 = 반시계 + · R → 「참조 각도를 지정 <0>:」(숫자 · 두 점 · `@` = 기준점) →
|
|
* 「새 각도 지정 또는 [점(P)] <0>:」 · 각 기억(ROTATE.ANGLE).
|
|
*/
|
|
import { Tool } from '../tools';
|
|
import { PivotState, createPivotTool } from './pivot-tool';
|
|
import { angleOf, toRadians } from './transform.helpers';
|
|
|
|
export { PivotState as RotateState };
|
|
|
|
export const rotateToolStateMachine = createPivotTool({
|
|
tool: Tool.ROTATE,
|
|
format: 'ang',
|
|
value: { text: '회전 각도 지정', remember: 'ROTATE.ANGLE', initial: 0 },
|
|
reference: { text: '참조 각도를 지정', remember: 'ROTATE.REF', initial: 0 },
|
|
next: { text: '새 각도 지정', remember: 'ROTATE.NEW', initial: 0 },
|
|
reject: '유효한 숫자 각도, 두 번째 점 또는 옵션 키워드를 요구함.',
|
|
copyNotice: ['선택한 객체의 사본을 회전함.', '선택한 객체를 회전함.'],
|
|
invalidNotice: '유효한 숫자 각도, 두 번째 점 또는 옵션 키워드를 요구함.',
|
|
measure: angleOf,
|
|
combine: (next, reference) => next - reference,
|
|
valid: () => true,
|
|
apply: (entity, base, degrees) => entity.rotate(base, toRadians(degrees)),
|
|
});
|