@things-factory/figure-service 10.1.208 → 10.1.212
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.
- package/README.md +1 -1
- package/dist-server/service/figure/event-subscriber.js +2 -2
- package/dist-server/service/figure/event-subscriber.js.map +1 -1
- package/dist-server/service/figure/figure-context.d.ts +2 -1
- package/dist-server/service/figure/figure-context.js +2 -1
- package/dist-server/service/figure/figure-context.js.map +1 -1
- package/dist-server/service/figure/figure-format.js +1 -1
- package/dist-server/service/figure/figure-format.js.map +1 -1
- package/dist-server/service/figure/figure-mutation.d.ts +5 -5
- package/dist-server/service/figure/figure-mutation.js +6 -6
- package/dist-server/service/figure/figure-mutation.js.map +1 -1
- package/dist-server/service/figure/figure-query.d.ts +3 -3
- package/dist-server/service/figure/figure-query.js +4 -4
- package/dist-server/service/figure/figure-query.js.map +1 -1
- package/dist-server/service/figure/figure-rename.d.ts +4 -4
- package/dist-server/service/figure/figure-rename.js +2 -2
- package/dist-server/service/figure/figure-rename.js.map +1 -1
- package/dist-server/service/figure/figure-tools.js +9 -9
- package/dist-server/service/figure/figure-tools.js.map +1 -1
- package/dist-server/service/figure/figure-type.d.ts +2 -2
- package/dist-server/service/figure/figure-type.js +2 -2
- package/dist-server/service/figure/figure-type.js.map +1 -1
- package/dist-server/service/figure/figure.d.ts +2 -2
- package/dist-server/service/figure/figure.js +1 -1
- package/dist-server/service/figure/figure.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/recipes/_lib/model.mts +12 -8
- package/recipes/air-cylinder/models/default.json +1 -1
- package/recipes/air-cylinder/recipe.json +13 -10
- package/recipes/air-cylinder/spec.json +1 -1
- package/recipes/air-shower/models/default.json +1 -1
- package/recipes/air-shower/recipe.json +11 -8
- package/recipes/barrier-gate/models/default.json +1 -1
- package/recipes/barrier-gate/recipe.json +11 -7
- package/recipes/base-frame/models/default.json +1 -1
- package/recipes/base-frame/recipe.json +0 -4
- package/recipes/belt-surface/guide.ko.md +1 -1
- package/recipes/belt-surface/models/default.json +1 -1
- package/recipes/belt-surface/recipe.json +0 -1
- package/recipes/bin-row/models/default.json +1 -1
- package/recipes/bin-row/recipe.json +0 -1
- package/recipes/bollard-row/models/default.json +1 -1
- package/recipes/bollard-row/recipe.json +0 -1
- package/recipes/buzzer/models/default.json +1 -1
- package/recipes/buzzer/recipe.json +0 -1
- package/recipes/cabinet-doors/build.mts +1 -1
- package/recipes/cabinet-doors/models/default.json +1 -1
- package/recipes/cabinet-doors/models/doors=1.json +1 -1
- package/recipes/cabinet-doors/models/doors=2.json +1 -1
- package/recipes/cabinet-doors/recipe.json +21 -13
- package/recipes/cable-tray/models/default.json +1 -1
- package/recipes/cable-tray/recipe.json +0 -3
- package/recipes/camera-mount/models/default.json +1 -1
- package/recipes/camera-mount/recipe.json +11 -8
- package/recipes/canopy/models/default.json +1 -1
- package/recipes/canopy/recipe.json +0 -5
- package/recipes/cart/models/default.json +1 -1
- package/recipes/cart/recipe.json +0 -12
- package/recipes/cart-handle/models/default.json +1 -1
- package/recipes/cart-handle/recipe.json +0 -3
- package/recipes/casters-four/models/default.json +1 -1
- package/recipes/casters-four/recipe.json +0 -8
- package/recipes/ceiling-rail-carriage/build.mts +1 -1
- package/recipes/ceiling-rail-carriage/models/default.json +1 -1
- package/recipes/ceiling-rail-carriage/recipe.json +19 -16
- package/recipes/chain-rails/models/default.json +1 -1
- package/recipes/chain-rails/recipe.json +0 -2
- package/recipes/charging-station/models/default.json +1 -1
- package/recipes/charging-station/recipe.json +0 -2
- package/recipes/column-row/models/default.json +1 -1
- package/recipes/column-row/recipe.json +0 -1
- package/recipes/control-cabinet/models/default.json +1 -1
- package/recipes/control-cabinet/recipe.json +11 -8
- package/recipes/conveyor-skirts/models/default.json +1 -1
- package/recipes/conveyor-skirts/recipe.json +0 -2
- package/recipes/counter-display/models/default.json +1 -1
- package/recipes/counter-display/recipe.json +0 -2
- package/recipes/dock-bumpers/models/default.json +1 -1
- package/recipes/dock-bumpers/recipe.json +0 -2
- package/recipes/dock-leveler/models/default.json +1 -1
- package/recipes/dock-leveler/recipe.json +11 -7
- package/recipes/double-hinged-door/build.mts +1 -1
- package/recipes/double-hinged-door/models/default.json +1 -1
- package/recipes/double-hinged-door/recipe.json +21 -14
- package/recipes/drawer-stack/models/default.json +1 -1
- package/recipes/drawer-stack/models/drawers=2.json +1 -1
- package/recipes/drawer-stack/models/drawers=3.json +1 -1
- package/recipes/drawer-stack/models/drawers=4.json +1 -1
- package/recipes/drawer-stack/recipe.json +99 -63
- package/recipes/drip-tray/models/default.json +1 -1
- package/recipes/drip-tray/recipe.json +0 -1
- package/recipes/duct-fan/models/default.json +1 -1
- package/recipes/duct-fan/recipe.json +11 -8
- package/recipes/emergency-stop/models/default.json +1 -1
- package/recipes/emergency-stop/recipe.json +11 -8
- package/recipes/end-covers/models/default.json +1 -1
- package/recipes/end-covers/recipe.json +0 -2
- package/recipes/ffu-row/models/default.json +1 -1
- package/recipes/ffu-row/recipe.json +0 -1
- package/recipes/fire-extinguisher/models/default.json +1 -1
- package/recipes/fire-extinguisher/recipe.json +0 -2
- package/recipes/first-aid-box/models/default.json +1 -1
- package/recipes/first-aid-box/recipe.json +0 -2
- package/recipes/floor-zone/models/default.json +1 -1
- package/recipes/floor-zone/recipe.json +0 -4
- package/recipes/folding-door/build.mts +1 -1
- package/recipes/folding-door/models/default.json +1 -1
- package/recipes/folding-door/recipe.json +21 -14
- package/recipes/fork/build.mts +1 -1
- package/recipes/fork/models/default.json +1 -1
- package/recipes/fork/recipe.json +23 -15
- package/recipes/fork/spec.json +1 -1
- package/recipes/gantry-frame/models/default.json +1 -1
- package/recipes/gantry-frame/recipe.json +0 -3
- package/recipes/gripper-2f/build.mts +1 -1
- package/recipes/gripper-2f/models/default.json +1 -1
- package/recipes/gripper-2f/recipe.json +23 -16
- package/recipes/gripper-2f/spec.json +1 -1
- package/recipes/guard-cover/models/default.json +1 -1
- package/recipes/guard-cover/recipe.json +11 -7
- package/recipes/handrail/models/default.json +1 -1
- package/recipes/handrail/recipe.json +0 -2
- package/recipes/hatch/models/default.json +1 -1
- package/recipes/hatch/recipe.json +11 -8
- package/recipes/hinged-door/build.mts +2 -3
- package/recipes/hinged-door/models/default.json +1 -1
- package/recipes/hinged-door/models/hinge=left.json +1 -1
- package/recipes/hinged-door/models/hinge=right.json +1 -1
- package/recipes/hinged-door/recipe.json +22 -15
- package/recipes/hmi-monitor/models/default.json +1 -1
- package/recipes/hmi-monitor/recipe.json +11 -8
- package/recipes/hopper/models/default.json +1 -1
- package/recipes/hopper/recipe.json +0 -2
- package/recipes/interlock-switch/models/default.json +1 -1
- package/recipes/interlock-switch/recipe.json +0 -1
- package/recipes/junction-box/models/default.json +1 -1
- package/recipes/junction-box/recipe.json +0 -1
- package/recipes/ladder/models/default.json +1 -1
- package/recipes/ladder/recipe.json +0 -3
- package/recipes/legs-four/models/default.json +1 -1
- package/recipes/legs-four/recipe.json +0 -4
- package/recipes/leveling-feet/models/default.json +1 -1
- package/recipes/leveling-feet/recipe.json +0 -4
- package/recipes/lift-updown/models/default.json +1 -1
- package/recipes/lift-updown/recipe.json +13 -9
- package/recipes/lift-updown/spec.json +1 -1
- package/recipes/light-curtain/models/default.json +1 -1
- package/recipes/light-curtain/recipe.json +0 -2
- package/recipes/limit-switch/models/default.json +1 -1
- package/recipes/limit-switch/recipe.json +11 -8
- package/recipes/linear-guide/build.mts +1 -1
- package/recipes/linear-guide/models/default.json +1 -1
- package/recipes/linear-guide/recipe.json +19 -16
- package/recipes/locker-row/models/default.json +1 -1
- package/recipes/locker-row/recipe.json +0 -1
- package/recipes/motor-box/models/default.json +1 -1
- package/recipes/motor-box/recipe.json +0 -1
- package/recipes/observation-window/models/default.json +1 -1
- package/recipes/observation-window/recipe.json +0 -2
- package/recipes/operator-panel/models/buttons=2.json +1 -1
- package/recipes/operator-panel/models/buttons=3.json +1 -1
- package/recipes/operator-panel/models/buttons=4.json +1 -1
- package/recipes/operator-panel/models/buttons=5.json +1 -1
- package/recipes/operator-panel/models/default.json +1 -1
- package/recipes/operator-panel/recipe.json +0 -5
- package/recipes/pallet/models/default.json +1 -1
- package/recipes/pallet/recipe.json +0 -4
- package/recipes/partition-wall/models/default.json +1 -1
- package/recipes/partition-wall/recipe.json +0 -3
- package/recipes/pass-box/models/default.json +1 -1
- package/recipes/pass-box/recipe.json +11 -8
- package/recipes/peg-board/models/default.json +1 -1
- package/recipes/peg-board/recipe.json +0 -2
- package/recipes/photo-sensor-pair/models/default.json +1 -1
- package/recipes/photo-sensor-pair/recipe.json +0 -2
- package/recipes/pipe-run/models/default.json +1 -1
- package/recipes/pipe-run/recipe.json +0 -1
- package/recipes/platform/models/default.json +1 -1
- package/recipes/platform/recipe.json +0 -5
- package/recipes/power-box/models/default.json +1 -1
- package/recipes/power-box/recipe.json +0 -1
- package/recipes/pressure-gauge/models/default.json +1 -1
- package/recipes/pressure-gauge/recipe.json +0 -1
- package/recipes/pull-cord/models/default.json +1 -1
- package/recipes/pull-cord/recipe.json +0 -1
- package/recipes/pump/models/default.json +1 -1
- package/recipes/pump/recipe.json +0 -2
- package/recipes/pusher/build.mts +1 -1
- package/recipes/pusher/models/default.json +1 -1
- package/recipes/pusher/recipe.json +19 -15
- package/recipes/robot-plinth/models/default.json +1 -1
- package/recipes/robot-plinth/recipe.json +0 -2
- package/recipes/roll-up-shutter/build.mts +1 -1
- package/recipes/roll-up-shutter/models/default.json +1 -1
- package/recipes/roll-up-shutter/recipe.json +19 -16
- package/recipes/roller-row/facts.md +1 -1
- package/recipes/roller-row/guide.ko.md +1 -1
- package/recipes/roller-row/models/default.json +1 -1
- package/recipes/roller-row/recipe.json +11 -7
- package/recipes/room-shell/models/default.json +1 -1
- package/recipes/room-shell/recipe.json +0 -5
- package/recipes/rotating-beacon/models/default.json +1 -1
- package/recipes/rotating-beacon/recipe.json +11 -9
- package/recipes/safety-fence/models/default.json +1 -1
- package/recipes/safety-fence/recipe.json +0 -2
- package/recipes/safety-mat/models/default.json +1 -1
- package/recipes/safety-mat/recipe.json +0 -1
- package/recipes/safety-sign-stand/models/default.json +1 -1
- package/recipes/safety-sign-stand/recipe.json +0 -3
- package/recipes/scanner-mount/models/default.json +1 -1
- package/recipes/scanner-mount/recipe.json +0 -3
- package/recipes/selector-switch/models/default.json +1 -1
- package/recipes/selector-switch/recipe.json +11 -8
- package/recipes/shelf-tiers/models/default.json +1 -1
- package/recipes/shelf-tiers/models/tiers=2.json +1 -1
- package/recipes/shelf-tiers/models/tiers=3.json +1 -1
- package/recipes/shelf-tiers/models/tiers=4.json +1 -1
- package/recipes/shelf-tiers/models/tiers=5.json +1 -1
- package/recipes/shelf-tiers/recipe.json +0 -4
- package/recipes/side-guides/models/default.json +1 -1
- package/recipes/side-guides/recipe.json +0 -2
- package/recipes/sign-board/models/default.json +1 -1
- package/recipes/sign-board/recipe.json +0 -1
- package/recipes/signal-tower-3/build.mts +1 -1
- package/recipes/signal-tower-3/models/default.json +1 -1
- package/recipes/signal-tower-3/recipe.json +11 -10
- package/recipes/sliding-door/build.mts +4 -7
- package/recipes/sliding-door/facts.md +1 -1
- package/recipes/sliding-door/guide.ko.md +1 -1
- package/recipes/sliding-door/models/default.json +1 -1
- package/recipes/sliding-door/models/leaves=1,lamp=false.json +1 -1
- package/recipes/sliding-door/models/leaves=1,lamp=true.json +1 -1
- package/recipes/sliding-door/models/leaves=2,lamp=false.json +1 -1
- package/recipes/sliding-door/models/leaves=2,lamp=true.json +1 -1
- package/recipes/sliding-door/recipe.json +48 -38
- package/recipes/stairs/models/default.json +1 -1
- package/recipes/stairs/recipe.json +0 -1
- package/recipes/status-lamp/models/default.json +1 -1
- package/recipes/status-lamp/recipe.json +11 -9
- package/recipes/stopper/models/default.json +1 -1
- package/recipes/stopper/recipe.json +11 -7
- package/recipes/suction-pads/models/default.json +1 -1
- package/recipes/suction-pads/recipe.json +0 -1
- package/recipes/tank/models/default.json +1 -1
- package/recipes/tank/recipe.json +0 -1
- package/recipes/telescopic-arm/build.mts +1 -1
- package/recipes/telescopic-arm/models/default.json +1 -1
- package/recipes/telescopic-arm/recipe.json +21 -13
- package/recipes/toe-board/models/default.json +1 -1
- package/recipes/toe-board/recipe.json +0 -1
- package/recipes/tote/models/default.json +1 -1
- package/recipes/tote/recipe.json +0 -1
- package/recipes/traffic-cones/models/default.json +1 -1
- package/recipes/traffic-cones/recipe.json +0 -2
- package/recipes/transfer-belts/build.mts +1 -1
- package/recipes/transfer-belts/models/default.json +1 -1
- package/recipes/transfer-belts/recipe.json +23 -15
- package/recipes/transfer-belts/spec.json +1 -1
- package/recipes/tray-stack/models/default.json +1 -1
- package/recipes/tray-stack/models/trays=3.json +1 -1
- package/recipes/tray-stack/models/trays=4.json +1 -1
- package/recipes/tray-stack/models/trays=5.json +1 -1
- package/recipes/tray-stack/recipe.json +0 -5
- package/recipes/trough/models/default.json +1 -1
- package/recipes/trough/recipe.json +0 -1
- package/recipes/turntable/models/default.json +1 -1
- package/recipes/turntable/recipe.json +11 -8
- package/recipes/valve-handle/models/default.json +1 -1
- package/recipes/valve-handle/recipe.json +11 -9
- package/recipes/waste-bin/models/default.json +1 -1
- package/recipes/waste-bin/recipe.json +0 -1
- package/recipes/work-light/models/default.json +1 -1
- package/recipes/work-light/recipe.json +11 -9
- package/recipes/workbench-top/models/default.json +1 -1
- package/recipes/workbench-top/recipe.json +0 -1
- package/server/service/figure/catalog-db.test.ts +1 -1
- package/server/service/figure/event-subscriber.ts +2 -2
- package/server/service/figure/figure-blueprint-query.test.ts +3 -3
- package/server/service/figure/figure-context.test.ts +3 -3
- package/server/service/figure/figure-context.ts +4 -2
- package/server/service/figure/figure-format.test.ts +7 -7
- package/server/service/figure/figure-format.ts +1 -1
- package/server/service/figure/figure-llm-smoke.test.ts +1 -1
- package/server/service/figure/figure-mutation.ts +6 -6
- package/server/service/figure/figure-propose-clips.test.ts +1 -1
- package/server/service/figure/figure-propose-steps.test.ts +2 -2
- package/server/service/figure/figure-query.ts +4 -4
- package/server/service/figure/figure-release-record-db.test.ts +3 -3
- package/server/service/figure/figure-rename-db.test.ts +2 -2
- package/server/service/figure/figure-rename.test.ts +3 -3
- package/server/service/figure/figure-rename.ts +6 -6
- package/server/service/figure/figure-subject.test.ts +1 -1
- package/server/service/figure/figure-tools.test.ts +19 -19
- package/server/service/figure/figure-tools.ts +9 -9
- package/server/service/figure/figure-type.ts +2 -2
- package/server/service/figure/figure.ts +2 -2
- package/translations/ko.json +31 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"figure-asset-1","name":"TPL_VALVE_HANDLE","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":"body.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"body.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"body.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"stem.dimension.radius","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"stem.dimension.length","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"wheel.dimension.radius","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"wheel.dimension.length","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"turn","unit":"deg","min":0,"max":360,"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":"body.k.centre","unit":"ratio","value":-0.5},{"id":"stem.k.centre","unit":"ratio","value":-0.5},{"id":"wheel.k.centre","unit":"ratio","value":-0.5},{"id":"axis.ratio.0","unit":"ratio","value":0},{"id":"axis.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.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":"body.shape","op":"extrude@1","args":["body.start.value","body.dimension.height","body.dimension.width","body.dimension.depth"],"outputs":{"shape":"body.shapeValue"},"params":{"frame":"body.local","axis":"y","section":"rectangle"}},{"id":"body.pose","op":"rigid@1","args":["d.mm.0","body.on.host.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"body.poseValue"},"params":{"from":"body.local","to":"body.seat"}},{"id":"body","op":"place@1","args":["body.shapeValue","body.world.value"],"outputs":{"placed":"body.placed"}},{"id":"body.start","op":"mul@1","args":["body.dimension.height","body.k.centre"],"outputs":{"value":"body.start.value"}},{"id":"stem.shape","op":"extrude@1","args":["stem.start.value","stem.dimension.length","stem.dimension.radius","stem.dimension.radius"],"outputs":{"shape":"stem.shapeValue"},"params":{"frame":"stem.local","axis":"y","section":"ellipse"}},{"id":"stem.pose","op":"rigid@1","args":["d.mm.0","stem.on.body.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"stem.poseValue"},"params":{"from":"stem.local","to":"stem.seat"}},{"id":"stem","op":"place@1","args":["stem.shapeValue","stem.world.value"],"outputs":{"placed":"stem.placed"}},{"id":"stem.start","op":"mul@1","args":["stem.dimension.length","stem.k.centre"],"outputs":{"value":"stem.start.value"}},{"id":"wheel.shape","op":"extrude@1","args":["wheel.start.value","wheel.dimension.length","wheel.dimension.radius","wheel.dimension.radius"],"outputs":{"shape":"wheel.shapeValue"},"params":{"frame":"wheel.local","axis":"y","section":"ellipse"}},{"id":"wheel.pose","op":"rigid@1","args":["d.mm.0","wheel.on.stem.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"wheel.poseValue"},"params":{"from":"wheel.local","to":"wheel.seat"}},{"id":"wheel","op":"place@1","args":["wheel.shapeValue","wheel.world.value"],"outputs":{"placed":"wheel.placed"}},{"id":"wheel.start","op":"mul@1","args":["wheel.dimension.length","wheel.k.centre"],"outputs":{"value":"wheel.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":"body.on.host.seat.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"body.on.host.seat.y.t0.value"}},{"id":"body.on.host.pose.y.t0","op":"mul@1","args":["body.dimension.height","k.ratio.0_5"],"outputs":{"value":"body.on.host.pose.y.t0.value"}},{"id":"body.seat.rigid","op":"rigid@1","args":["d.mm.0","body.on.host.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"body.seat.value"},"params":{"from":"body.seat","to":"host.local"}},{"id":"body.chain","op":"compose@1","args":["body.seat.value","body.poseValue"],"outputs":{"pose":"body.chain.value"}},{"id":"body.world","op":"compose@1","args":["host.chain.value","body.chain.value"],"outputs":{"pose":"body.world.value"}},{"id":"stem.on.body.seat.y.t0","op":"mul@1","args":["body.dimension.height","k.ratio.0_5"],"outputs":{"value":"stem.on.body.seat.y.t0.value"}},{"id":"stem.on.body.pose.y.t0","op":"mul@1","args":["stem.dimension.length","k.ratio.0_5"],"outputs":{"value":"stem.on.body.pose.y.t0.value"}},{"id":"stem.seat.rigid","op":"rigid@1","args":["d.mm.0","stem.on.body.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"stem.seat.value"},"params":{"from":"stem.seat","to":"body.local"}},{"id":"stem.chain","op":"compose@1","args":["stem.seat.value","stem.poseValue"],"outputs":{"pose":"stem.chain.value"}},{"id":"stem.world","op":"compose@1","args":["body.world.value","stem.chain.value"],"outputs":{"pose":"stem.world.value"}},{"id":"wheel.on.stem.seat.y.t0","op":"mul@1","args":["stem.dimension.length","k.ratio.0_5"],"outputs":{"value":"wheel.on.stem.seat.y.t0.value"}},{"id":"wheel.on.stem.pose.y.t0","op":"mul@1","args":["wheel.dimension.length","k.ratio.0_5"],"outputs":{"value":"wheel.on.stem.pose.y.t0.value"}},{"id":"wheel.seat.rigid","op":"rigid@1","args":["d.mm.0","wheel.on.stem.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"wheel.seat.value"},"params":{"from":"wheel.joint","to":"stem.local"}},{"id":"wheel.chain","op":"compose@1","args":["wheel.seat.value","wheel.turned.value"],"outputs":{"pose":"wheel.chain.value"}},{"id":"wheel.world","op":"compose@1","args":["stem.world.value","wheel.chain.value"],"outputs":{"pose":"wheel.world.value"}},{"id":"wheel.motion","op":"axis-turn@1","args":["axis.ratio.0","axis.ratio.1","axis.ratio.0","turn"],"outputs":{"pose":"wheel.motion.value"},"params":{"from":"wheel.seat","to":"wheel.joint"}},{"id":"wheel.turned","op":"compose@1","args":["wheel.motion.value","wheel.poseValue"],"outputs":{"pose":"wheel.turned.value"}}]},"capabilities":{"version":"r3-capability-3","assetFrame":"asset","bindings":[]}},"designInputs":{"host.size.x":3000,"host.size.y":700,"host.size.z":800,"body.dimension.width":150,"body.dimension.height":150,"body.dimension.depth":150,"stem.dimension.radius":12,"stem.dimension.length":120,"wheel.dimension.radius":120,"wheel.dimension.length":20},"stateDefaults":{"turn":0},"palette":{"palette.primary":"#477b9e","palette.host":"#d9dde2","palette.tpl-8e9aa6":"#8e9aa6","palette.tpl-d0d4d8":"#d0d4d8","palette.tpl-d62828":"#d62828"},"appearance":[{"target":"host","material":{"token":"palette.host"}},{"target":"body","material":{"token":"palette.tpl-8e9aa6"}},{"target":"stem","material":{"token":"palette.tpl-d0d4d8"},"segments":12},{"target":"wheel","material":{"token":"palette.tpl-d62828"},"segments":12}],"joints":[{"id":"host","
|
|
1
|
+
{"version":"figure-asset-1","name":"TPL_VALVE_HANDLE","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":"body.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"body.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"body.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"stem.dimension.radius","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"stem.dimension.length","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"wheel.dimension.radius","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"wheel.dimension.length","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"turn","unit":"deg","min":0,"max":360,"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":"body.k.centre","unit":"ratio","value":-0.5},{"id":"stem.k.centre","unit":"ratio","value":-0.5},{"id":"wheel.k.centre","unit":"ratio","value":-0.5},{"id":"axis.ratio.0","unit":"ratio","value":0},{"id":"axis.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.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":"body.shape","op":"extrude@1","args":["body.start.value","body.dimension.height","body.dimension.width","body.dimension.depth"],"outputs":{"shape":"body.shapeValue"},"params":{"frame":"body.local","axis":"y","section":"rectangle"}},{"id":"body.pose","op":"rigid@1","args":["d.mm.0","body.on.host.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"body.poseValue"},"params":{"from":"body.local","to":"body.seat"}},{"id":"body","op":"place@1","args":["body.shapeValue","body.world.value"],"outputs":{"placed":"body.placed"}},{"id":"body.start","op":"mul@1","args":["body.dimension.height","body.k.centre"],"outputs":{"value":"body.start.value"}},{"id":"stem.shape","op":"extrude@1","args":["stem.start.value","stem.dimension.length","stem.dimension.radius","stem.dimension.radius"],"outputs":{"shape":"stem.shapeValue"},"params":{"frame":"stem.local","axis":"y","section":"ellipse"}},{"id":"stem.pose","op":"rigid@1","args":["d.mm.0","stem.on.body.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"stem.poseValue"},"params":{"from":"stem.local","to":"stem.seat"}},{"id":"stem","op":"place@1","args":["stem.shapeValue","stem.world.value"],"outputs":{"placed":"stem.placed"}},{"id":"stem.start","op":"mul@1","args":["stem.dimension.length","stem.k.centre"],"outputs":{"value":"stem.start.value"}},{"id":"wheel.shape","op":"extrude@1","args":["wheel.start.value","wheel.dimension.length","wheel.dimension.radius","wheel.dimension.radius"],"outputs":{"shape":"wheel.shapeValue"},"params":{"frame":"wheel.local","axis":"y","section":"ellipse"}},{"id":"wheel.pose","op":"rigid@1","args":["d.mm.0","wheel.on.stem.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"wheel.poseValue"},"params":{"from":"wheel.local","to":"wheel.seat"}},{"id":"wheel","op":"place@1","args":["wheel.shapeValue","wheel.world.value"],"outputs":{"placed":"wheel.placed"}},{"id":"wheel.start","op":"mul@1","args":["wheel.dimension.length","wheel.k.centre"],"outputs":{"value":"wheel.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":"body.on.host.seat.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"body.on.host.seat.y.t0.value"}},{"id":"body.on.host.pose.y.t0","op":"mul@1","args":["body.dimension.height","k.ratio.0_5"],"outputs":{"value":"body.on.host.pose.y.t0.value"}},{"id":"body.seat.rigid","op":"rigid@1","args":["d.mm.0","body.on.host.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"body.seat.value"},"params":{"from":"body.seat","to":"host.local"}},{"id":"body.chain","op":"compose@1","args":["body.seat.value","body.poseValue"],"outputs":{"pose":"body.chain.value"}},{"id":"body.world","op":"compose@1","args":["host.chain.value","body.chain.value"],"outputs":{"pose":"body.world.value"}},{"id":"stem.on.body.seat.y.t0","op":"mul@1","args":["body.dimension.height","k.ratio.0_5"],"outputs":{"value":"stem.on.body.seat.y.t0.value"}},{"id":"stem.on.body.pose.y.t0","op":"mul@1","args":["stem.dimension.length","k.ratio.0_5"],"outputs":{"value":"stem.on.body.pose.y.t0.value"}},{"id":"stem.seat.rigid","op":"rigid@1","args":["d.mm.0","stem.on.body.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"stem.seat.value"},"params":{"from":"stem.seat","to":"body.local"}},{"id":"stem.chain","op":"compose@1","args":["stem.seat.value","stem.poseValue"],"outputs":{"pose":"stem.chain.value"}},{"id":"stem.world","op":"compose@1","args":["body.world.value","stem.chain.value"],"outputs":{"pose":"stem.world.value"}},{"id":"wheel.on.stem.seat.y.t0","op":"mul@1","args":["stem.dimension.length","k.ratio.0_5"],"outputs":{"value":"wheel.on.stem.seat.y.t0.value"}},{"id":"wheel.on.stem.pose.y.t0","op":"mul@1","args":["wheel.dimension.length","k.ratio.0_5"],"outputs":{"value":"wheel.on.stem.pose.y.t0.value"}},{"id":"wheel.seat.rigid","op":"rigid@1","args":["d.mm.0","wheel.on.stem.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"wheel.seat.value"},"params":{"from":"wheel.joint","to":"stem.local"}},{"id":"wheel.chain","op":"compose@1","args":["wheel.seat.value","wheel.turned.value"],"outputs":{"pose":"wheel.chain.value"}},{"id":"wheel.world","op":"compose@1","args":["stem.world.value","wheel.chain.value"],"outputs":{"pose":"wheel.world.value"}},{"id":"wheel.motion","op":"axis-turn@1","args":["axis.ratio.0","axis.ratio.1","axis.ratio.0","turn"],"outputs":{"pose":"wheel.motion.value"},"params":{"from":"wheel.seat","to":"wheel.joint"}},{"id":"wheel.turned","op":"compose@1","args":["wheel.motion.value","wheel.poseValue"],"outputs":{"pose":"wheel.turned.value"}}]},"capabilities":{"version":"r3-capability-3","assetFrame":"asset","bindings":[]}},"designInputs":{"host.size.x":3000,"host.size.y":700,"host.size.z":800,"body.dimension.width":150,"body.dimension.height":150,"body.dimension.depth":150,"stem.dimension.radius":12,"stem.dimension.length":120,"wheel.dimension.radius":120,"wheel.dimension.length":20},"stateDefaults":{"turn":0},"palette":{"palette.primary":"#477b9e","palette.host":"#d9dde2","palette.tpl-8e9aa6":"#8e9aa6","palette.tpl-d0d4d8":"#d0d4d8","palette.tpl-d62828":"#d62828"},"appearance":[{"target":"host","material":{"token":"palette.host"}},{"target":"body","material":{"token":"palette.tpl-8e9aa6"}},{"target":"stem","material":{"token":"palette.tpl-d0d4d8"},"segments":12},{"target":"wheel","material":{"token":"palette.tpl-d62828"},"segments":12}],"joints":[{"id":"host","body0":{"plane":"mounting-plane"},"body1":{"part":"host"},"origin":{}},{"id":"body","body0":{"part":"host","face":"top"},"body1":{"part":"body"},"origin":{}},{"id":"stem","body0":{"part":"body","face":"top"},"body1":{"part":"stem"},"origin":{}},{"id":"wheel","body0":{"part":"stem","face":"top"},"body1":{"part":"wheel"},"origin":{},"motion":[{"type":"revolute","axis":"Y","lowerLimit":0,"upperLimit":360,"state":{"id":"turn"}}]}]}
|
|
@@ -55,7 +55,6 @@
|
|
|
55
55
|
"kind": "set-joint",
|
|
56
56
|
"joint": {
|
|
57
57
|
"id": "{id}-body",
|
|
58
|
-
"type": "fixed",
|
|
59
58
|
"body0": {
|
|
60
59
|
"part": "{target}",
|
|
61
60
|
"face": "top"
|
|
@@ -70,7 +69,6 @@
|
|
|
70
69
|
"kind": "set-joint",
|
|
71
70
|
"joint": {
|
|
72
71
|
"id": "{id}-stem",
|
|
73
|
-
"type": "fixed",
|
|
74
72
|
"body0": {
|
|
75
73
|
"part": "{id}-body",
|
|
76
74
|
"face": "top"
|
|
@@ -85,7 +83,6 @@
|
|
|
85
83
|
"kind": "set-joint",
|
|
86
84
|
"joint": {
|
|
87
85
|
"id": "{id}-wheel",
|
|
88
|
-
"type": "revolute",
|
|
89
86
|
"body0": {
|
|
90
87
|
"part": "{id}-stem",
|
|
91
88
|
"face": "top"
|
|
@@ -94,12 +91,17 @@
|
|
|
94
91
|
"part": "{id}-wheel"
|
|
95
92
|
},
|
|
96
93
|
"origin": {},
|
|
97
|
-
"
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
94
|
+
"motion": [
|
|
95
|
+
{
|
|
96
|
+
"type": "revolute",
|
|
97
|
+
"axis": "Y",
|
|
98
|
+
"lowerLimit": 0,
|
|
99
|
+
"upperLimit": 360,
|
|
100
|
+
"state": {
|
|
101
|
+
"id": "{id}-turn"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
]
|
|
103
105
|
}
|
|
104
106
|
},
|
|
105
107
|
{
|
|
@@ -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","
|
|
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":{}}]}
|
|
@@ -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","
|
|
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
|
-
"
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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","
|
|
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":{}}]}
|
|
@@ -121,7 +121,7 @@ describe('태그가 정말 써진다', () => {
|
|
|
121
121
|
expect((await readBack(saved.id))!.tags).toEqual([])
|
|
122
122
|
})
|
|
123
123
|
|
|
124
|
-
it('안 준
|
|
124
|
+
it('안 준 피규어는 태그가 없다 — 빈 배열로 갈음하지 않는다', async () => {
|
|
125
125
|
const saved = await seed()
|
|
126
126
|
|
|
127
127
|
expect((await readBack(saved.id))!.tags).toBeNull()
|
|
@@ -8,14 +8,14 @@ import { FigureHistory } from './figure-history.js'
|
|
|
8
8
|
/**
|
|
9
9
|
* 판본을 남긴다 — **발행된 저장에만.**
|
|
10
10
|
*
|
|
11
|
-
* `@operato/typeorm-history` 는 원래 모든 저장을 베낀다. 그런데
|
|
11
|
+
* `@operato/typeorm-history` 는 원래 모든 저장을 베낀다. 그런데 피규어는 저작 중에 수십 번 저장되고,
|
|
12
12
|
* 그 전부를 남기면 판본 목록이 「내가 오늘 몇 번 눌렀나」가 된다. 사람이 판이라고 부르는 것은
|
|
13
13
|
* **발행한 것**이므로 그때만 베낀다. board 가 같은 규칙으로 돈다(`board-service` 의 같은 이름 파일).
|
|
14
14
|
*
|
|
15
15
|
* 발행판의 정본(`__releaseSource`)은 크기 범위를 적은 발행판 사본이다 — Figure 행에는 작성자가 좁힌 끝만 남는다.
|
|
16
16
|
*
|
|
17
17
|
* 발행 메모는 Figure 의 칸이 아니다. `releaseFigure` 가 저장할 엔티티에 `__releaseComment` 로 얹어
|
|
18
|
-
* 두면 여기서 판본의 `comment` 로 옮긴다 — 메모는 그 판의 것이지
|
|
18
|
+
* 두면 여기서 판본의 `comment` 로 옮긴다 — 메모는 그 판의 것이지 피규어의 것이 아니다. 정본 형식
|
|
19
19
|
* (`__releaseFormat`), 잰 커널의 판(`__releaseKernel`, ADR-0109 C1), 직전 판에 견준 변경(`__releaseChanges`), 발행 때 잰 값(`__releaseMetrics`)과
|
|
20
20
|
* 윗모습(`__releaseTopView`)도 같은 길로 옮긴다(ADR-0104).
|
|
21
21
|
*/
|
|
@@ -100,7 +100,7 @@ describe('figureBlueprint 질의 — 소비처(board, twin, things-scene)에 발
|
|
|
100
100
|
await repo.save({
|
|
101
101
|
domain: testDomain,
|
|
102
102
|
type: 'DRAFT_FIGURE',
|
|
103
|
-
name: '초안
|
|
103
|
+
name: '초안 피규어',
|
|
104
104
|
state: 'draft',
|
|
105
105
|
source: sampleSource,
|
|
106
106
|
version: 0
|
|
@@ -116,7 +116,7 @@ describe('figureBlueprint 질의 — 소비처(board, twin, things-scene)에 발
|
|
|
116
116
|
await repo.save({
|
|
117
117
|
domain: testDomain,
|
|
118
118
|
type: 'RELEASED_FIGURE',
|
|
119
|
-
name: '발행
|
|
119
|
+
name: '발행 피규어',
|
|
120
120
|
state: 'released',
|
|
121
121
|
source: sampleSource,
|
|
122
122
|
version: 1
|
|
@@ -141,7 +141,7 @@ describe('figureBlueprint 질의 — 소비처(board, twin, things-scene)에 발
|
|
|
141
141
|
const figure = await repo.save({
|
|
142
142
|
domain: testDomain,
|
|
143
143
|
type: 'UPDATING_FIGURE',
|
|
144
|
-
name: '수정 중인
|
|
144
|
+
name: '수정 중인 피규어',
|
|
145
145
|
state: 'draft',
|
|
146
146
|
source: draftSource,
|
|
147
147
|
version: 1
|
|
@@ -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'
|
|
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',
|
|
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',
|
|
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
|
|
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
|
-
|
|
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
|
}
|
|
@@ -158,8 +158,8 @@ describe('figure-format — 판을 알아보는 문', () => {
|
|
|
158
158
|
})
|
|
159
159
|
|
|
160
160
|
/*
|
|
161
|
-
(2026-09-24) 드라이룸 램프처럼 — 붙어 있던 부품이
|
|
162
|
-
여기서는 손으로 만든다: 램프의 높이가
|
|
161
|
+
(2026-09-24) 드라이룸 램프처럼 — 붙어 있던 부품이 피규어를 키우면 떨어진다.
|
|
162
|
+
여기서는 손으로 만든다: 램프의 높이가 피규어 높이(size.y)를 따라 올라가고, 몸통은 그대로다.
|
|
163
163
|
*/
|
|
164
164
|
const splitting = () => {
|
|
165
165
|
let asset = createFigureAsset('Lamp post')
|
|
@@ -185,8 +185,8 @@ describe('figure-format — 판을 알아보는 문', () => {
|
|
|
185
185
|
expect(`${finding!.message}${finding!.why}${finding!.how}`).not.toMatch(/come away|piece/)
|
|
186
186
|
})
|
|
187
187
|
|
|
188
|
-
/* 한 비율로 커진다고 선언한
|
|
189
|
-
it('한 비율로 커진다고 선언한
|
|
188
|
+
/* 한 비율로 커진다고 선언한 피규어에서 제 숫자를 가진 부품(수석 아키텍트 판정 2026-09-24 조건 ②). */
|
|
189
|
+
it('한 비율로 커진다고 선언한 피규어에서 따라 커지지 않는 부품을 막고 이름을 댄다', () => {
|
|
190
190
|
let asset = createFigureAsset('Uniform')
|
|
191
191
|
asset = addFigureBox(asset, { id: 'body', size: { x: 100, y: 100, z: 100 }, position: { x: 0, y: 50, z: 0 } })
|
|
192
192
|
for (const axis of ['x', 'y', 'z']) {
|
|
@@ -197,7 +197,7 @@ describe('figure-format — 판을 알아보는 문', () => {
|
|
|
197
197
|
const finding = inspectSource(serializeFigureAsset(asset), null, translatorOf(KO)).findings.find(f => f.code === 'sizing-not-uniform')
|
|
198
198
|
|
|
199
199
|
expect(finding?.blocking).toBe(true)
|
|
200
|
-
expect(finding!.message).toBe("이
|
|
200
|
+
expect(finding!.message).toBe("이 피규어는 한 비율로 커지는데, 크기를 X 로 2배로 하면 'body' 부품은 같이 커지지 않습니다.")
|
|
201
201
|
expect(finding!.how).toContain('크기에 비례')
|
|
202
202
|
})
|
|
203
203
|
|
|
@@ -234,10 +234,10 @@ describe('figure-format — 판을 알아보는 문', () => {
|
|
|
234
234
|
})
|
|
235
235
|
|
|
236
236
|
/*
|
|
237
|
-
자산에는 type 이 없어 임시 이름 검사가 돌지 않았고, 새
|
|
237
|
+
자산에는 type 이 없어 임시 이름 검사가 돌지 않았고, 새 피규어가 `FIGURE_<uuid>` 로 발행됐다(:3300, 2026-09-24).
|
|
238
238
|
발행하면 이름이 굳으므로 행의 type 으로 거절한다.
|
|
239
239
|
*/
|
|
240
|
-
it('임시 이름인
|
|
240
|
+
it('임시 이름인 피규어는 발행을 막는다 — 이름은 행에 있다', () => {
|
|
241
241
|
/* The name a new figure gets — the format's rule, the one the gate recognises. */
|
|
242
242
|
const placeholder = placeholderType()
|
|
243
243
|
const finding = inspectSource(figureSource(), null, translatorOf(KO), placeholder).findings.find(f => f.code === 'type-is-placeholder')
|
|
@@ -107,7 +107,7 @@ function assertFormat(sourceJson: string): void {
|
|
|
107
107
|
}
|
|
108
108
|
if ((parsed as { version?: unknown } | null)?.version !== FIGURE_ASSET_VERSION)
|
|
109
109
|
throw new FigureSourceError([
|
|
110
|
-
{ code: 'source-format-unknown', message: `정본의 판을 알 수 없다 —
|
|
110
|
+
{ code: 'source-format-unknown', message: `정본의 판을 알 수 없다 — 피규어 자산은 version '${FIGURE_ASSET_VERSION}' 을 적는다`, at: 'version' }
|
|
111
111
|
])
|
|
112
112
|
}
|
|
113
113
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* 실제 LLM Figure 후보 생성 smoke test (기본 비활성).
|
|
3
3
|
*
|
|
4
4
|
* 결정적 시험은 프롬프트·도구·검사 배선을 고정하지만, 실제 모델이 명령 목록(ADR-0094)을 써서 게이트를
|
|
5
|
-
* 지나는
|
|
5
|
+
* 지나는 피규어를 만드는지는 대신할 수 없다. 이 시험은 `RUN_FIGURE_LLM_SMOKE=1`과 공급자 API 키가 모두 있을 때만 실행한다.
|
|
6
6
|
* DB·GraphQL·Figure 저장을 건드리지 않고 후보 생성 함수만 호출하므로, 외부 영향은 API 비용뿐이다.
|
|
7
7
|
*
|
|
8
8
|
* 실행:
|
|
@@ -273,7 +273,7 @@ export class FigureMutation {
|
|
|
273
273
|
**타입은 발행 전에만 바뀐다** — ADR-0063 결정 4.
|
|
274
274
|
|
|
275
275
|
발행된 뒤에는 이미 배치된 도면이 이 이름을 가리키고, 바꾸면 그 도면이 아무 오류 없이
|
|
276
|
-
빈 자리가 된다. 발행된 적 없는
|
|
276
|
+
빈 자리가 된다. 발행된 적 없는 피규어는 가리키는 도면이 있을 수 없다 — 도면은 최신
|
|
277
277
|
발행판을 그리므로 그려질 자리가 없다.
|
|
278
278
|
|
|
279
279
|
행과 정본 둘 다 고친다. 정본 안에도 `type` 이 있어서 한쪽만 고치면 저장된 JSON 과
|
|
@@ -358,7 +358,7 @@ export class FigureMutation {
|
|
|
358
358
|
*
|
|
359
359
|
* ## 무엇이 일어나나
|
|
360
360
|
*
|
|
361
|
-
* `state` 가 `released` 가 되고, 판 번호가 하나 오르고, 그 순간의
|
|
361
|
+
* `state` 가 `released` 가 되고, 판 번호가 하나 오르고, 그 순간의 피규어가 판본으로 남는다
|
|
362
362
|
* (`FigureHistory` — 스냅샷은 구독자가 뜬다). 저작 중 저장은 이 셋 중 아무것도 하지 않는다.
|
|
363
363
|
*
|
|
364
364
|
* ## 왜 이미 발행된 것을 거절하나
|
|
@@ -368,12 +368,12 @@ export class FigureMutation {
|
|
|
368
368
|
*
|
|
369
369
|
* ## 번호는 판본에서 센다
|
|
370
370
|
*
|
|
371
|
-
*
|
|
371
|
+
* 피규어의 현재 번호가 아니라 **판본의 최대 번호 + 1** 이다. 되돌리기로 옛 판이 현재가 되어도
|
|
372
372
|
* 다음 발행이 이미 쓴 번호를 다시 쓰지 않는다.
|
|
373
373
|
*
|
|
374
374
|
* ## 게이트를 통과해야 한다
|
|
375
375
|
*
|
|
376
|
-
* 크기를 바꿨을 때 조각이 갈라지는
|
|
376
|
+
* 크기를 바꿨을 때 조각이 갈라지는 피규어는 발행되지 않는다(`figure-gate.ts`). 소비처는 형상을
|
|
377
377
|
* 늘려 쓰므로 — 그것이 이 형식의 값이다 — 늘려도 견디는지가 약속의 일부다. 화면은 같은 판정을
|
|
378
378
|
* `inspectFigure` 로 미리 물어 이유를 보여 준다.
|
|
379
379
|
*/
|
|
@@ -473,7 +473,7 @@ export class FigureMutation {
|
|
|
473
473
|
*
|
|
474
474
|
* ## 비용은 다시 잰다
|
|
475
475
|
*
|
|
476
|
-
* 판본이 든 점수·삼각형은 **그때의 형식**으로 잰 값이다. 지금 이
|
|
476
|
+
* 판본이 든 점수·삼각형은 **그때의 형식**으로 잰 값이다. 지금 이 피규어가 그 내용이 되었으므로
|
|
477
477
|
* 오늘 기준으로 다시 계산한다. 옛 값은 판본에 그대로 남아 있다.
|
|
478
478
|
*/
|
|
479
479
|
@Directive('@transaction')
|
|
@@ -592,7 +592,7 @@ export class FigureMutation {
|
|
|
592
592
|
/**
|
|
593
593
|
* 저작 보조에게 제안을 시킨다(ADR-0094).
|
|
594
594
|
*
|
|
595
|
-
* **저장하지 않는다.** 모델러 명령 목록과 그것이 만드는
|
|
595
|
+
* **저장하지 않는다.** 모델러 명령 목록과 그것이 만드는 피규어를 돌려줄 뿐이고, 정본이 되는 것은 저작자가 모델러에
|
|
596
596
|
* 적용하고 저장한 뒤다. 커널이 거절한 명령이나 게이트가 잡은 것은 여기까지 오지 않는다 — 제안기가 사유를 모델에
|
|
597
597
|
* 돌려주고 다시 시킨다. 끝내 못 만들면 **사유와 함께 던진다.** 반쯤 만든 것을 돌려주지 않는다.
|
|
598
598
|
*/
|
|
@@ -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' }] }
|
|
@@ -256,8 +256,8 @@ describe('a failure told to a person', () => {
|
|
|
256
256
|
|
|
257
257
|
it('says the first line in the reader\'s language, the reasons as they were', () => {
|
|
258
258
|
const said: any[] = []
|
|
259
|
-
const text = proposalFailureForPerson(failure, (key, params) => (said.push([key, params]), '
|
|
260
|
-
expect(text).toBe('
|
|
259
|
+
const text = proposalFailureForPerson(failure, (key, params) => (said.push([key, params]), '피규어를 만들지 못했습니다.'))
|
|
260
|
+
expect(text).toBe('피규어를 만들지 못했습니다.\nATTACH_FACE: steps[4]: attach: faces along x')
|
|
261
261
|
expect(said).toEqual([['error.figure-proposal-failed', { defaultValue: 'The figure could not be made.' }]])
|
|
262
262
|
})
|
|
263
263
|
|