@things-factory/figure-ui 10.1.27 → 10.1.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/client/graphql/index.ts +23 -0
  2. package/client/modeller/angle-dial.ts +70 -0
  3. package/client/modeller/base-box.ts +104 -0
  4. package/client/modeller/figure-animations.ts +90 -17
  5. package/client/modeller/figure-canvas.ts +24 -6
  6. package/client/modeller/figure-inspector.ts +169 -5
  7. package/client/modeller/figure-preview.ts +110 -3
  8. package/client/modeller/figure-report.ts +20 -32
  9. package/client/modeller/figure-side.ts +10 -1
  10. package/client/modeller/figure-source.ts +8 -0
  11. package/client/modeller/joint-edits.ts +66 -5
  12. package/client/modeller/joint-gizmo.ts +180 -0
  13. package/client/modeller/part-edits.ts +75 -9
  14. package/client/modeller/pose-defaults.ts +67 -0
  15. package/client/modeller/proposal.ts +9 -3
  16. package/client/modeller/scene-budget.ts +31 -40
  17. package/client/pages/figure-list-page.ts +4 -9
  18. package/client/pages/figure-modeller-page.ts +144 -43
  19. package/client/types.ts +2 -0
  20. package/dist-client/graphql/index.d.ts +7 -0
  21. package/dist-client/graphql/index.js +21 -0
  22. package/dist-client/graphql/index.js.map +1 -1
  23. package/dist-client/modeller/angle-dial.d.ts +32 -0
  24. package/dist-client/modeller/angle-dial.js +41 -0
  25. package/dist-client/modeller/angle-dial.js.map +1 -0
  26. package/dist-client/modeller/base-box.d.ts +47 -0
  27. package/dist-client/modeller/base-box.js +52 -0
  28. package/dist-client/modeller/base-box.js.map +1 -0
  29. package/dist-client/modeller/figure-animations.d.ts +19 -4
  30. package/dist-client/modeller/figure-animations.js +86 -17
  31. package/dist-client/modeller/figure-animations.js.map +1 -1
  32. package/dist-client/modeller/figure-canvas.d.ts +9 -0
  33. package/dist-client/modeller/figure-canvas.js +20 -6
  34. package/dist-client/modeller/figure-canvas.js.map +1 -1
  35. package/dist-client/modeller/figure-inspector.d.ts +37 -0
  36. package/dist-client/modeller/figure-inspector.js +159 -5
  37. package/dist-client/modeller/figure-inspector.js.map +1 -1
  38. package/dist-client/modeller/figure-preview.d.ts +26 -0
  39. package/dist-client/modeller/figure-preview.js +99 -3
  40. package/dist-client/modeller/figure-preview.js.map +1 -1
  41. package/dist-client/modeller/figure-report.d.ts +11 -6
  42. package/dist-client/modeller/figure-report.js +20 -35
  43. package/dist-client/modeller/figure-report.js.map +1 -1
  44. package/dist-client/modeller/figure-side.d.ts +5 -1
  45. package/dist-client/modeller/figure-side.js +13 -0
  46. package/dist-client/modeller/figure-side.js.map +1 -1
  47. package/dist-client/modeller/figure-source.d.ts +7 -0
  48. package/dist-client/modeller/figure-source.js.map +1 -1
  49. package/dist-client/modeller/joint-edits.d.ts +23 -3
  50. package/dist-client/modeller/joint-edits.js +53 -5
  51. package/dist-client/modeller/joint-edits.js.map +1 -1
  52. package/dist-client/modeller/joint-gizmo.d.ts +34 -0
  53. package/dist-client/modeller/joint-gizmo.js +158 -0
  54. package/dist-client/modeller/joint-gizmo.js.map +1 -0
  55. package/dist-client/modeller/part-edits.d.ts +29 -4
  56. package/dist-client/modeller/part-edits.js +61 -9
  57. package/dist-client/modeller/part-edits.js.map +1 -1
  58. package/dist-client/modeller/pose-defaults.d.ts +9 -0
  59. package/dist-client/modeller/pose-defaults.js +35 -0
  60. package/dist-client/modeller/pose-defaults.js.map +1 -0
  61. package/dist-client/modeller/proposal.d.ts +1 -1
  62. package/dist-client/modeller/proposal.js +8 -3
  63. package/dist-client/modeller/proposal.js.map +1 -1
  64. package/dist-client/modeller/scene-budget.d.ts +31 -34
  65. package/dist-client/modeller/scene-budget.js +28 -37
  66. package/dist-client/modeller/scene-budget.js.map +1 -1
  67. package/dist-client/pages/figure-list-page.js +4 -9
  68. package/dist-client/pages/figure-list-page.js.map +1 -1
  69. package/dist-client/pages/figure-modeller-page.d.ts +50 -0
  70. package/dist-client/pages/figure-modeller-page.js +141 -42
  71. package/dist-client/pages/figure-modeller-page.js.map +1 -1
  72. package/dist-client/tsconfig.tsbuildinfo +1 -1
  73. package/dist-client/types.d.ts +2 -0
  74. package/dist-client/types.js.map +1 -1
  75. package/package.json +5 -5
  76. package/test/ai-proposal-contract.test.ts +16 -11
  77. package/test/angle-dial.test.ts +78 -0
  78. package/test/base-box.test.ts +165 -0
  79. package/test/expect.ts +2 -0
  80. package/test/i18n-prefix-guard.test.ts +17 -0
  81. package/test/joint-edits.test.ts +37 -2
  82. package/test/joint-gizmo.test.ts +174 -0
  83. package/test/joint-needle.test.ts +162 -0
  84. package/test/part-edits.test.ts +100 -0
  85. package/test/pose-defaults.test.ts +71 -0
  86. package/test/scene-budget.test.ts +82 -0
  87. package/translations/en.json +16 -9
  88. package/translations/ja.json +16 -9
  89. package/translations/ko.json +16 -9
  90. package/translations/ms.json +16 -9
  91. package/translations/zh.json +16 -9
@@ -12,6 +12,7 @@
12
12
  "figure.button.delete-figure": "삭제",
13
13
  "figure.button.discard": "취소",
14
14
  "figure.button.duplicate-part": "복제",
15
+ "figure.button.fit-base-to-parts": "부품에 맞추기",
15
16
  "figure.button.mirror-x": "X 대칭",
16
17
  "figure.button.mirror-z": "Z 대칭",
17
18
  "figure.button.move-part-down": "아래로",
@@ -19,6 +20,7 @@
19
20
  "figure.button.new-figure": "새 Figure",
20
21
  "figure.button.pivot-clear": "제 중심으로",
21
22
  "figure.button.pivot-set": "적기",
23
+ "figure.button.pose-as-default": "이 자세를 기본으로",
22
24
  "figure.button.preview-fix": "수정안 미리보기 · {part} {axis} 고정 면: {from} → {to}",
23
25
  "figure.button.redo": "다시 실행",
24
26
  "figure.button.release-figure": "발행하기",
@@ -82,8 +84,9 @@
82
84
  "figure.label.axis-scale": "배치 규모",
83
85
  "figure.label.axis-scale-short": "규모",
84
86
  "figure.label.axis-width": "가로",
85
- "figure.label.budget-animations": "움직이는 부품",
87
+ "figure.label.base-box": "기준 상자 (mm)",
86
88
  "figure.label.budget-groups": "재질 그룹",
89
+ "figure.label.budget-independent": "따로 움직이는 부품",
87
90
  "figure.label.budget-parts": "부품 수",
88
91
  "figure.label.budget-surface": "팔레트 외 표면",
89
92
  "figure.label.budget-transparent": "투명 재질",
@@ -110,8 +113,6 @@
110
113
  "figure.label.distinct-materials": "서로 다른 재질",
111
114
  "figure.label.distinct-shapes": "서로 다른 형상",
112
115
  "figure.label.draft": "초안",
113
- "figure.label.draw-calls-at-100": "100개 기준 draw call",
114
- "figure.label.draw-calls-at-10k": "1만개 기준 draw call",
115
116
  "figure.label.emissive": "자체발광",
116
117
  "figure.label.emissive-color": "켜진 색",
117
118
  "figure.label.environment": "환경",
@@ -260,8 +261,8 @@
260
261
  "figure.label.tools": "맞추기",
261
262
  "figure.label.transparent": "투명",
262
263
  "figure.label.triangles": "삼각형",
263
- "figure.label.triangles-at-100": "100개 기준 삼각형",
264
- "figure.label.triangles-at-10k": "1만개 기준 삼각형",
264
+ "figure.label.unit-none": "단위 없음",
265
+ "figure.label.unit-type-it": "직접 적기…",
265
266
  "figure.label.weight": "그리는 비용",
266
267
  "figure.label.what-this-does": "이 Figure 가 하는 일",
267
268
  "figure.text.accepts-anything": "비우면 아무거나",
@@ -271,15 +272,15 @@
271
272
  "figure.text.already-released-edit-to-release-again": "이미 발행되어 있습니다. 고쳐서 저장하면 초안으로 돌아가고, 그때 다시 발행할 수 있습니다.",
272
273
  "figure.text.anchor-explained": "상자가 커질 때 이 부품이 어디에 붙어 있을지입니다. 맞댄 부품과 다른 면에 붙어 있으면 커질 때 사이가 벌어집니다.",
273
274
  "figure.text.anchors-are-not-drawn": "슬롯과 포트는 도면에 그려지지 않고 편집 화면에만 표시됩니다.",
274
- "figure.text.animated-parts-cost": "움직이는 부품마다 draw call 이 1 늘어납니다.",
275
- "figure.text.animated-parts-over": "한도를 넘었습니다. 한 도면에 여러 개 놓으면 화면이 느려집니다.",
276
275
  "figure.text.animation-empty-examples": "도는 롤러 · 미끄러지는 문짝 · 오르내리는 리프트 · 깜빡이는 표시등.",
277
276
  "figure.text.animation-empty-what-it-is": "아직 움직임이 없습니다. clip 을 추가해 부품을 움직이세요.",
278
277
  "figure.text.animation-needs-a-named-part": "부품을 먼저 추가하세요.",
279
278
  "figure.text.assistant-proposed-a-figure": "제안을 오른쪽에 표시했습니다.",
280
279
  "figure.text.axes-not-measurable-yet": "측정할 수 없는 항목은 차트에서 뺐습니다: {axes}. 이유는 아래에 있습니다.",
281
- "figure.text.bound-by-drawCalls": "draw call먼저 한도에 도달합니다 (1개당 {per}, 도면당 {budget}).",
280
+ "figure.text.base-box-explained": "도면에 놓일 때의 배율을 정하는 상자입니다. 부품이 상자를 넘으면 발행이 막힙니다. 크기를 바꿔도 부품은 제자리에 남습니다.",
281
+ "figure.text.bound-by-groups": "부품 묶음이 먼저 찹니다 — 이 도형은 {per} 묶음이고, 한 화면에 {budget} 묶음까지 60fps 로 돕니다.",
282
282
  "figure.text.bound-by-triangles": "삼각형이 먼저 한도에 도달합니다 (1개당 {per}, 도면당 {budget}).",
283
+ "figure.text.budget-measured-on": "{gpu} 에서 {on} 에 잰 값입니다. 가만히 서 있는 도형은 값을 치르지 않습니다 — 화면에 보이고 다시 그려지는 것만 셉니다.",
283
284
  "figure.text.budget-not-measured-yet": "아직 실측 전 목표치입니다.",
284
285
  "figure.text.cannot-release-now": "지금은 발행할 수 없습니다",
285
286
  "figure.text.canvas-appears-once-a-part-exists": "왼쪽 「도형」에서 하나를 선택해 첫 부품을 추가하세요.",
@@ -296,6 +297,7 @@
296
297
  "figure.text.change-capabilities": "능력",
297
298
  "figure.text.change-changed": "바뀐 부품",
298
299
  "figure.text.change-detail": "디테일 등급",
300
+ "figure.text.change-joints": "관절",
299
301
  "figure.text.change-placement": "배치 기준",
300
302
  "figure.text.change-removed": "삭제되는 부품",
301
303
  "figure.text.change-styleKit": "스타일 킷",
@@ -307,6 +309,7 @@
307
309
  "figure.text.clip-needs-a-name": "이름을 입력하세요.",
308
310
  "figure.text.collapse-parts-pane": "부품 목록 접기",
309
311
  "figure.text.collapse-properties-pane": "속성 칸 접기",
312
+ "figure.text.contract-not-compared": "이 고침이 이미 놓인 것을 깨는지 확인하지 못했습니다 — {why}",
310
313
  "figure.text.coordinate-ground-explained": "원점과 눈금을 바닥에 표시합니다",
311
314
  "figure.text.delete-figure-confirm": "{name} 을 삭제하시겠습니까? 이 타입을 쓰고 있는 도면은 더 이상 찾지 못합니다.",
312
315
  "figure.text.designate-in-properties": "아직 지정된 부품이 없습니다. 부품을 선택하고 속성 탭에서 「능력에서의 역할」을 지정하세요.",
@@ -323,6 +326,7 @@
323
326
  "figure.text.figure-type-example": "예: OHT, AGV_LIFTER",
324
327
  "figure.text.figure-type-placeholder": "Figure 식별 타입 (예: OHT)",
325
328
  "figure.text.find-by-this-tag": "이 태그로 찾기",
329
+ "figure.text.fit-base-explained": "부품 전부를 감싸는 가장 작은 상자로 바꿉니다. 한가운데는 그대로 두므로 치우친 부품이 있으면 반대쪽에 여유가 남습니다.",
326
330
  "figure.text.fits-n-instances": "{n}개까지",
327
331
  "figure.text.floor-explained": "좌표 바탕과 겹쳐 보통 끕니다",
328
332
  "figure.text.follow-camera-explained": "끄면 그림자 방향이 고정됩니다",
@@ -333,7 +337,9 @@
333
337
  "figure.text.hemisphere-light-explained": "하늘과 바닥에서 고르게 비추는 빛입니다. 그늘진 면을 밝힙니다.",
334
338
  "figure.text.hide-all-parts": "모두 감추기",
335
339
  "figure.text.hide-this-part": "이 부품을 잠깐 가립니다. 저장되지 않습니다",
336
- "figure.text.how-many-fit": "한 도면에 화면이 느려지지 않고 놓을 있는 수",
340
+ "figure.text.how-many-fit": "한 화면에 보여도 느려지지 않는 수",
341
+ "figure.text.independent-parts-cost": "따로 움직이는 부품마다 draw call 이 하나 늘어납니다.",
342
+ "figure.text.independent-parts-over": "한도를 넘었습니다. 한 화면에 함께 세울 수 있는 대수가 그만큼 줍니다.",
337
343
  "figure.text.instances-unit": "개",
338
344
  "figure.text.interpolation-explained": "키프레임 사이를 어떻게 잇습니까.",
339
345
  "figure.text.joint-channel-value-deg": "키 값은 관절 각도(도)입니다.",
@@ -392,6 +398,7 @@
392
398
  "figure.text.picked-changes-do-not-validate": "선택한 조합은 형식에 맞지 않습니다",
393
399
  "figure.text.pivot-defaults-to-the-part-centre": "적지 않으면 부품 제 중심입니다. 부품 기준 좌표입니다.",
394
400
  "figure.text.placement-explained": "3D 씬에서 객체의 기준면을 정합니다 (바닥: AGV/컨베이어, 천장: OHT/호이스트, 중심: 센서/드론).",
401
+ "figure.text.pose-as-default-explained": "지금 세운 자세를 파라미터의 기본값으로 적습니다. 아무도 값을 주지 않을 때 도형이 이 자세로 섭니다.",
395
402
  "figure.text.preview-blocked-by-errors": "형식 오류로 미리보기를 표시할 수 없습니다. 성숙도 탭에서 사유를 확인하세요.",
396
403
  "figure.text.preview-needs-a-part": "부품을 추가하면 도면에 놓았을 때의 모습이 표시됩니다.",
397
404
  "figure.text.proposal-feedback-note": "다음 제안에 반영할 메모 (현재 세션에만 사용)",
@@ -12,6 +12,7 @@
12
12
  "figure.button.delete-figure": "delete",
13
13
  "figure.button.discard": "discard",
14
14
  "figure.button.duplicate-part": "duplicate",
15
+ "figure.button.fit-base-to-parts": "muatkan pada bahagian",
15
16
  "figure.button.mirror-x": "mirror X",
16
17
  "figure.button.mirror-z": "mirror Z",
17
18
  "figure.button.move-part-down": "move down",
@@ -19,6 +20,7 @@
19
20
  "figure.button.new-figure": "new figure",
20
21
  "figure.button.pivot-clear": "pusat bahagian",
21
22
  "figure.button.pivot-set": "tetapkan",
23
+ "figure.button.pose-as-default": "jadikan postur ini lalai",
22
24
  "figure.button.preview-fix": "pratonton pembetulan · {part} {axis} muka: {from} → {to}",
23
25
  "figure.button.redo": "Buat semula",
24
26
  "figure.button.release-figure": "terbitkan",
@@ -82,8 +84,9 @@
82
84
  "figure.label.axis-scale": "scale",
83
85
  "figure.label.axis-scale-short": "scale",
84
86
  "figure.label.axis-width": "width",
85
- "figure.label.budget-animations": "animation points",
87
+ "figure.label.base-box": "kotak asas (mm)",
86
88
  "figure.label.budget-groups": "material groups",
89
+ "figure.label.budget-independent": "bahagian yang bergerak sendiri",
87
90
  "figure.label.budget-parts": "part count",
88
91
  "figure.label.budget-surface": "surfaces outside the palette",
89
92
  "figure.label.budget-transparent": "transparent materials",
@@ -110,8 +113,6 @@
110
113
  "figure.label.distinct-materials": "distinct materials",
111
114
  "figure.label.distinct-shapes": "distinct shapes",
112
115
  "figure.label.draft": "draf",
113
- "figure.label.draw-calls-at-100": "draw calls for 100",
114
- "figure.label.draw-calls-at-10k": "draw calls at 10k instances",
115
116
  "figure.label.emissive": "emissive",
116
117
  "figure.label.emissive-color": "lit color",
117
118
  "figure.label.environment": "environment",
@@ -260,8 +261,8 @@
260
261
  "figure.label.tools": "align",
261
262
  "figure.label.transparent": "transparent",
262
263
  "figure.label.triangles": "triangles",
263
- "figure.label.triangles-at-100": "triangles for 100",
264
- "figure.label.triangles-at-10k": "triangles at 10k instances",
264
+ "figure.label.unit-none": "tiada unit",
265
+ "figure.label.unit-type-it": "taip sendiri…",
265
266
  "figure.label.weight": "weight",
266
267
  "figure.label.what-this-does": "apa yang dilakukan figure ini",
267
268
  "figure.text.accepts-anything": "kosong bermaksud apa sahaja",
@@ -271,15 +272,15 @@
271
272
  "figure.text.already-released-edit-to-release-again": "sudah diterbitkan. sunting dan simpan untuk kembali ke draf, kemudian terbitkan semula.",
272
273
  "figure.text.anchor-explained": "muka tempat bahagian ini kekal apabila kotak membesar. dua bahagian yang bersentuhan pada muka berbeza akan terpisah apabila membesar.",
273
274
  "figure.text.anchors-are-not-drawn": "slot dan port tidak dilukis pada lukisan; hanya editor yang memaparkannya.",
274
- "figure.text.animated-parts-cost": "setiap bahagian yang bergerak menambah satu draw call.",
275
- "figure.text.animated-parts-over": "melebihi had. banyak daripada ini pada satu lukisan akan melambatkannya.",
276
275
  "figure.text.animation-empty-examples": "penggelek berputar · daun pintu gelongsor · lif naik · lampu isyarat berkelip.",
277
276
  "figure.text.animation-empty-what-it-is": "belum ada gerakan. tambah clip untuk menggerakkan bahagian.",
278
277
  "figure.text.animation-needs-a-named-part": "tambah bahagian dahulu.",
279
278
  "figure.text.assistant-proposed-a-figure": "cadangan dipaparkan di sebelah kanan.",
280
279
  "figure.text.axes-not-measurable-yet": "tidak dimasukkan dalam carta kerana tidak dapat diukur: {axes}. sebabnya di bawah.",
281
- "figure.text.bound-by-drawCalls": "draw call mencapai had dahulu ({per} setiap satu, {budget} setiap lukisan).",
280
+ "figure.text.base-box-explained": "Kotak yang menetapkan skala apabila figura diletakkan pada lukisan. Bahagian yang terkeluar daripadanya menghalang penerbitan. Menukar saiz membiarkan bahagian di tempatnya.",
281
+ "figure.text.bound-by-groups": "Kumpulan bahagian penuh dahulu — figura ini {per} kumpulan, dan satu skrin melukis {budget} kumpulan pada 60fps.",
282
282
  "figure.text.bound-by-triangles": "segi tiga mencapai had dahulu ({per} setiap satu, {budget} setiap lukisan).",
283
+ "figure.text.budget-measured-on": "Diukur pada {gpu}, {on}. Figura yang diam tidak menelan kos — hanya yang kelihatan dan dilukis semula dikira.",
283
284
  "figure.text.budget-not-measured-yet": "this target has not been measured yet.",
284
285
  "figure.text.cannot-release-now": "belum boleh diterbitkan",
285
286
  "figure.text.canvas-appears-once-a-part-exists": "pilih bentuk di sebelah kiri untuk menambah bahagian pertama.",
@@ -296,6 +297,7 @@
296
297
  "figure.text.change-capabilities": "keupayaan",
297
298
  "figure.text.change-changed": "a changed part",
298
299
  "figure.text.change-detail": "the detail level",
300
+ "figure.text.change-joints": "sendi",
299
301
  "figure.text.change-placement": "asas letak",
300
302
  "figure.text.change-removed": "a part being removed",
301
303
  "figure.text.change-styleKit": "the style kit",
@@ -307,6 +309,7 @@
307
309
  "figure.text.clip-needs-a-name": "masukkan nama.",
308
310
  "figure.text.collapse-parts-pane": "collapse the part list",
309
311
  "figure.text.collapse-properties-pane": "collapse the property pane",
312
+ "figure.text.contract-not-compared": "Tidak dapat menyemak sama ada perubahan ini merosakkan yang sudah diletakkan — {why}",
310
313
  "figure.text.coordinate-ground-explained": "melukis asalan dan grid pada lantai",
311
314
  "figure.text.delete-figure-confirm": "delete {name}? drawings already using this type will no longer find it.",
312
315
  "figure.text.designate-in-properties": "belum ada yang ditetapkan. pilih bahagian dan tetapkan peranannya dalam tab sifat.",
@@ -323,6 +326,7 @@
323
326
  "figure.text.figure-type-example": "cth. OHT, AGV_LIFTER",
324
327
  "figure.text.figure-type-placeholder": "pengecam jenis figure (cth. OHT)",
325
328
  "figure.text.find-by-this-tag": "find by this tag",
329
+ "figure.text.fit-base-explained": "Mengecilkan kotak kepada yang terkecil memuatkan setiap bahagian. Pusatnya kekal, jadi bahagian yang tersasar meninggalkan ruang di sebelah lagi.",
326
330
  "figure.text.fits-n-instances": "up to {n}",
327
331
  "figure.text.floor-explained": "bertindih dengan asas koordinat, jadi biasanya dimatikan",
328
332
  "figure.text.follow-camera-explained": "matikan untuk menetapkan arah bayang",
@@ -333,7 +337,9 @@
333
337
  "figure.text.hemisphere-light-explained": "cahaya sekata dari langit dan tanah. ia mencerahkan muka yang berbayang.",
334
338
  "figure.text.hide-all-parts": "hide all",
335
339
  "figure.text.hide-this-part": "hide this part while you work. not saved",
336
- "figure.text.how-many-fit": "berapa banyak muat pada satu lukisan tanpa melambatkannya",
340
+ "figure.text.how-many-fit": "berapa banyak boleh ada di skrin sebelum ia perlahan",
341
+ "figure.text.independent-parts-cost": "setiap bahagian yang bergerak sendiri menambah satu draw call.",
342
+ "figure.text.independent-parts-over": "melebihi had. lebih sedikit daripada ini muat pada satu skrin.",
337
343
  "figure.text.instances-unit": "instances",
338
344
  "figure.text.interpolation-explained": "cara jurang antara kunci diisi.",
339
345
  "figure.text.joint-channel-value-deg": "nilai kunci ialah sudut sendi dalam darjah.",
@@ -392,6 +398,7 @@
392
398
  "figure.text.picked-changes-do-not-validate": "the selected changes do not make a valid figure",
393
399
  "figure.text.pivot-defaults-to-the-part-centre": "jika tidak ditetapkan, bahagian berputar pada pusatnya sendiri. koordinat adalah setempat kepada bahagian.",
394
400
  "figure.text.placement-explained": "menetapkan satah rujukan dalam adegan 3D (lantai: AGV/penghantar, siling: OHT/hois, pusat: sensor/dron).",
401
+ "figure.text.pose-as-default-explained": "Menulis postur semasa sebagai nilai lalai parameter, supaya figura berdiri begini apabila tiada nilai diberi.",
395
402
  "figure.text.preview-blocked-by-errors": "pratonton tidak dapat dipaparkan kerana ralat format. lihat tab kematangan untuk sebabnya.",
396
403
  "figure.text.preview-needs-a-part": "tambah bahagian untuk melihat rupanya apabila diletakkan pada lukisan.",
397
404
  "figure.text.proposal-feedback-note": "nota pilihan untuk cadangan seterusnya (sesi ini sahaja)",
@@ -12,6 +12,7 @@
12
12
  "figure.button.delete-figure": "delete",
13
13
  "figure.button.discard": "discard",
14
14
  "figure.button.duplicate-part": "duplicate",
15
+ "figure.button.fit-base-to-parts": "适配部件",
15
16
  "figure.button.mirror-x": "mirror X",
16
17
  "figure.button.mirror-z": "mirror Z",
17
18
  "figure.button.move-part-down": "move down",
@@ -19,6 +20,7 @@
19
20
  "figure.button.new-figure": "new figure",
20
21
  "figure.button.pivot-clear": "部件中心",
21
22
  "figure.button.pivot-set": "设置",
23
+ "figure.button.pose-as-default": "将此姿态设为默认",
22
24
  "figure.button.preview-fix": "预览修正 · {part} {axis} 固定面: {from} → {to}",
23
25
  "figure.button.redo": "重做",
24
26
  "figure.button.release-figure": "发布",
@@ -82,8 +84,9 @@
82
84
  "figure.label.axis-scale": "scale",
83
85
  "figure.label.axis-scale-short": "scale",
84
86
  "figure.label.axis-width": "width",
85
- "figure.label.budget-animations": "animation points",
87
+ "figure.label.base-box": "基准盒 (mm)",
86
88
  "figure.label.budget-groups": "material groups",
89
+ "figure.label.budget-independent": "单独运动的部件",
87
90
  "figure.label.budget-parts": "part count",
88
91
  "figure.label.budget-surface": "surfaces outside the palette",
89
92
  "figure.label.budget-transparent": "transparent materials",
@@ -110,8 +113,6 @@
110
113
  "figure.label.distinct-materials": "distinct materials",
111
114
  "figure.label.distinct-shapes": "distinct shapes",
112
115
  "figure.label.draft": "草稿",
113
- "figure.label.draw-calls-at-100": "draw calls for 100",
114
- "figure.label.draw-calls-at-10k": "draw calls at 10k instances",
115
116
  "figure.label.emissive": "emissive",
116
117
  "figure.label.emissive-color": "lit color",
117
118
  "figure.label.environment": "environment",
@@ -260,8 +261,8 @@
260
261
  "figure.label.tools": "align",
261
262
  "figure.label.transparent": "transparent",
262
263
  "figure.label.triangles": "triangles",
263
- "figure.label.triangles-at-100": "triangles for 100",
264
- "figure.label.triangles-at-10k": "triangles at 10k instances",
264
+ "figure.label.unit-none": "无单位",
265
+ "figure.label.unit-type-it": "直接输入…",
265
266
  "figure.label.weight": "weight",
266
267
  "figure.label.what-this-does": "此 Figure 的作用",
267
268
  "figure.text.accepts-anything": "留空表示不限",
@@ -271,15 +272,15 @@
271
272
  "figure.text.already-released-edit-to-release-again": "已经发布。修改并保存会回到草稿,然后可以再次发布。",
272
273
  "figure.text.anchor-explained": "包围盒放大时此部件贴住的面。与相邻部件贴在不同的面上时,放大后两者之间会出现间隙。",
273
274
  "figure.text.anchors-are-not-drawn": "槽位和端口不会绘制在图面上,只在编辑画面中显示。",
274
- "figure.text.animated-parts-cost": "每个运动部件增加 1 个 draw call。",
275
- "figure.text.animated-parts-over": "已超过上限。在一个图面上放置多个会使画面变慢。",
276
275
  "figure.text.animation-empty-examples": "转动的滚轮 · 滑动的门扇 · 升降的升降机 · 闪烁的指示灯。",
277
276
  "figure.text.animation-empty-what-it-is": "还没有动作。添加 clip 来移动部件。",
278
277
  "figure.text.animation-needs-a-named-part": "请先添加部件。",
279
278
  "figure.text.assistant-proposed-a-figure": "提案显示在右侧。",
280
279
  "figure.text.axes-not-measurable-yet": "无法测量的项目已从图表中移除: {axes}。原因见下方。",
281
- "figure.text.bound-by-drawCalls": "draw call 先达到上限 (每个 {per},每个图面 {budget})。",
280
+ "figure.text.base-box-explained": "决定放到图纸上时缩放比例的盒子。部件超出它就无法发布。改变尺寸时部件保持原位。",
281
+ "figure.text.bound-by-groups": "部件组先到上限 — 此图形为 {per} 组,一屏可在 60fps 下绘制 {budget} 组。",
282
282
  "figure.text.bound-by-triangles": "三角形先达到上限 (每个 {per},每个图面 {budget})。",
283
+ "figure.text.budget-measured-on": "于 {on} 在 {gpu} 上实测。静止的图形不产生开销 — 只计算屏幕上被重绘的部分。",
283
284
  "figure.text.budget-not-measured-yet": "this target has not been measured yet.",
284
285
  "figure.text.cannot-release-now": "现在无法发布",
285
286
  "figure.text.canvas-appears-once-a-part-exists": "从左侧「形状」中选择一个来添加第一个部件。",
@@ -296,6 +297,7 @@
296
297
  "figure.text.change-capabilities": "能力",
297
298
  "figure.text.change-changed": "a changed part",
298
299
  "figure.text.change-detail": "the detail level",
300
+ "figure.text.change-joints": "关节",
299
301
  "figure.text.change-placement": "放置基准",
300
302
  "figure.text.change-removed": "a part being removed",
301
303
  "figure.text.change-styleKit": "the style kit",
@@ -307,6 +309,7 @@
307
309
  "figure.text.clip-needs-a-name": "请输入名称。",
308
310
  "figure.text.collapse-parts-pane": "collapse the part list",
309
311
  "figure.text.collapse-properties-pane": "collapse the property pane",
312
+ "figure.text.contract-not-compared": "无法确认此修改是否会破坏已放置的图形 — {why}",
310
313
  "figure.text.coordinate-ground-explained": "在地面显示原点和网格",
311
314
  "figure.text.delete-figure-confirm": "delete {name}? drawings already using this type will no longer find it.",
312
315
  "figure.text.designate-in-properties": "还没有指定部件。请选择部件,在属性标签页中设置「在能力中的角色」。",
@@ -323,6 +326,7 @@
323
326
  "figure.text.figure-type-example": "例: OHT, AGV_LIFTER",
324
327
  "figure.text.figure-type-placeholder": "Figure 识别类型 (例: OHT)",
325
328
  "figure.text.find-by-this-tag": "find by this tag",
329
+ "figure.text.fit-base-explained": "缩到能包住全部部件的最小盒子。中心不变,所以偏向一侧的部件会在另一侧留出余量。",
326
330
  "figure.text.fits-n-instances": "up to {n}",
327
331
  "figure.text.floor-explained": "与坐标底图重叠,通常关闭",
328
332
  "figure.text.follow-camera-explained": "关闭后阴影方向固定",
@@ -333,7 +337,9 @@
333
337
  "figure.text.hemisphere-light-explained": "来自天空和地面的均匀光线。可提亮阴影面。",
334
338
  "figure.text.hide-all-parts": "hide all",
335
339
  "figure.text.hide-this-part": "hide this part while you work. not saved",
336
- "figure.text.how-many-fit": "一个图面上不致变慢可放置的数量",
340
+ "figure.text.how-many-fit": "同屏显示而不变慢的数量",
341
+ "figure.text.independent-parts-cost": "每个单独运动的部件增加 1 个 draw call。",
342
+ "figure.text.independent-parts-over": "已超过上限。一个画面上能同时放置的台数会减少。",
337
343
  "figure.text.instances-unit": "instances",
338
344
  "figure.text.interpolation-explained": "关键帧之间如何衔接。",
339
345
  "figure.text.joint-channel-value-deg": "关键帧的值是关节角度(度)。",
@@ -392,6 +398,7 @@
392
398
  "figure.text.picked-changes-do-not-validate": "the selected changes do not make a valid figure",
393
399
  "figure.text.pivot-defaults-to-the-part-centre": "未设置时部件绕自身中心旋转。坐标以部件为基准。",
394
400
  "figure.text.placement-explained": "设置 3D 场景中的基准面 (地面: AGV/输送机,天花板: OHT/吊车,中心: 传感器/无人机)。",
401
+ "figure.text.pose-as-default-explained": "把当前姿态写为参数默认值。没有给值时,图形以此姿态站立。",
395
402
  "figure.text.preview-blocked-by-errors": "由于格式错误无法显示预览。请在成熟度标签页查看原因。",
396
403
  "figure.text.preview-needs-a-part": "添加部件后会显示放置到图面上的效果。",
397
404
  "figure.text.proposal-feedback-note": "供下一次提案参考的备注 (仅限本次会话)",