@things-factory/figure-service 10.1.207 → 10.1.210

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 (257) hide show
  1. package/dist-server/service/figure/figure-context.d.ts +2 -1
  2. package/dist-server/service/figure/figure-context.js +2 -1
  3. package/dist-server/service/figure/figure-context.js.map +1 -1
  4. package/dist-server/service/figure/figure.js.map +1 -1
  5. package/dist-server/tsconfig.tsbuildinfo +1 -1
  6. package/package.json +8 -8
  7. package/recipes/_lib/model.mts +12 -8
  8. package/recipes/air-cylinder/models/default.json +1 -1
  9. package/recipes/air-cylinder/recipe.json +13 -10
  10. package/recipes/air-cylinder/spec.json +1 -1
  11. package/recipes/air-shower/models/default.json +1 -1
  12. package/recipes/air-shower/recipe.json +11 -8
  13. package/recipes/barrier-gate/models/default.json +1 -1
  14. package/recipes/barrier-gate/recipe.json +11 -7
  15. package/recipes/base-frame/models/default.json +1 -1
  16. package/recipes/base-frame/recipe.json +0 -4
  17. package/recipes/belt-surface/models/default.json +1 -1
  18. package/recipes/belt-surface/recipe.json +0 -1
  19. package/recipes/bin-row/models/default.json +1 -1
  20. package/recipes/bin-row/recipe.json +0 -1
  21. package/recipes/bollard-row/models/default.json +1 -1
  22. package/recipes/bollard-row/recipe.json +0 -1
  23. package/recipes/buzzer/models/default.json +1 -1
  24. package/recipes/buzzer/recipe.json +0 -1
  25. package/recipes/cabinet-doors/build.mts +1 -1
  26. package/recipes/cabinet-doors/models/default.json +1 -1
  27. package/recipes/cabinet-doors/models/doors=1.json +1 -1
  28. package/recipes/cabinet-doors/models/doors=2.json +1 -1
  29. package/recipes/cabinet-doors/recipe.json +21 -13
  30. package/recipes/cable-tray/models/default.json +1 -1
  31. package/recipes/cable-tray/recipe.json +0 -3
  32. package/recipes/camera-mount/models/default.json +1 -1
  33. package/recipes/camera-mount/recipe.json +11 -8
  34. package/recipes/canopy/models/default.json +1 -1
  35. package/recipes/canopy/recipe.json +0 -5
  36. package/recipes/cart/models/default.json +1 -1
  37. package/recipes/cart/recipe.json +0 -12
  38. package/recipes/cart-handle/models/default.json +1 -1
  39. package/recipes/cart-handle/recipe.json +0 -3
  40. package/recipes/casters-four/models/default.json +1 -1
  41. package/recipes/casters-four/recipe.json +0 -8
  42. package/recipes/ceiling-rail-carriage/build.mts +1 -1
  43. package/recipes/ceiling-rail-carriage/models/default.json +1 -1
  44. package/recipes/ceiling-rail-carriage/recipe.json +19 -16
  45. package/recipes/chain-rails/models/default.json +1 -1
  46. package/recipes/chain-rails/recipe.json +0 -2
  47. package/recipes/charging-station/models/default.json +1 -1
  48. package/recipes/charging-station/recipe.json +0 -2
  49. package/recipes/column-row/models/default.json +1 -1
  50. package/recipes/column-row/recipe.json +0 -1
  51. package/recipes/control-cabinet/models/default.json +1 -1
  52. package/recipes/control-cabinet/recipe.json +11 -8
  53. package/recipes/conveyor-skirts/models/default.json +1 -1
  54. package/recipes/conveyor-skirts/recipe.json +0 -2
  55. package/recipes/counter-display/models/default.json +1 -1
  56. package/recipes/counter-display/recipe.json +0 -2
  57. package/recipes/dock-bumpers/models/default.json +1 -1
  58. package/recipes/dock-bumpers/recipe.json +0 -2
  59. package/recipes/dock-leveler/models/default.json +1 -1
  60. package/recipes/dock-leveler/recipe.json +11 -7
  61. package/recipes/double-hinged-door/build.mts +1 -1
  62. package/recipes/double-hinged-door/models/default.json +1 -1
  63. package/recipes/double-hinged-door/recipe.json +21 -14
  64. package/recipes/drawer-stack/models/default.json +1 -1
  65. package/recipes/drawer-stack/models/drawers=2.json +1 -1
  66. package/recipes/drawer-stack/models/drawers=3.json +1 -1
  67. package/recipes/drawer-stack/models/drawers=4.json +1 -1
  68. package/recipes/drawer-stack/recipe.json +99 -63
  69. package/recipes/drip-tray/models/default.json +1 -1
  70. package/recipes/drip-tray/recipe.json +0 -1
  71. package/recipes/duct-fan/models/default.json +1 -1
  72. package/recipes/duct-fan/recipe.json +11 -8
  73. package/recipes/emergency-stop/models/default.json +1 -1
  74. package/recipes/emergency-stop/recipe.json +11 -8
  75. package/recipes/end-covers/models/default.json +1 -1
  76. package/recipes/end-covers/recipe.json +0 -2
  77. package/recipes/ffu-row/models/default.json +1 -1
  78. package/recipes/ffu-row/recipe.json +0 -1
  79. package/recipes/fire-extinguisher/models/default.json +1 -1
  80. package/recipes/fire-extinguisher/recipe.json +0 -2
  81. package/recipes/first-aid-box/models/default.json +1 -1
  82. package/recipes/first-aid-box/recipe.json +0 -2
  83. package/recipes/floor-zone/models/default.json +1 -1
  84. package/recipes/floor-zone/recipe.json +0 -4
  85. package/recipes/folding-door/build.mts +1 -1
  86. package/recipes/folding-door/models/default.json +1 -1
  87. package/recipes/folding-door/recipe.json +21 -14
  88. package/recipes/fork/build.mts +1 -1
  89. package/recipes/fork/models/default.json +1 -1
  90. package/recipes/fork/recipe.json +23 -15
  91. package/recipes/fork/spec.json +1 -1
  92. package/recipes/gantry-frame/models/default.json +1 -1
  93. package/recipes/gantry-frame/recipe.json +0 -3
  94. package/recipes/gripper-2f/build.mts +1 -1
  95. package/recipes/gripper-2f/models/default.json +1 -1
  96. package/recipes/gripper-2f/recipe.json +23 -16
  97. package/recipes/gripper-2f/spec.json +1 -1
  98. package/recipes/guard-cover/models/default.json +1 -1
  99. package/recipes/guard-cover/recipe.json +11 -7
  100. package/recipes/handrail/models/default.json +1 -1
  101. package/recipes/handrail/recipe.json +0 -2
  102. package/recipes/hatch/models/default.json +1 -1
  103. package/recipes/hatch/recipe.json +11 -8
  104. package/recipes/hinged-door/build.mts +2 -3
  105. package/recipes/hinged-door/models/default.json +1 -1
  106. package/recipes/hinged-door/models/hinge=left.json +1 -1
  107. package/recipes/hinged-door/models/hinge=right.json +1 -1
  108. package/recipes/hinged-door/recipe.json +22 -15
  109. package/recipes/hmi-monitor/models/default.json +1 -1
  110. package/recipes/hmi-monitor/recipe.json +11 -8
  111. package/recipes/hopper/models/default.json +1 -1
  112. package/recipes/hopper/recipe.json +0 -2
  113. package/recipes/interlock-switch/models/default.json +1 -1
  114. package/recipes/interlock-switch/recipe.json +0 -1
  115. package/recipes/junction-box/models/default.json +1 -1
  116. package/recipes/junction-box/recipe.json +0 -1
  117. package/recipes/ladder/models/default.json +1 -1
  118. package/recipes/ladder/recipe.json +0 -3
  119. package/recipes/legs-four/models/default.json +1 -1
  120. package/recipes/legs-four/recipe.json +0 -4
  121. package/recipes/leveling-feet/models/default.json +1 -1
  122. package/recipes/leveling-feet/recipe.json +0 -4
  123. package/recipes/lift-updown/models/default.json +1 -1
  124. package/recipes/lift-updown/recipe.json +13 -9
  125. package/recipes/lift-updown/spec.json +1 -1
  126. package/recipes/light-curtain/models/default.json +1 -1
  127. package/recipes/light-curtain/recipe.json +0 -2
  128. package/recipes/limit-switch/models/default.json +1 -1
  129. package/recipes/limit-switch/recipe.json +11 -8
  130. package/recipes/linear-guide/build.mts +1 -1
  131. package/recipes/linear-guide/models/default.json +1 -1
  132. package/recipes/linear-guide/recipe.json +19 -16
  133. package/recipes/locker-row/models/default.json +1 -1
  134. package/recipes/locker-row/recipe.json +0 -1
  135. package/recipes/motor-box/models/default.json +1 -1
  136. package/recipes/motor-box/recipe.json +0 -1
  137. package/recipes/observation-window/models/default.json +1 -1
  138. package/recipes/observation-window/recipe.json +0 -2
  139. package/recipes/operator-panel/models/buttons=2.json +1 -1
  140. package/recipes/operator-panel/models/buttons=3.json +1 -1
  141. package/recipes/operator-panel/models/buttons=4.json +1 -1
  142. package/recipes/operator-panel/models/buttons=5.json +1 -1
  143. package/recipes/operator-panel/models/default.json +1 -1
  144. package/recipes/operator-panel/recipe.json +0 -5
  145. package/recipes/pallet/models/default.json +1 -1
  146. package/recipes/pallet/recipe.json +0 -4
  147. package/recipes/partition-wall/models/default.json +1 -1
  148. package/recipes/partition-wall/recipe.json +0 -3
  149. package/recipes/pass-box/models/default.json +1 -1
  150. package/recipes/pass-box/recipe.json +11 -8
  151. package/recipes/peg-board/models/default.json +1 -1
  152. package/recipes/peg-board/recipe.json +0 -2
  153. package/recipes/photo-sensor-pair/models/default.json +1 -1
  154. package/recipes/photo-sensor-pair/recipe.json +0 -2
  155. package/recipes/pipe-run/models/default.json +1 -1
  156. package/recipes/pipe-run/recipe.json +0 -1
  157. package/recipes/platform/models/default.json +1 -1
  158. package/recipes/platform/recipe.json +0 -5
  159. package/recipes/power-box/models/default.json +1 -1
  160. package/recipes/power-box/recipe.json +0 -1
  161. package/recipes/pressure-gauge/models/default.json +1 -1
  162. package/recipes/pressure-gauge/recipe.json +0 -1
  163. package/recipes/pull-cord/models/default.json +1 -1
  164. package/recipes/pull-cord/recipe.json +0 -1
  165. package/recipes/pump/models/default.json +1 -1
  166. package/recipes/pump/recipe.json +0 -2
  167. package/recipes/pusher/build.mts +1 -1
  168. package/recipes/pusher/models/default.json +1 -1
  169. package/recipes/pusher/recipe.json +19 -15
  170. package/recipes/robot-plinth/models/default.json +1 -1
  171. package/recipes/robot-plinth/recipe.json +0 -2
  172. package/recipes/roll-up-shutter/build.mts +1 -1
  173. package/recipes/roll-up-shutter/models/default.json +1 -1
  174. package/recipes/roll-up-shutter/recipe.json +19 -16
  175. package/recipes/roller-row/models/default.json +1 -1
  176. package/recipes/roller-row/recipe.json +11 -7
  177. package/recipes/room-shell/models/default.json +1 -1
  178. package/recipes/room-shell/recipe.json +0 -5
  179. package/recipes/rotating-beacon/models/default.json +1 -1
  180. package/recipes/rotating-beacon/recipe.json +11 -9
  181. package/recipes/safety-fence/models/default.json +1 -1
  182. package/recipes/safety-fence/recipe.json +0 -2
  183. package/recipes/safety-mat/models/default.json +1 -1
  184. package/recipes/safety-mat/recipe.json +0 -1
  185. package/recipes/safety-sign-stand/models/default.json +1 -1
  186. package/recipes/safety-sign-stand/recipe.json +0 -3
  187. package/recipes/scanner-mount/models/default.json +1 -1
  188. package/recipes/scanner-mount/recipe.json +0 -3
  189. package/recipes/selector-switch/models/default.json +1 -1
  190. package/recipes/selector-switch/recipe.json +11 -8
  191. package/recipes/shelf-tiers/models/default.json +1 -1
  192. package/recipes/shelf-tiers/models/tiers=2.json +1 -1
  193. package/recipes/shelf-tiers/models/tiers=3.json +1 -1
  194. package/recipes/shelf-tiers/models/tiers=4.json +1 -1
  195. package/recipes/shelf-tiers/models/tiers=5.json +1 -1
  196. package/recipes/shelf-tiers/recipe.json +0 -4
  197. package/recipes/side-guides/models/default.json +1 -1
  198. package/recipes/side-guides/recipe.json +0 -2
  199. package/recipes/sign-board/models/default.json +1 -1
  200. package/recipes/sign-board/recipe.json +0 -1
  201. package/recipes/signal-tower-3/build.mts +1 -1
  202. package/recipes/signal-tower-3/models/default.json +1 -1
  203. package/recipes/signal-tower-3/recipe.json +11 -10
  204. package/recipes/sliding-door/build.mts +4 -7
  205. package/recipes/sliding-door/models/default.json +1 -1
  206. package/recipes/sliding-door/models/leaves=1,lamp=false.json +1 -1
  207. package/recipes/sliding-door/models/leaves=1,lamp=true.json +1 -1
  208. package/recipes/sliding-door/models/leaves=2,lamp=false.json +1 -1
  209. package/recipes/sliding-door/models/leaves=2,lamp=true.json +1 -1
  210. package/recipes/sliding-door/recipe.json +48 -38
  211. package/recipes/stairs/models/default.json +1 -1
  212. package/recipes/stairs/recipe.json +0 -1
  213. package/recipes/status-lamp/models/default.json +1 -1
  214. package/recipes/status-lamp/recipe.json +11 -9
  215. package/recipes/stopper/models/default.json +1 -1
  216. package/recipes/stopper/recipe.json +11 -7
  217. package/recipes/suction-pads/models/default.json +1 -1
  218. package/recipes/suction-pads/recipe.json +0 -1
  219. package/recipes/tank/models/default.json +1 -1
  220. package/recipes/tank/recipe.json +0 -1
  221. package/recipes/telescopic-arm/build.mts +1 -1
  222. package/recipes/telescopic-arm/models/default.json +1 -1
  223. package/recipes/telescopic-arm/recipe.json +21 -13
  224. package/recipes/toe-board/models/default.json +1 -1
  225. package/recipes/toe-board/recipe.json +0 -1
  226. package/recipes/tote/models/default.json +1 -1
  227. package/recipes/tote/recipe.json +0 -1
  228. package/recipes/traffic-cones/models/default.json +1 -1
  229. package/recipes/traffic-cones/recipe.json +0 -2
  230. package/recipes/transfer-belts/build.mts +1 -1
  231. package/recipes/transfer-belts/models/default.json +1 -1
  232. package/recipes/transfer-belts/recipe.json +23 -15
  233. package/recipes/transfer-belts/spec.json +1 -1
  234. package/recipes/tray-stack/models/default.json +1 -1
  235. package/recipes/tray-stack/models/trays=3.json +1 -1
  236. package/recipes/tray-stack/models/trays=4.json +1 -1
  237. package/recipes/tray-stack/models/trays=5.json +1 -1
  238. package/recipes/tray-stack/recipe.json +0 -5
  239. package/recipes/trough/models/default.json +1 -1
  240. package/recipes/trough/recipe.json +0 -1
  241. package/recipes/turntable/models/default.json +1 -1
  242. package/recipes/turntable/recipe.json +11 -8
  243. package/recipes/valve-handle/models/default.json +1 -1
  244. package/recipes/valve-handle/recipe.json +11 -9
  245. package/recipes/waste-bin/models/default.json +1 -1
  246. package/recipes/waste-bin/recipe.json +0 -1
  247. package/recipes/work-light/models/default.json +1 -1
  248. package/recipes/work-light/recipe.json +11 -9
  249. package/recipes/workbench-top/models/default.json +1 -1
  250. package/recipes/workbench-top/recipe.json +0 -1
  251. package/server/service/figure/figure-context.test.ts +3 -3
  252. package/server/service/figure/figure-context.ts +4 -2
  253. package/server/service/figure/figure-propose-clips.test.ts +1 -1
  254. package/server/service/figure/figure-release-record-db.test.ts +3 -3
  255. package/server/service/figure/figure-tools.test.ts +1 -1
  256. package/server/service/figure/figure.ts +1 -1
  257. package/translations/ko.json +6 -6
@@ -1 +1 @@
1
- {"version":"figure-asset-1","name":"TPL_WASTE_BIN","document":{"version":"figure-prototype-1","model":{"version":"r3-spatial-1","inputs":[{"id":"host.size.x","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"host.size.y","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"host.size.z","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.roundX","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.roundZ","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.wallX","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.wallZ","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.floor","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"}],"constants":[{"id":"host.k.centre","unit":"ratio","value":-0.5},{"id":"d.mm.0","unit":"mm","value":0},{"id":"k.ratio.0_5","unit":"ratio","value":0.5},{"id":"a.deg.0","unit":"deg","value":0},{"id":"bin.k.centre","unit":"ratio","value":-0.5}],"nodes":[{"id":"host.start","op":"mul@1","args":["host.size.y","host.k.centre"],"outputs":{"value":"host.start.value"}},{"id":"host.shape","op":"extrude@1","args":["host.start.value","host.size.y","host.size.x","host.size.z"],"outputs":{"shape":"host.shapeValue"},"params":{"frame":"host.local","axis":"y","section":"rectangle"}},{"id":"host.pose","op":"rigid@1","args":["d.mm.0","host.on.plane.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"host.poseValue"},"params":{"from":"host.local","to":"host.seat"}},{"id":"host","op":"place@1","args":["host.shapeValue","host.chain.value"],"outputs":{"placed":"host.placed"}},{"id":"bin.shape","op":"extrude@1","args":["bin.start.value","bin.dimension.height","bin.dimension.width","bin.dimension.depth","bin.dimension.roundX","bin.dimension.roundZ","bin.dimension.wallX","bin.dimension.wallX","bin.dimension.wallZ","bin.dimension.wallZ","bin.dimension.floor"],"outputs":{"shape":"bin.shapeValue"},"params":{"frame":"bin.local","axis":"y","section":"rectangle","corner":"round","cavity":"inside","cavity-end":"open","cavity-start":"closed"}},{"id":"bin.pose","op":"rigid@1","args":["d.mm.0","bin.on.host.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"bin.poseValue"},"params":{"from":"bin.local","to":"bin.seat"}},{"id":"bin","op":"place@1","args":["bin.shapeValue","bin.world.value"],"outputs":{"placed":"bin.placed"}},{"id":"bin.start","op":"mul@1","args":["bin.dimension.height","bin.k.centre"],"outputs":{"value":"bin.start.value"}},{"id":"host.on.plane.pose.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"host.on.plane.pose.y.t0.value"}},{"id":"host.seat.rigid","op":"rigid@1","args":["d.mm.0","d.mm.0","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"host.seat.value"},"params":{"from":"host.seat","to":"asset"}},{"id":"host.chain","op":"compose@1","args":["host.seat.value","host.poseValue"],"outputs":{"pose":"host.chain.value"}},{"id":"bin.on.host.seat.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"bin.on.host.seat.y.t0.value"}},{"id":"bin.on.host.pose.y.t0","op":"mul@1","args":["bin.dimension.height","k.ratio.0_5"],"outputs":{"value":"bin.on.host.pose.y.t0.value"}},{"id":"bin.seat.rigid","op":"rigid@1","args":["d.mm.0","bin.on.host.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"bin.seat.value"},"params":{"from":"bin.seat","to":"host.local"}},{"id":"bin.chain","op":"compose@1","args":["bin.seat.value","bin.poseValue"],"outputs":{"pose":"bin.chain.value"}},{"id":"bin.world","op":"compose@1","args":["host.chain.value","bin.chain.value"],"outputs":{"pose":"bin.world.value"}}]},"capabilities":{"version":"r3-capability-3","assetFrame":"asset","bindings":[]}},"designInputs":{"host.size.x":6000,"host.size.y":50,"host.size.z":4000,"bin.dimension.width":600,"bin.dimension.height":800,"bin.dimension.depth":600,"bin.dimension.roundX":40,"bin.dimension.roundZ":40,"bin.dimension.wallX":15,"bin.dimension.wallZ":15,"bin.dimension.floor":20},"stateDefaults":{},"palette":{"palette.primary":"#477b9e","palette.host":"#d9dde2","palette.tpl-27ae60":"#27ae60"},"appearance":[{"target":"host","material":{"token":"palette.host"}},{"target":"bin","material":{"token":"palette.tpl-27ae60"}}],"joints":[{"id":"host","type":"fixed","body0":{"plane":"mounting-plane"},"body1":{"part":"host"},"origin":{}},{"id":"bin","type":"fixed","body0":{"part":"host","face":"top"},"body1":{"part":"bin"},"origin":{}}]}
1
+ {"version":"figure-asset-1","name":"TPL_WASTE_BIN","document":{"version":"figure-prototype-1","model":{"version":"r3-spatial-1","inputs":[{"id":"host.size.x","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"host.size.y","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"host.size.z","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.roundX","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.roundZ","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.wallX","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.wallZ","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"bin.dimension.floor","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"}],"constants":[{"id":"host.k.centre","unit":"ratio","value":-0.5},{"id":"d.mm.0","unit":"mm","value":0},{"id":"k.ratio.0_5","unit":"ratio","value":0.5},{"id":"a.deg.0","unit":"deg","value":0},{"id":"bin.k.centre","unit":"ratio","value":-0.5}],"nodes":[{"id":"host.start","op":"mul@1","args":["host.size.y","host.k.centre"],"outputs":{"value":"host.start.value"}},{"id":"host.shape","op":"extrude@1","args":["host.start.value","host.size.y","host.size.x","host.size.z"],"outputs":{"shape":"host.shapeValue"},"params":{"frame":"host.local","axis":"y","section":"rectangle"}},{"id":"host.pose","op":"rigid@1","args":["d.mm.0","host.on.plane.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"host.poseValue"},"params":{"from":"host.local","to":"host.seat"}},{"id":"host","op":"place@1","args":["host.shapeValue","host.chain.value"],"outputs":{"placed":"host.placed"}},{"id":"bin.shape","op":"extrude@1","args":["bin.start.value","bin.dimension.height","bin.dimension.width","bin.dimension.depth","bin.dimension.roundX","bin.dimension.roundZ","bin.dimension.wallX","bin.dimension.wallX","bin.dimension.wallZ","bin.dimension.wallZ","bin.dimension.floor"],"outputs":{"shape":"bin.shapeValue"},"params":{"frame":"bin.local","axis":"y","section":"rectangle","corner":"round","cavity":"inside","cavity-end":"open","cavity-start":"closed"}},{"id":"bin.pose","op":"rigid@1","args":["d.mm.0","bin.on.host.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"bin.poseValue"},"params":{"from":"bin.local","to":"bin.seat"}},{"id":"bin","op":"place@1","args":["bin.shapeValue","bin.world.value"],"outputs":{"placed":"bin.placed"}},{"id":"bin.start","op":"mul@1","args":["bin.dimension.height","bin.k.centre"],"outputs":{"value":"bin.start.value"}},{"id":"host.on.plane.pose.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"host.on.plane.pose.y.t0.value"}},{"id":"host.seat.rigid","op":"rigid@1","args":["d.mm.0","d.mm.0","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"host.seat.value"},"params":{"from":"host.seat","to":"asset"}},{"id":"host.chain","op":"compose@1","args":["host.seat.value","host.poseValue"],"outputs":{"pose":"host.chain.value"}},{"id":"bin.on.host.seat.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"bin.on.host.seat.y.t0.value"}},{"id":"bin.on.host.pose.y.t0","op":"mul@1","args":["bin.dimension.height","k.ratio.0_5"],"outputs":{"value":"bin.on.host.pose.y.t0.value"}},{"id":"bin.seat.rigid","op":"rigid@1","args":["d.mm.0","bin.on.host.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"bin.seat.value"},"params":{"from":"bin.seat","to":"host.local"}},{"id":"bin.chain","op":"compose@1","args":["bin.seat.value","bin.poseValue"],"outputs":{"pose":"bin.chain.value"}},{"id":"bin.world","op":"compose@1","args":["host.chain.value","bin.chain.value"],"outputs":{"pose":"bin.world.value"}}]},"capabilities":{"version":"r3-capability-3","assetFrame":"asset","bindings":[]}},"designInputs":{"host.size.x":6000,"host.size.y":50,"host.size.z":4000,"bin.dimension.width":600,"bin.dimension.height":800,"bin.dimension.depth":600,"bin.dimension.roundX":40,"bin.dimension.roundZ":40,"bin.dimension.wallX":15,"bin.dimension.wallZ":15,"bin.dimension.floor":20},"stateDefaults":{},"palette":{"palette.primary":"#477b9e","palette.host":"#d9dde2","palette.tpl-27ae60":"#27ae60"},"appearance":[{"target":"host","material":{"token":"palette.host"}},{"target":"bin","material":{"token":"palette.tpl-27ae60"}}],"joints":[{"id":"host","body0":{"plane":"mounting-plane"},"body1":{"part":"host"},"origin":{}},{"id":"bin","body0":{"part":"host","face":"top"},"body1":{"part":"bin"},"origin":{}}]}
@@ -56,7 +56,6 @@
56
56
  "kind": "set-joint",
57
57
  "joint": {
58
58
  "id": "{id}-bin",
59
- "type": "fixed",
60
59
  "body0": {
61
60
  "part": "{target}",
62
61
  "face": "top"
@@ -1 +1 @@
1
- {"version":"figure-asset-1","name":"TPL_WORK_LIGHT","document":{"version":"figure-prototype-1","model":{"version":"r3-spatial-1","inputs":[{"id":"host.size.x","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"host.size.y","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"host.size.z","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"arm.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"arm.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"arm.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"head.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"head.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"head.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"light.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"light.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"light.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"on","unit":"mm","min":0,"max":0.001,"role":"state"}],"constants":[{"id":"host.k.centre","unit":"ratio","value":-0.5},{"id":"d.mm.0","unit":"mm","value":0},{"id":"k.ratio.0_5","unit":"ratio","value":0.5},{"id":"a.deg.0","unit":"deg","value":0},{"id":"arm.k.centre","unit":"ratio","value":-0.5},{"id":"head.k.centre","unit":"ratio","value":-0.5},{"id":"light.k.centre","unit":"ratio","value":-0.5},{"id":"axis.ratio.0","unit":"ratio","value":0},{"id":"axis.ratio.1","unit":"ratio","value":1},{"id":"k.light.shown.at","unit":"mm","value":0.0005}],"nodes":[{"id":"host.start","op":"mul@1","args":["host.size.y","host.k.centre"],"outputs":{"value":"host.start.value"}},{"id":"host.shape","op":"extrude@1","args":["host.start.value","host.size.y","host.size.x","host.size.z"],"outputs":{"shape":"host.shapeValue"},"params":{"frame":"host.local","axis":"y","section":"rectangle"}},{"id":"host.pose","op":"rigid@1","args":["d.mm.0","host.on.plane.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"host.poseValue"},"params":{"from":"host.local","to":"host.seat"}},{"id":"host","op":"place@1","args":["host.shapeValue","host.chain.value"],"outputs":{"placed":"host.placed"}},{"id":"arm.shape","op":"extrude@1","args":["arm.start.value","arm.dimension.height","arm.dimension.width","arm.dimension.depth"],"outputs":{"shape":"arm.shapeValue"},"params":{"frame":"arm.local","axis":"y","section":"rectangle"}},{"id":"arm.pose","op":"rigid@1","args":["d.mm.0","arm.on.host.pose.y.t0.value","arm.on.host.pose.z.t0.value","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"arm.poseValue"},"params":{"from":"arm.local","to":"arm.seat"}},{"id":"arm","op":"place@1","args":["arm.shapeValue","arm.world.value"],"outputs":{"placed":"arm.placed"}},{"id":"arm.start","op":"mul@1","args":["arm.dimension.height","arm.k.centre"],"outputs":{"value":"arm.start.value"}},{"id":"head.shape","op":"extrude@1","args":["head.start.value","head.dimension.height","head.dimension.width","head.dimension.depth"],"outputs":{"shape":"head.shapeValue"},"params":{"frame":"head.local","axis":"y","section":"rectangle"}},{"id":"head.pose","op":"rigid@1","args":["d.mm.0","head.on.arm.pose.y.t0.value","head.on.arm.pose.z.t0.value","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"head.poseValue"},"params":{"from":"head.local","to":"head.seat"}},{"id":"head","op":"place@1","args":["head.shapeValue","head.world.value"],"outputs":{"placed":"head.placed"}},{"id":"head.start","op":"mul@1","args":["head.dimension.height","head.k.centre"],"outputs":{"value":"head.start.value"}},{"id":"light.shape","op":"extrude@1","args":["light.start.value","light.dimension.height","light.dimension.width","light.dimension.depth"],"outputs":{"shape":"light.shapeValue"},"params":{"frame":"light.local","axis":"y","section":"rectangle"}},{"id":"light.pose","op":"rigid@1","args":["d.mm.0","light.on.head.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"light.poseValue"},"params":{"from":"light.local","to":"light.seat"}},{"id":"light","op":"place@1","args":["light.shapeValue","light.world.value"],"outputs":{"placed":"light.placed"}},{"id":"light.start","op":"mul@1","args":["light.dimension.height","light.k.centre"],"outputs":{"value":"light.start.value"}},{"id":"host.on.plane.pose.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"host.on.plane.pose.y.t0.value"}},{"id":"host.seat.rigid","op":"rigid@1","args":["d.mm.0","d.mm.0","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"host.seat.value"},"params":{"from":"host.seat","to":"asset"}},{"id":"host.chain","op":"compose@1","args":["host.seat.value","host.poseValue"],"outputs":{"pose":"host.chain.value"}},{"id":"arm.on.host.seat.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"arm.on.host.seat.y.t0.value"}},{"id":"arm.on.host.seat.z.t0","op":"mul@1","args":["host.size.z","host.k.centre"],"outputs":{"value":"arm.on.host.seat.z.t0.value"}},{"id":"arm.on.host.pose.y.t0","op":"mul@1","args":["arm.dimension.height","k.ratio.0_5"],"outputs":{"value":"arm.on.host.pose.y.t0.value"}},{"id":"arm.on.host.pose.z.t0","op":"mul@1","args":["arm.dimension.depth","k.ratio.0_5"],"outputs":{"value":"arm.on.host.pose.z.t0.value"}},{"id":"arm.seat.rigid","op":"rigid@1","args":["d.mm.0","arm.on.host.seat.y.t0.value","arm.on.host.seat.z.t0.value","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"arm.seat.value"},"params":{"from":"arm.seat","to":"host.local"}},{"id":"arm.chain","op":"compose@1","args":["arm.seat.value","arm.poseValue"],"outputs":{"pose":"arm.chain.value"}},{"id":"arm.world","op":"compose@1","args":["host.chain.value","arm.chain.value"],"outputs":{"pose":"arm.world.value"}},{"id":"head.on.arm.seat.y.t0","op":"mul@1","args":["arm.dimension.height","k.ratio.0_5"],"outputs":{"value":"head.on.arm.seat.y.t0.value"}},{"id":"head.on.arm.seat.z.t0","op":"mul@1","args":["arm.dimension.depth","host.k.centre"],"outputs":{"value":"head.on.arm.seat.z.t0.value"}},{"id":"head.on.arm.pose.y.t0","op":"mul@1","args":["head.dimension.height","k.ratio.0_5"],"outputs":{"value":"head.on.arm.pose.y.t0.value"}},{"id":"head.on.arm.pose.z.t0","op":"mul@1","args":["head.dimension.depth","k.ratio.0_5"],"outputs":{"value":"head.on.arm.pose.z.t0.value"}},{"id":"head.seat.rigid","op":"rigid@1","args":["d.mm.0","head.on.arm.seat.y.t0.value","head.on.arm.seat.z.t0.value","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"head.seat.value"},"params":{"from":"head.seat","to":"arm.local"}},{"id":"head.chain","op":"compose@1","args":["head.seat.value","head.poseValue"],"outputs":{"pose":"head.chain.value"}},{"id":"head.world","op":"compose@1","args":["arm.world.value","head.chain.value"],"outputs":{"pose":"head.world.value"}},{"id":"light.on.head.seat.y.t0","op":"mul@1","args":["head.dimension.height","host.k.centre"],"outputs":{"value":"light.on.head.seat.y.t0.value"}},{"id":"light.on.head.pose.y.t0","op":"mul@1","args":["light.dimension.height","host.k.centre"],"outputs":{"value":"light.on.head.pose.y.t0.value"}},{"id":"light.seat.rigid","op":"rigid@1","args":["d.mm.0","light.on.head.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"light.seat.value"},"params":{"from":"light.joint","to":"head.local"}},{"id":"light.chain","op":"compose@1","args":["light.seat.value","light.turned.value"],"outputs":{"pose":"light.chain.value"}},{"id":"light.world","op":"compose@1","args":["head.world.value","light.chain.value"],"outputs":{"pose":"light.world.value"}},{"id":"light.motion","op":"axis-slide@1","args":["axis.ratio.0","axis.ratio.1","axis.ratio.0","on"],"outputs":{"pose":"light.motion.value"},"params":{"from":"light.seat","to":"light.joint"}},{"id":"light.turned","op":"compose@1","args":["light.motion.value","light.poseValue"],"outputs":{"pose":"light.turned.value"}},{"id":"light.shown","op":"at-least@1","args":["on","k.light.shown.at"],"outputs":{"value":"light.shown.value"}}]},"capabilities":{"version":"r3-capability-3","assetFrame":"asset","bindings":[]}},"designInputs":{"host.size.x":1800,"host.size.y":900,"host.size.z":800,"arm.dimension.width":40,"arm.dimension.height":700,"arm.dimension.depth":40,"head.dimension.width":300,"head.dimension.height":40,"head.dimension.depth":120,"light.dimension.width":280,"light.dimension.height":10,"light.dimension.depth":100},"stateDefaults":{"on":0},"palette":{"palette.primary":"#477b9e","palette.host":"#d9dde2","palette.tpl-7d8790":"#7d8790","palette.tpl-44505a":"#44505a","palette.tpl-fff4c2":"#fff4c2"},"appearance":[{"target":"host","material":{"token":"palette.host"}},{"target":"arm","material":{"token":"palette.tpl-7d8790"}},{"target":"head","material":{"token":"palette.tpl-44505a"}},{"target":"light","material":{"token":"palette.tpl-fff4c2","emissive":{"on":true,"token":"palette.tpl-fff4c2","intensity":1}},"visibility":"light.shown.value"}],"joints":[{"id":"host","type":"fixed","body0":{"plane":"mounting-plane"},"body1":{"part":"host"},"origin":{}},{"id":"arm","type":"fixed","body0":{"part":"host","face":"top"},"body1":{"part":"arm"},"origin":{"align":{"z":"min"}}},{"id":"head","type":"fixed","body0":{"part":"arm","face":"top"},"body1":{"part":"head"},"origin":{"align":{"z":"min"}}},{"id":"light","type":"prismatic","body0":{"part":"head","face":"bottom"},"body1":{"part":"light"},"origin":{},"axis":"Y","lowerLimit":0,"upperLimit":0.001,"state":{"id":"on"}}]}
1
+ {"version":"figure-asset-1","name":"TPL_WORK_LIGHT","document":{"version":"figure-prototype-1","model":{"version":"r3-spatial-1","inputs":[{"id":"host.size.x","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"host.size.y","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"host.size.z","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"arm.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"arm.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"arm.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"head.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"head.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"head.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"light.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"light.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"light.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"on","unit":"mm","min":0,"max":0.001,"role":"state"}],"constants":[{"id":"host.k.centre","unit":"ratio","value":-0.5},{"id":"d.mm.0","unit":"mm","value":0},{"id":"k.ratio.0_5","unit":"ratio","value":0.5},{"id":"a.deg.0","unit":"deg","value":0},{"id":"arm.k.centre","unit":"ratio","value":-0.5},{"id":"head.k.centre","unit":"ratio","value":-0.5},{"id":"light.k.centre","unit":"ratio","value":-0.5},{"id":"axis.ratio.0","unit":"ratio","value":0},{"id":"axis.ratio.1","unit":"ratio","value":1},{"id":"k.light.shown.at","unit":"mm","value":0.0005}],"nodes":[{"id":"host.start","op":"mul@1","args":["host.size.y","host.k.centre"],"outputs":{"value":"host.start.value"}},{"id":"host.shape","op":"extrude@1","args":["host.start.value","host.size.y","host.size.x","host.size.z"],"outputs":{"shape":"host.shapeValue"},"params":{"frame":"host.local","axis":"y","section":"rectangle"}},{"id":"host.pose","op":"rigid@1","args":["d.mm.0","host.on.plane.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"host.poseValue"},"params":{"from":"host.local","to":"host.seat"}},{"id":"host","op":"place@1","args":["host.shapeValue","host.chain.value"],"outputs":{"placed":"host.placed"}},{"id":"arm.shape","op":"extrude@1","args":["arm.start.value","arm.dimension.height","arm.dimension.width","arm.dimension.depth"],"outputs":{"shape":"arm.shapeValue"},"params":{"frame":"arm.local","axis":"y","section":"rectangle"}},{"id":"arm.pose","op":"rigid@1","args":["d.mm.0","arm.on.host.pose.y.t0.value","arm.on.host.pose.z.t0.value","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"arm.poseValue"},"params":{"from":"arm.local","to":"arm.seat"}},{"id":"arm","op":"place@1","args":["arm.shapeValue","arm.world.value"],"outputs":{"placed":"arm.placed"}},{"id":"arm.start","op":"mul@1","args":["arm.dimension.height","arm.k.centre"],"outputs":{"value":"arm.start.value"}},{"id":"head.shape","op":"extrude@1","args":["head.start.value","head.dimension.height","head.dimension.width","head.dimension.depth"],"outputs":{"shape":"head.shapeValue"},"params":{"frame":"head.local","axis":"y","section":"rectangle"}},{"id":"head.pose","op":"rigid@1","args":["d.mm.0","head.on.arm.pose.y.t0.value","head.on.arm.pose.z.t0.value","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"head.poseValue"},"params":{"from":"head.local","to":"head.seat"}},{"id":"head","op":"place@1","args":["head.shapeValue","head.world.value"],"outputs":{"placed":"head.placed"}},{"id":"head.start","op":"mul@1","args":["head.dimension.height","head.k.centre"],"outputs":{"value":"head.start.value"}},{"id":"light.shape","op":"extrude@1","args":["light.start.value","light.dimension.height","light.dimension.width","light.dimension.depth"],"outputs":{"shape":"light.shapeValue"},"params":{"frame":"light.local","axis":"y","section":"rectangle"}},{"id":"light.pose","op":"rigid@1","args":["d.mm.0","light.on.head.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"light.poseValue"},"params":{"from":"light.local","to":"light.seat"}},{"id":"light","op":"place@1","args":["light.shapeValue","light.world.value"],"outputs":{"placed":"light.placed"}},{"id":"light.start","op":"mul@1","args":["light.dimension.height","light.k.centre"],"outputs":{"value":"light.start.value"}},{"id":"host.on.plane.pose.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"host.on.plane.pose.y.t0.value"}},{"id":"host.seat.rigid","op":"rigid@1","args":["d.mm.0","d.mm.0","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"host.seat.value"},"params":{"from":"host.seat","to":"asset"}},{"id":"host.chain","op":"compose@1","args":["host.seat.value","host.poseValue"],"outputs":{"pose":"host.chain.value"}},{"id":"arm.on.host.seat.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"arm.on.host.seat.y.t0.value"}},{"id":"arm.on.host.seat.z.t0","op":"mul@1","args":["host.size.z","host.k.centre"],"outputs":{"value":"arm.on.host.seat.z.t0.value"}},{"id":"arm.on.host.pose.y.t0","op":"mul@1","args":["arm.dimension.height","k.ratio.0_5"],"outputs":{"value":"arm.on.host.pose.y.t0.value"}},{"id":"arm.on.host.pose.z.t0","op":"mul@1","args":["arm.dimension.depth","k.ratio.0_5"],"outputs":{"value":"arm.on.host.pose.z.t0.value"}},{"id":"arm.seat.rigid","op":"rigid@1","args":["d.mm.0","arm.on.host.seat.y.t0.value","arm.on.host.seat.z.t0.value","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"arm.seat.value"},"params":{"from":"arm.seat","to":"host.local"}},{"id":"arm.chain","op":"compose@1","args":["arm.seat.value","arm.poseValue"],"outputs":{"pose":"arm.chain.value"}},{"id":"arm.world","op":"compose@1","args":["host.chain.value","arm.chain.value"],"outputs":{"pose":"arm.world.value"}},{"id":"head.on.arm.seat.y.t0","op":"mul@1","args":["arm.dimension.height","k.ratio.0_5"],"outputs":{"value":"head.on.arm.seat.y.t0.value"}},{"id":"head.on.arm.seat.z.t0","op":"mul@1","args":["arm.dimension.depth","host.k.centre"],"outputs":{"value":"head.on.arm.seat.z.t0.value"}},{"id":"head.on.arm.pose.y.t0","op":"mul@1","args":["head.dimension.height","k.ratio.0_5"],"outputs":{"value":"head.on.arm.pose.y.t0.value"}},{"id":"head.on.arm.pose.z.t0","op":"mul@1","args":["head.dimension.depth","k.ratio.0_5"],"outputs":{"value":"head.on.arm.pose.z.t0.value"}},{"id":"head.seat.rigid","op":"rigid@1","args":["d.mm.0","head.on.arm.seat.y.t0.value","head.on.arm.seat.z.t0.value","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"head.seat.value"},"params":{"from":"head.seat","to":"arm.local"}},{"id":"head.chain","op":"compose@1","args":["head.seat.value","head.poseValue"],"outputs":{"pose":"head.chain.value"}},{"id":"head.world","op":"compose@1","args":["arm.world.value","head.chain.value"],"outputs":{"pose":"head.world.value"}},{"id":"light.on.head.seat.y.t0","op":"mul@1","args":["head.dimension.height","host.k.centre"],"outputs":{"value":"light.on.head.seat.y.t0.value"}},{"id":"light.on.head.pose.y.t0","op":"mul@1","args":["light.dimension.height","host.k.centre"],"outputs":{"value":"light.on.head.pose.y.t0.value"}},{"id":"light.seat.rigid","op":"rigid@1","args":["d.mm.0","light.on.head.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"light.seat.value"},"params":{"from":"light.joint","to":"head.local"}},{"id":"light.chain","op":"compose@1","args":["light.seat.value","light.turned.value"],"outputs":{"pose":"light.chain.value"}},{"id":"light.world","op":"compose@1","args":["head.world.value","light.chain.value"],"outputs":{"pose":"light.world.value"}},{"id":"light.motion","op":"axis-slide@1","args":["axis.ratio.0","axis.ratio.1","axis.ratio.0","on"],"outputs":{"pose":"light.motion.value"},"params":{"from":"light.seat","to":"light.joint"}},{"id":"light.turned","op":"compose@1","args":["light.motion.value","light.poseValue"],"outputs":{"pose":"light.turned.value"}},{"id":"light.shown","op":"at-least@1","args":["on","k.light.shown.at"],"outputs":{"value":"light.shown.value"}}]},"capabilities":{"version":"r3-capability-3","assetFrame":"asset","bindings":[]}},"designInputs":{"host.size.x":1800,"host.size.y":900,"host.size.z":800,"arm.dimension.width":40,"arm.dimension.height":700,"arm.dimension.depth":40,"head.dimension.width":300,"head.dimension.height":40,"head.dimension.depth":120,"light.dimension.width":280,"light.dimension.height":10,"light.dimension.depth":100},"stateDefaults":{"on":0},"palette":{"palette.primary":"#477b9e","palette.host":"#d9dde2","palette.tpl-7d8790":"#7d8790","palette.tpl-44505a":"#44505a","palette.tpl-fff4c2":"#fff4c2"},"appearance":[{"target":"host","material":{"token":"palette.host"}},{"target":"arm","material":{"token":"palette.tpl-7d8790"}},{"target":"head","material":{"token":"palette.tpl-44505a"}},{"target":"light","material":{"token":"palette.tpl-fff4c2","emissive":{"on":true,"token":"palette.tpl-fff4c2","intensity":1}},"visibility":"light.shown.value"}],"joints":[{"id":"host","body0":{"plane":"mounting-plane"},"body1":{"part":"host"},"origin":{}},{"id":"arm","body0":{"part":"host","face":"top"},"body1":{"part":"arm"},"origin":{"align":{"z":"min"}}},{"id":"head","body0":{"part":"arm","face":"top"},"body1":{"part":"head"},"origin":{"align":{"z":"min"}}},{"id":"light","body0":{"part":"head","face":"bottom"},"body1":{"part":"light"},"origin":{},"motion":[{"type":"prismatic","axis":"Y","lowerLimit":0,"upperLimit":0.001,"state":{"id":"on"}}]}]}
@@ -57,7 +57,6 @@
57
57
  "kind": "set-joint",
58
58
  "joint": {
59
59
  "id": "{id}-arm",
60
- "type": "fixed",
61
60
  "body0": {
62
61
  "part": "{target}",
63
62
  "face": "top"
@@ -76,7 +75,6 @@
76
75
  "kind": "set-joint",
77
76
  "joint": {
78
77
  "id": "{id}-head",
79
- "type": "fixed",
80
78
  "body0": {
81
79
  "part": "{id}-arm",
82
80
  "face": "top"
@@ -95,7 +93,6 @@
95
93
  "kind": "set-joint",
96
94
  "joint": {
97
95
  "id": "{id}-light",
98
- "type": "prismatic",
99
96
  "body0": {
100
97
  "part": "{id}-head",
101
98
  "face": "bottom"
@@ -104,12 +101,17 @@
104
101
  "part": "{id}-light"
105
102
  },
106
103
  "origin": {},
107
- "axis": "Y",
108
- "lowerLimit": 0,
109
- "upperLimit": 0.001,
110
- "state": {
111
- "id": "{id}-on"
112
- }
104
+ "motion": [
105
+ {
106
+ "type": "prismatic",
107
+ "axis": "Y",
108
+ "lowerLimit": 0,
109
+ "upperLimit": 0.001,
110
+ "state": {
111
+ "id": "{id}-on"
112
+ }
113
+ }
114
+ ]
113
115
  }
114
116
  },
115
117
  {
@@ -1 +1 @@
1
- {"version":"figure-asset-1","name":"TPL_WORKBENCH_TOP","document":{"version":"figure-prototype-1","model":{"version":"r3-spatial-1","inputs":[{"id":"host.size.x","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"host.size.y","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"host.size.z","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"top.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"}],"constants":[{"id":"host.k.centre","unit":"ratio","value":-0.5},{"id":"d.mm.0","unit":"mm","value":0},{"id":"k.ratio.0_5","unit":"ratio","value":0.5},{"id":"a.deg.0","unit":"deg","value":0},{"id":"top.k.centre","unit":"ratio","value":-0.5},{"id":"k.ratio.1","unit":"ratio","value":1}],"nodes":[{"id":"host.start","op":"mul@1","args":["host.size.y","host.k.centre"],"outputs":{"value":"host.start.value"}},{"id":"host.shape","op":"extrude@1","args":["host.start.value","host.size.y","host.dimension.x.value","host.dimension.z.value"],"outputs":{"shape":"host.shapeValue"},"params":{"frame":"host.local","axis":"y","section":"rectangle"}},{"id":"host.pose","op":"rigid@1","args":["d.mm.0","host.on.plane.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"host.poseValue"},"params":{"from":"host.local","to":"host.seat"}},{"id":"host","op":"place@1","args":["host.shapeValue","host.chain.value"],"outputs":{"placed":"host.placed"}},{"id":"top.shape","op":"extrude@1","args":["top.start.value","top.dimension.height","top.dimension.x.value","top.dimension.z.value"],"outputs":{"shape":"top.shapeValue"},"params":{"frame":"top.local","axis":"y","section":"rectangle"}},{"id":"top.pose","op":"rigid@1","args":["d.mm.0","top.on.host.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"top.poseValue"},"params":{"from":"top.local","to":"top.seat"}},{"id":"top","op":"place@1","args":["top.shapeValue","top.world.value"],"outputs":{"placed":"top.placed"}},{"id":"top.start","op":"mul@1","args":["top.dimension.height","top.k.centre"],"outputs":{"value":"top.start.value"}},{"id":"top.dimension.x","op":"mul@1","args":["host.dimension.x.value","k.ratio.1"],"outputs":{"value":"top.dimension.x.value"}},{"id":"host.dimension.x","op":"mul@1","args":["host.size.x","k.ratio.1"],"outputs":{"value":"host.dimension.x.value"}},{"id":"top.dimension.z","op":"mul@1","args":["host.dimension.z.value","k.ratio.1"],"outputs":{"value":"top.dimension.z.value"}},{"id":"host.dimension.z","op":"mul@1","args":["host.size.z","k.ratio.1"],"outputs":{"value":"host.dimension.z.value"}},{"id":"host.on.plane.pose.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"host.on.plane.pose.y.t0.value"}},{"id":"host.seat.rigid","op":"rigid@1","args":["d.mm.0","d.mm.0","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"host.seat.value"},"params":{"from":"host.seat","to":"asset"}},{"id":"host.chain","op":"compose@1","args":["host.seat.value","host.poseValue"],"outputs":{"pose":"host.chain.value"}},{"id":"top.on.host.seat.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"top.on.host.seat.y.t0.value"}},{"id":"top.on.host.pose.y.t0","op":"mul@1","args":["top.dimension.height","k.ratio.0_5"],"outputs":{"value":"top.on.host.pose.y.t0.value"}},{"id":"top.seat.rigid","op":"rigid@1","args":["d.mm.0","top.on.host.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"top.seat.value"},"params":{"from":"top.seat","to":"host.local"}},{"id":"top.chain","op":"compose@1","args":["top.seat.value","top.poseValue"],"outputs":{"pose":"top.chain.value"}},{"id":"top.world","op":"compose@1","args":["host.chain.value","top.chain.value"],"outputs":{"pose":"top.world.value"}}]},"capabilities":{"version":"r3-capability-3","assetFrame":"asset","bindings":[]}},"designInputs":{"host.size.x":1800,"host.size.y":800,"host.size.z":800,"top.dimension.height":40},"stateDefaults":{},"palette":{"palette.primary":"#477b9e","palette.host":"#d9dde2","palette.tpl-b08d57":"#b08d57"},"appearance":[{"target":"host","material":{"token":"palette.host"}},{"target":"top","material":{"token":"palette.tpl-b08d57"}}],"joints":[{"id":"host","type":"fixed","body0":{"plane":"mounting-plane"},"body1":{"part":"host"},"origin":{}},{"id":"top","type":"fixed","body0":{"part":"host","face":"top"},"body1":{"part":"top"},"origin":{}}]}
1
+ {"version":"figure-asset-1","name":"TPL_WORKBENCH_TOP","document":{"version":"figure-prototype-1","model":{"version":"r3-spatial-1","inputs":[{"id":"host.size.x","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"host.size.y","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"host.size.z","unit":"mm","min":5e-324,"max":1.7976931348623157e+308,"role":"design"},{"id":"top.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"}],"constants":[{"id":"host.k.centre","unit":"ratio","value":-0.5},{"id":"d.mm.0","unit":"mm","value":0},{"id":"k.ratio.0_5","unit":"ratio","value":0.5},{"id":"a.deg.0","unit":"deg","value":0},{"id":"top.k.centre","unit":"ratio","value":-0.5},{"id":"k.ratio.1","unit":"ratio","value":1}],"nodes":[{"id":"host.start","op":"mul@1","args":["host.size.y","host.k.centre"],"outputs":{"value":"host.start.value"}},{"id":"host.shape","op":"extrude@1","args":["host.start.value","host.size.y","host.dimension.x.value","host.dimension.z.value"],"outputs":{"shape":"host.shapeValue"},"params":{"frame":"host.local","axis":"y","section":"rectangle"}},{"id":"host.pose","op":"rigid@1","args":["d.mm.0","host.on.plane.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"host.poseValue"},"params":{"from":"host.local","to":"host.seat"}},{"id":"host","op":"place@1","args":["host.shapeValue","host.chain.value"],"outputs":{"placed":"host.placed"}},{"id":"top.shape","op":"extrude@1","args":["top.start.value","top.dimension.height","top.dimension.x.value","top.dimension.z.value"],"outputs":{"shape":"top.shapeValue"},"params":{"frame":"top.local","axis":"y","section":"rectangle"}},{"id":"top.pose","op":"rigid@1","args":["d.mm.0","top.on.host.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"top.poseValue"},"params":{"from":"top.local","to":"top.seat"}},{"id":"top","op":"place@1","args":["top.shapeValue","top.world.value"],"outputs":{"placed":"top.placed"}},{"id":"top.start","op":"mul@1","args":["top.dimension.height","top.k.centre"],"outputs":{"value":"top.start.value"}},{"id":"top.dimension.x","op":"mul@1","args":["host.dimension.x.value","k.ratio.1"],"outputs":{"value":"top.dimension.x.value"}},{"id":"host.dimension.x","op":"mul@1","args":["host.size.x","k.ratio.1"],"outputs":{"value":"host.dimension.x.value"}},{"id":"top.dimension.z","op":"mul@1","args":["host.dimension.z.value","k.ratio.1"],"outputs":{"value":"top.dimension.z.value"}},{"id":"host.dimension.z","op":"mul@1","args":["host.size.z","k.ratio.1"],"outputs":{"value":"host.dimension.z.value"}},{"id":"host.on.plane.pose.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"host.on.plane.pose.y.t0.value"}},{"id":"host.seat.rigid","op":"rigid@1","args":["d.mm.0","d.mm.0","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"host.seat.value"},"params":{"from":"host.seat","to":"asset"}},{"id":"host.chain","op":"compose@1","args":["host.seat.value","host.poseValue"],"outputs":{"pose":"host.chain.value"}},{"id":"top.on.host.seat.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"top.on.host.seat.y.t0.value"}},{"id":"top.on.host.pose.y.t0","op":"mul@1","args":["top.dimension.height","k.ratio.0_5"],"outputs":{"value":"top.on.host.pose.y.t0.value"}},{"id":"top.seat.rigid","op":"rigid@1","args":["d.mm.0","top.on.host.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"top.seat.value"},"params":{"from":"top.seat","to":"host.local"}},{"id":"top.chain","op":"compose@1","args":["top.seat.value","top.poseValue"],"outputs":{"pose":"top.chain.value"}},{"id":"top.world","op":"compose@1","args":["host.chain.value","top.chain.value"],"outputs":{"pose":"top.world.value"}}]},"capabilities":{"version":"r3-capability-3","assetFrame":"asset","bindings":[]}},"designInputs":{"host.size.x":1800,"host.size.y":800,"host.size.z":800,"top.dimension.height":40},"stateDefaults":{},"palette":{"palette.primary":"#477b9e","palette.host":"#d9dde2","palette.tpl-b08d57":"#b08d57"},"appearance":[{"target":"host","material":{"token":"palette.host"}},{"target":"top","material":{"token":"palette.tpl-b08d57"}}],"joints":[{"id":"host","body0":{"plane":"mounting-plane"},"body1":{"part":"host"},"origin":{}},{"id":"top","body0":{"part":"host","face":"top"},"body1":{"part":"top"},"origin":{}}]}
@@ -71,7 +71,6 @@
71
71
  "kind": "set-joint",
72
72
  "joint": {
73
73
  "id": "{id}-top",
74
- "type": "fixed",
75
74
  "body0": {
76
75
  "part": "{target}",
77
76
  "face": "top"
@@ -69,7 +69,7 @@ describe('the budget is the model’s, not the kernel’s', () => {
69
69
  expect(JSON.stringify(view.outline).length).toBeLessThan(FIGURE_CONTEXT_BUDGET)
70
70
  expect(view.outline!.chars).toBe(size(over))
71
71
  expect(view.outline!.parts.map(p => p.id)).toEqual(partsOf(over))
72
- expect(view.outline!.parts[1]).toMatchObject({ id: 'shelf-1', on: 'shelf-0.top', joint: { id: 'shelf-1', type: 'fixed' } })
72
+ expect(view.outline!.parts[1]).toMatchObject({ id: 'shelf-1', on: 'shelf-0.top', joint: { id: 'shelf-1' } })
73
73
  expect(view.outline!.parts[0].on).toBe('mounting-plane')
74
74
  expect(view.outline!.document.model.nodes).toBe(over.document.model.nodes.length)
75
75
  expect(view.outline!.palette).toEqual(over.palette)
@@ -163,7 +163,7 @@ describe('a proposal changes only what it was shown', () => {
163
163
  })
164
164
 
165
165
  it('a joint is its moving part’s: refastening or removing it changes that part', () => {
166
- const set = { kind: 'set-joint', joint: { id: 'shelf-5', type: 'fixed', body0: { part: 'shelf-2', face: 'top' }, body1: { part: 'shelf-5' }, origin: {} } }
166
+ const set = { kind: 'set-joint', joint: { id: 'shelf-5', body0: { part: 'shelf-2', face: 'top' }, body1: { part: 'shelf-5' }, origin: {} } }
167
167
  const remove = { kind: 'remove-joint', id: 'shelf-5' }
168
168
  expect(unreadPartEdits(over, [set, remove] as never, shown)).toHaveLength(2)
169
169
  })
@@ -178,7 +178,7 @@ describe('a proposal changes only what it was shown', () => {
178
178
  { ...decoys, kind: 'set-material', target: 'shelf-5', material: { token: 'palette.primary' } },
179
179
  { ...decoys, kind: 'attach', part: 'shelf-5', to: { part: 'shelf-2', face: 'top' } },
180
180
  { ...decoys, kind: 'remove-joint', joint: 'shelf-2', id: 'shelf-5' },
181
- { ...decoys, kind: 'set-joint', joint: { id: 'shelf-2', type: 'fixed', body0: { part: 'shelf-2', face: 'top' }, body1: { part: 'shelf-5' }, origin: {} } }
181
+ { ...decoys, kind: 'set-joint', joint: { id: 'shelf-2', body0: { part: 'shelf-2', face: 'top' }, body1: { part: 'shelf-5' }, origin: {} } }
182
182
  ]
183
183
  const reasons = unreadPartEdits(over, steps as never, shown)
184
184
  expect(reasons).toHaveLength(steps.length)
@@ -30,7 +30,8 @@ export interface FigureOutlinePart {
30
30
  shape?: string
31
31
  /** What it is fastened to: `<part>.<face>`, `mounting-plane`, or nothing when unfastened. */
32
32
  on?: string
33
- joint?: { id: string; type: string }
33
+ /** Its joint, and how it moves: each axis's type in order (ADR-0159); no motion for a fastening. */
34
+ joint?: { id: string; motion?: string[] }
34
35
  material?: string
35
36
  /** How long its part read is: what reading it costs. */
36
37
  chars: number
@@ -178,7 +179,8 @@ function outlinePartsOf(asset: FigureAsset): FigureOutlinePart[] {
178
179
  id,
179
180
  ...(shape ? { shape } : {}),
180
181
  ...(on ? { on } : {}),
181
- ...(joint ? { joint: { id: joint.id, type: joint.type } } : {}),
182
+ /* How it moves: each axis of its joint in order (ADR-0159); none for a fastening. */
183
+ ...(joint ? { joint: { id: joint.id, ...(joint.motion?.length ? { motion: joint.motion.map((m: Dynamic) => m.type) } : {}) } } : {}),
182
184
  ...(look.material?.token ? { material: look.material.token } : {}),
183
185
  chars: length(figurePartReadOf(asset, id))
184
186
  }
@@ -32,7 +32,7 @@ function door(): FigureAsset {
32
32
  a = addFigureBox(a, { id: 'sign', size: { x: 200, y: 100, z: 10 }, position: { x: 0, y: 2200, z: 200 } })
33
33
  a = applyFigureAuthoring(a, { kind: 'attach', part: 'leaf', to: { part: 'frame', face: 'top' } })
34
34
  const j = a.joints!.find(k => k.body1.part === 'leaf')!
35
- a = applyFigureAuthoring(a, { kind: 'set-joint', joint: { ...j, type: 'revolute', axis: 'Y', state: { id: 'open' } } })
35
+ a = applyFigureAuthoring(a, { kind: 'set-joint', joint: { ...j, motion: [{ type: 'revolute', axis: 'Y', state: { id: 'open' } }] } })
36
36
  return editFigurePart(a, { kind: 'set-driver', state: 'open', clip: 'swing', duration: 2, keys: [{ seconds: 0, value: 0 }, { seconds: 2, value: 80 }] })
37
37
  }
38
38
  const lossy = { steps: [{ kind: 'rename', name: 'Door by AI' }, { kind: 'remove-part', target: 'leaf' }] }
@@ -123,9 +123,9 @@ describe('a release of a figure that moves keeps its joint list', () => {
123
123
  const { asset } = palletizerRobotFigure()
124
124
  if (!j4Axis) return serializeFigureAsset(asset)
125
125
  const j4 = asset.joints.find((j: any) => j.id === 'j4')
126
- return serializeFigureAsset(applyFigureAuthoring(asset, { kind: 'set-joint', joint: { ...j4, axis: j4Axis } }))
126
+ return serializeFigureAsset(applyFigureAuthoring(asset, { kind: 'set-joint', joint: { ...j4, motion: [{ ...j4.motion[0], axis: j4Axis }] } }))
127
127
  }
128
- it('schema 2, the wrist following -(j2 + j3), controls with both units; another axis is refused', async () => {
128
+ it('schema 3, the wrist following -(j2 + j3), controls with both units; another axis is refused', async () => {
129
129
  const domain = await namespaced(await dataSource!.getRepository(shell.Domain).save({ name: 'release-joints', subdomain: 'release-joints' }))
130
130
  const context = { state: { domain, user: undefined, tx: dataSource!.manager } }
131
131
  const figure = await dataSource!.getRepository(Figure).save({ namespace: domain.subdomain, type: 'PALLETIZER', name: 'palletizer', source: palletizer(), state: 'draft', version: 0, domain })
@@ -133,7 +133,7 @@ describe('a release of a figure that moves keeps its joint list', () => {
133
133
 
134
134
  const [row] = await dataSource!.getRepository(FigureHistory).find({ where: { originalId: figure.id } })
135
135
  const list = JSON.parse(row.metrics).joints
136
- expect(list.schema).toBe(2)
136
+ expect(list.schema).toBe(3)
137
137
  const byId = new Map(list.joints.map((j: any) => [j.id, j]))
138
138
  expect(byId.get('wrist')).toMatchObject({
139
139
  type: 'revolute',
@@ -536,7 +536,7 @@ describe('제안이 카드가 된다', () => {
536
536
  it('고치는 것과 만드는 것을 이름으로 가른다', async () => {
537
537
  const revise = await toolNamed('proposeFigureCandidate').builder({ prompt: '고쳐줘' }, ctx(modeller(), { t: translatorOf('ko') }))
538
538
  const create = await toolNamed('proposeFigureCandidate').builder({ prompt: '만들어줘', create: true }, ctx({}, { t: translatorOf('ko') }))
539
- expect(revise.label).toBe('Probe 고치기')
539
+ expect(revise.label).toBe('Probe 수정')
540
540
  expect(create.label).toBe('Figure 만들기')
541
541
  })
542
542
 
@@ -114,7 +114,7 @@ export class Figure {
114
114
  supersededBy?: string
115
115
 
116
116
  /*
117
- 공개(LV figure-server design G2). 다른 도메인도 이 figure 의 **발행본**을 읽고 꾸러미에 담고 도면에서 정식 이름으로
117
+ 공개(LV figure-server design G2). 다른 도메인도 이 figure 의 **발행본**을 읽고 패키지에 담고 도면에서 정식 이름으로
118
118
  부른다. 초안은 소유 도메인만 본다. 고치고 발행하는 것은 소유 도메인뿐이다(G3). `setFigurePublic` 이 정한다.
119
119
  */
120
120
  @Column({ nullable: true, default: false })
@@ -84,7 +84,7 @@
84
84
  "figure.gate.contract.joint-child-changed.why": "컨트롤러의 값은 뜻이 그대로입니다. 화면에서는 그 관절이 새 부품을 움직입니다.",
85
85
  "figure.gate.contract.joint-list-unread.message": "직전 발행본의 관절 목록을 읽지 못해 관절을 비교하지 않았습니다: {reason}",
86
86
  "figure.gate.contract.joint-list-unread.why": "이 발행이 컨트롤러의 값이 움직이는 것을 바꾸는지는 확인하지 않았습니다. 직전 발행본은 관절을 재지 않던 커널로 발행되었습니다.",
87
- "error.figure-release-not-found": "{type} 에는 {version} 번 발행판이 없습니다. 최신 발행판은 {latest} 번입니다.",
87
+ "error.figure-release-not-found": "{type}의 발행 버전 {version}을(를) 찾을 수 없습니다. 최신 발행 버전은 {latest}입니다.",
88
88
  "figure.gate.off-mounting-plane.floor.clear.message": "'{part}' 부품이 바닥에서 {mm}mm 떠 있습니다.",
89
89
  "figure.gate.off-mounting-plane.floor.through.message": "'{part}' 부품이 바닥 아래로 {mm}mm 내려가 있습니다.",
90
90
  "figure.gate.off-mounting-plane.floor.beyond.message": "모든 부품이 바닥 아래에 있습니다.",
@@ -107,7 +107,7 @@
107
107
  "error.figure-name-malformed": "{type} 은 namespace/type 형식의 정식 이름이 아닙니다.",
108
108
  "error.figure-not-released": "이 도메인에 발행판이 없습니다.",
109
109
  "error.figure-names-too-many": "Figure 이름은 한 번에 {max}개까지 물을 수 있습니다({count}개).",
110
- "error.figure-package-size": "꾸러미에는 발행판을 1~{max}개 담을 수 있습니다({count}개).",
110
+ "error.figure-package-size": "패키지에 포함할 수 있는 발행본은 1~{max}개입니다. 현재 {count}개가 지정되어 있습니다.",
111
111
  "error.figure-ref-malformed": "{ref} 은 namespace/type@버전 형식의 발행판 참조가 아닙니다.",
112
112
  "error.figure-package-release-not-found": "{ref} 은 이 도메인에서 읽을 수 있는 발행판이 아닙니다.",
113
113
  "error.figure-mesh-not-glb": "파일이 바이너리 glTF(.glb)가 아닙니다. GLB 로 내보내 다시 업로드해 주세요.",
@@ -154,7 +154,7 @@
154
154
  "figure.gate.contract.slot-anchor-moved.message": "'{anchor}' 기준면이 {before} 면에서 {after} 면으로 옮겨졌습니다.",
155
155
  "figure.gate.contract.slot-anchor-moved.why": "발행 후 해당 기준면의 모든 슬롯과 배치된 항목이 새 기준면으로 이동합니다.",
156
156
  "figure.proposal.label-create": "{name} 만들기",
157
- "figure.proposal.label-revise": "{name} 고치기",
157
+ "figure.proposal.label-revise": "{name} 수정",
158
158
  "figure.proposal.reason": "명령 {steps}개 · 등급 {grade} · 삼각형 {triangles} · {attempts}번에 만들었다",
159
159
  "error.figure-released-not-deletable": "{type} 은 발행한 Figure 라 지울 수 없습니다.",
160
160
  "error.figure-namespace-taken": "Figure namespace {namespace} 는 이 서버에서 이미 쓰고 있습니다.",
@@ -163,7 +163,7 @@
163
163
  "error.figure-namespace-default-suspended": "기본 namespace {namespace} 는 쉬게 할 수 없습니다. 먼저 다른 namespace 를 기본으로 정해 주세요.",
164
164
  "error.figure-namespace-state": "{state} 는 namespace 상태가 아닙니다. active 나 suspended 를 쓰세요.",
165
165
  "error.figure-public-unreleased": "{type} 은 아직 발행하지 않았습니다. 발행한 Figure 만 공개할 수 있습니다.",
166
- "error.figure-category-fixed": "분류 {category} 는 한 번 정하면 바꾸지 않습니다.",
167
- "error.figure-category-unknown": "{category} 는 여기서 쓰는 분류가 아닙니다. {allowed} 가운데 하나를 고르세요.",
168
- "error.figure-category-missing": "{type} 에 분류가 없습니다. 발행하기 전에 {allowed} 가운데 하나를 고르세요."
166
+ "error.figure-category-fixed": "분류 {category}은(는) 최초 지정 후 변경할 수 없습니다.",
167
+ "error.figure-category-unknown": "{category}은(는) 지원하지 않는 분류입니다. {allowed} 중 하나를 선택해 주세요.",
168
+ "error.figure-category-missing": "{type}의 분류가 지정되지 않았습니다. 발행하기 전에 {allowed} 중 하나를 선택해 주세요."
169
169
  }