@things-factory/figure-service 10.1.203 → 10.1.205
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/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/recipes/_lib/model.mts +7 -0
- package/recipes/safety-sign-stand/build.mts +2 -1
- package/recipes/safety-sign-stand/models/default.json +1 -1
- package/recipes/safety-sign-stand/recipe.json +5 -6
- package/recipes/turntable/models/default.json +1 -1
- package/server/service/figure/figure-llm-smoke.test.ts +2 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/figure-service",
|
|
3
|
-
"version": "10.1.
|
|
3
|
+
"version": "10.1.205",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"@things-factory:registry": "https://registry.npmjs.org"
|
|
@@ -25,18 +25,18 @@
|
|
|
25
25
|
"test:templates": "node --test scripts/templates.test.mts"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@hatiolab/figure-model": "^0.9.
|
|
28
|
+
"@hatiolab/figure-model": "^0.9.5",
|
|
29
29
|
"@operato/typeorm-history": "^10.0.0",
|
|
30
|
-
"@things-factory/ai-client-base": "^10.1.
|
|
31
|
-
"@things-factory/attachment-base": "^10.1.
|
|
32
|
-
"@things-factory/auth-base": "^10.1.
|
|
30
|
+
"@things-factory/ai-client-base": "^10.1.205",
|
|
31
|
+
"@things-factory/attachment-base": "^10.1.205",
|
|
32
|
+
"@things-factory/auth-base": "^10.1.205",
|
|
33
33
|
"@things-factory/env": "^10.1.149",
|
|
34
|
-
"@things-factory/setting-base": "^10.1.
|
|
35
|
-
"@things-factory/shell": "^10.1.
|
|
34
|
+
"@things-factory/setting-base": "^10.1.205",
|
|
35
|
+
"@things-factory/shell": "^10.1.205",
|
|
36
36
|
"graphql-scalars": "^1.22.4",
|
|
37
37
|
"graphql-upload": "^15.0.2",
|
|
38
38
|
"jszip": "^3.10.1",
|
|
39
39
|
"koa-router": "^7.4.0"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "7311492aa5eaa00993c0325053f5f7ae8b1fb024"
|
|
42
42
|
}
|
package/recipes/_lib/model.mts
CHANGED
|
@@ -40,6 +40,13 @@ export class Model {
|
|
|
40
40
|
on(part: string, to: string, toFace: string, align?: Record<string, unknown>, gap?: number): this {
|
|
41
41
|
return this.do({ kind: 'attach', part, to: { part: to, face: toFace }, ...(align ? { align } : {}), ...(gap ? { gap } : {}) } as FigureAuthoringAction)
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Fastened to a point on another part's curved surface (ADR-0140 3.9): on a cylinder's side `around` its push axis in
|
|
45
|
+
* degrees and `along` it, on a sphere `toward` its outward normal there.
|
|
46
|
+
*/
|
|
47
|
+
onSurface(part: string, to: string, surface: Record<string, unknown>): this {
|
|
48
|
+
return this.do({ kind: 'attach', part, to: { part: to, surface } } as FigureAuthoringAction)
|
|
49
|
+
}
|
|
43
50
|
/**
|
|
44
51
|
* A part's colour. The palette is the figure's, shared by every template put into it: a token named for its value
|
|
45
52
|
* (`palette.tpl-5c7c96`) means two templates never recolour each other's parts. The name given says what it is for.
|
|
@@ -10,7 +10,8 @@ export default function build() {
|
|
|
10
10
|
.on('post', 'base', 'top')
|
|
11
11
|
.colour('post', 'rail', '#9aa3ab')
|
|
12
12
|
.box('sign', 450, 450, 10)
|
|
13
|
-
|
|
13
|
+
/* On the post's side facing +Z (270° round its push Y), level with its top. */
|
|
14
|
+
.onSurface('sign', 'post', { around: 270, along: 'max' })
|
|
14
15
|
.colour('sign', 'sign-yellow', '#f2c200')
|
|
15
16
|
return m.asset
|
|
16
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"figure-asset-1","name":"TPL_SAFETY_SIGN_STAND","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":"base.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"base.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"base.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"post.dimension.radius","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"post.dimension.length","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"sign.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"sign.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"sign.dimension.depth","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":"base.k.centre","unit":"ratio","value":-0.5},{"id":"post.k.centre","unit":"ratio","value":-0.5},{"id":"sign.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":"base.shape","op":"extrude@1","args":["base.start.value","base.dimension.height","base.dimension.width","base.dimension.depth"],"outputs":{"shape":"base.shapeValue"},"params":{"frame":"base.local","axis":"y","section":"rectangle"}},{"id":"base.pose","op":"rigid@1","args":["d.mm.0","base.on.host.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"base.poseValue"},"params":{"from":"base.local","to":"base.seat"}},{"id":"base","op":"place@1","args":["base.shapeValue","base.world.value"],"outputs":{"placed":"base.placed"}},{"id":"base.start","op":"mul@1","args":["base.dimension.height","base.k.centre"],"outputs":{"value":"base.start.value"}},{"id":"post.shape","op":"extrude@1","args":["post.start.value","post.dimension.length","post.dimension.radius","post.dimension.radius"],"outputs":{"shape":"post.shapeValue"},"params":{"frame":"post.local","axis":"y","section":"ellipse"}},{"id":"post.pose","op":"rigid@1","args":["d.mm.0","post.on.base.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"post.poseValue"},"params":{"from":"post.local","to":"post.seat"}},{"id":"post","op":"place@1","args":["post.shapeValue","post.world.value"],"outputs":{"placed":"post.placed"}},{"id":"post.start","op":"mul@1","args":["post.dimension.length","post.k.centre"],"outputs":{"value":"post.start.value"}},{"id":"sign.shape","op":"extrude@1","args":["sign.start.value","sign.dimension.height","sign.dimension.width","sign.dimension.depth"],"outputs":{"shape":"sign.shapeValue"},"params":{"frame":"sign.local","axis":"y","section":"rectangle"}},{"id":"sign.pose","op":"rigid@1","args":["d.mm.0","sign.on.post.pose.y.t0.value","sign.on.post.pose.z.t0.value","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"sign.poseValue"},"params":{"from":"sign.local","to":"sign.seat"}},{"id":"sign","op":"place@1","args":["sign.shapeValue","sign.world.value"],"outputs":{"placed":"sign.placed"}},{"id":"sign.start","op":"mul@1","args":["sign.dimension.height","sign.k.centre"],"outputs":{"value":"sign.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":"base.on.host.seat.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"base.on.host.seat.y.t0.value"}},{"id":"base.on.host.pose.y.t0","op":"mul@1","args":["base.dimension.height","k.ratio.0_5"],"outputs":{"value":"base.on.host.pose.y.t0.value"}},{"id":"base.seat.rigid","op":"rigid@1","args":["d.mm.0","base.on.host.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"base.seat.value"},"params":{"from":"base.seat","to":"host.local"}},{"id":"base.chain","op":"compose@1","args":["base.seat.value","base.poseValue"],"outputs":{"pose":"base.chain.value"}},{"id":"base.world","op":"compose@1","args":["host.chain.value","base.chain.value"],"outputs":{"pose":"base.world.value"}},{"id":"post.on.base.seat.y.t0","op":"mul@1","args":["base.dimension.height","k.ratio.0_5"],"outputs":{"value":"post.on.base.seat.y.t0.value"}},{"id":"post.on.base.pose.y.t0","op":"mul@1","args":["post.dimension.length","k.ratio.0_5"],"outputs":{"value":"post.on.base.pose.y.t0.value"}},{"id":"post.seat.rigid","op":"rigid@1","args":["d.mm.0","post.on.base.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"post.seat.value"},"params":{"from":"post.seat","to":"base.local"}},{"id":"post.chain","op":"compose@1","args":["post.seat.value","post.poseValue"],"outputs":{"pose":"post.chain.value"}},{"id":"post.world","op":"compose@1","args":["base.world.value","post.chain.value"],"outputs":{"pose":"post.world.value"}},{"id":"sign.on.post.seat.y.t0","op":"mul@1","args":["post.dimension.length","k.ratio.0_5"],"outputs":{"value":"sign.on.post.seat.y.t0.value"}},{"id":"sign.on.post.pose.y.t0","op":"mul@1","args":["sign.dimension.height","host.k.centre"],"outputs":{"value":"sign.on.post.pose.y.t0.value"}},{"id":"sign.on.post.pose.z.t0","op":"mul@1","args":["sign.dimension.depth","k.ratio.0_5"],"outputs":{"value":"sign.on.post.pose.z.t0.value"}},{"id":"sign.seat.rigid","op":"rigid@1","args":["d.mm.0","sign.on.post.seat.y.t0.value","post.dimension.radius","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"sign.seat.value"},"params":{"from":"sign.seat","to":"post.local"}},{"id":"sign.chain","op":"compose@1","args":["sign.seat.value","sign.poseValue"],"outputs":{"pose":"sign.chain.value"}},{"id":"sign.world","op":"compose@1","args":["post.world.value","sign.chain.value"],"outputs":{"pose":"sign.world.value"}}]},"capabilities":{"version":"r3-capability-3","assetFrame":"asset","bindings":[]}},"designInputs":{"host.size.x":3000,"host.size.y":50,"host.size.z":2000,"base.dimension.width":400,"base.dimension.height":30,"base.dimension.depth":300,"post.dimension.radius":20,"post.dimension.length":1100,"sign.dimension.width":450,"sign.dimension.height":450,"sign.dimension.depth":10},"stateDefaults":{},"palette":{"palette.primary":"#477b9e","palette.host":"#d9dde2","palette.tpl-2f3437":"#2f3437","palette.tpl-9aa3ab":"#9aa3ab","palette.tpl-f2c200":"#f2c200"},"appearance":[{"target":"host","material":{"token":"palette.host"}},{"target":"base","material":{"token":"palette.tpl-2f3437"}},{"target":"post","material":{"token":"palette.tpl-9aa3ab"},"segments":12},{"target":"sign","material":{"token":"palette.tpl-f2c200"}}],"joints":[{"id":"host","type":"fixed","body0":{"plane":"mounting-plane"},"body1":{"part":"host"},"origin":{}},{"id":"base","type":"fixed","body0":{"part":"host","face":"top"},"body1":{"part":"base"},"origin":{}},{"id":"post","type":"fixed","body0":{"part":"base","face":"top"},"body1":{"part":"post"},"origin":{}},{"id":"sign","type":"fixed","body0":{"part":"post","
|
|
1
|
+
{"version":"figure-asset-1","name":"TPL_SAFETY_SIGN_STAND","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":"base.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"base.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"base.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"post.dimension.radius","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"post.dimension.length","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"sign.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"sign.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"sign.dimension.depth","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":"base.k.centre","unit":"ratio","value":-0.5},{"id":"post.k.centre","unit":"ratio","value":-0.5},{"id":"sign.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":"base.shape","op":"extrude@1","args":["base.start.value","base.dimension.height","base.dimension.width","base.dimension.depth"],"outputs":{"shape":"base.shapeValue"},"params":{"frame":"base.local","axis":"y","section":"rectangle"}},{"id":"base.pose","op":"rigid@1","args":["d.mm.0","base.on.host.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"base.poseValue"},"params":{"from":"base.local","to":"base.seat"}},{"id":"base","op":"place@1","args":["base.shapeValue","base.world.value"],"outputs":{"placed":"base.placed"}},{"id":"base.start","op":"mul@1","args":["base.dimension.height","base.k.centre"],"outputs":{"value":"base.start.value"}},{"id":"post.shape","op":"extrude@1","args":["post.start.value","post.dimension.length","post.dimension.radius","post.dimension.radius"],"outputs":{"shape":"post.shapeValue"},"params":{"frame":"post.local","axis":"y","section":"ellipse"}},{"id":"post.pose","op":"rigid@1","args":["d.mm.0","post.on.base.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"post.poseValue"},"params":{"from":"post.local","to":"post.seat"}},{"id":"post","op":"place@1","args":["post.shapeValue","post.world.value"],"outputs":{"placed":"post.placed"}},{"id":"post.start","op":"mul@1","args":["post.dimension.length","post.k.centre"],"outputs":{"value":"post.start.value"}},{"id":"sign.shape","op":"extrude@1","args":["sign.start.value","sign.dimension.height","sign.dimension.width","sign.dimension.depth"],"outputs":{"shape":"sign.shapeValue"},"params":{"frame":"sign.local","axis":"y","section":"rectangle"}},{"id":"sign.pose","op":"rigid@1","args":["d.mm.0","sign.on.post.pose.y.t0.value","sign.on.post.pose.z.t0.value","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"sign.poseValue"},"params":{"from":"sign.local","to":"sign.seat"}},{"id":"sign","op":"place@1","args":["sign.shapeValue","sign.world.value"],"outputs":{"placed":"sign.placed"}},{"id":"sign.start","op":"mul@1","args":["sign.dimension.height","sign.k.centre"],"outputs":{"value":"sign.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":"base.on.host.seat.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"base.on.host.seat.y.t0.value"}},{"id":"base.on.host.pose.y.t0","op":"mul@1","args":["base.dimension.height","k.ratio.0_5"],"outputs":{"value":"base.on.host.pose.y.t0.value"}},{"id":"base.seat.rigid","op":"rigid@1","args":["d.mm.0","base.on.host.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"base.seat.value"},"params":{"from":"base.seat","to":"host.local"}},{"id":"base.chain","op":"compose@1","args":["base.seat.value","base.poseValue"],"outputs":{"pose":"base.chain.value"}},{"id":"base.world","op":"compose@1","args":["host.chain.value","base.chain.value"],"outputs":{"pose":"base.world.value"}},{"id":"post.on.base.seat.y.t0","op":"mul@1","args":["base.dimension.height","k.ratio.0_5"],"outputs":{"value":"post.on.base.seat.y.t0.value"}},{"id":"post.on.base.pose.y.t0","op":"mul@1","args":["post.dimension.length","k.ratio.0_5"],"outputs":{"value":"post.on.base.pose.y.t0.value"}},{"id":"post.seat.rigid","op":"rigid@1","args":["d.mm.0","post.on.base.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"post.seat.value"},"params":{"from":"post.seat","to":"base.local"}},{"id":"post.chain","op":"compose@1","args":["post.seat.value","post.poseValue"],"outputs":{"pose":"post.chain.value"}},{"id":"post.world","op":"compose@1","args":["base.world.value","post.chain.value"],"outputs":{"pose":"post.world.value"}},{"id":"sign.on.post.seat.y.t0","op":"mul@1","args":["post.dimension.length","k.ratio.0_5"],"outputs":{"value":"sign.on.post.seat.y.t0.value"}},{"id":"sign.on.post.pose.y.t0","op":"mul@1","args":["sign.dimension.height","host.k.centre"],"outputs":{"value":"sign.on.post.pose.y.t0.value"}},{"id":"sign.on.post.pose.z.t0","op":"mul@1","args":["sign.dimension.depth","k.ratio.0_5"],"outputs":{"value":"sign.on.post.pose.z.t0.value"}},{"id":"sign.seat.rigid","op":"rigid@1","args":["d.mm.0","sign.on.post.seat.y.t0.value","post.dimension.radius","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"sign.seat.value"},"params":{"from":"sign.seat","to":"post.local"}},{"id":"sign.chain","op":"compose@1","args":["sign.seat.value","sign.poseValue"],"outputs":{"pose":"sign.chain.value"}},{"id":"sign.world","op":"compose@1","args":["post.world.value","sign.chain.value"],"outputs":{"pose":"sign.world.value"}}]},"capabilities":{"version":"r3-capability-3","assetFrame":"asset","bindings":[]}},"designInputs":{"host.size.x":3000,"host.size.y":50,"host.size.z":2000,"base.dimension.width":400,"base.dimension.height":30,"base.dimension.depth":300,"post.dimension.radius":20,"post.dimension.length":1100,"sign.dimension.width":450,"sign.dimension.height":450,"sign.dimension.depth":10},"stateDefaults":{},"palette":{"palette.primary":"#477b9e","palette.host":"#d9dde2","palette.tpl-2f3437":"#2f3437","palette.tpl-9aa3ab":"#9aa3ab","palette.tpl-f2c200":"#f2c200"},"appearance":[{"target":"host","material":{"token":"palette.host"}},{"target":"base","material":{"token":"palette.tpl-2f3437"}},{"target":"post","material":{"token":"palette.tpl-9aa3ab"},"segments":12},{"target":"sign","material":{"token":"palette.tpl-f2c200"}}],"joints":[{"id":"host","type":"fixed","body0":{"plane":"mounting-plane"},"body1":{"part":"host"},"origin":{}},{"id":"base","type":"fixed","body0":{"part":"host","face":"top"},"body1":{"part":"base"},"origin":{}},{"id":"post","type":"fixed","body0":{"part":"base","face":"top"},"body1":{"part":"post"},"origin":{}},{"id":"sign","type":"fixed","body0":{"part":"post","surface":{"around":270,"along":"max"}},"body1":{"part":"sign"},"origin":{}}]}
|
|
@@ -90,16 +90,15 @@
|
|
|
90
90
|
"type": "fixed",
|
|
91
91
|
"body0": {
|
|
92
92
|
"part": "{id}-post",
|
|
93
|
-
"
|
|
93
|
+
"surface": {
|
|
94
|
+
"around": 270,
|
|
95
|
+
"along": "max"
|
|
96
|
+
}
|
|
94
97
|
},
|
|
95
98
|
"body1": {
|
|
96
99
|
"part": "{id}-sign"
|
|
97
100
|
},
|
|
98
|
-
"origin": {
|
|
99
|
-
"align": {
|
|
100
|
-
"y": "max"
|
|
101
|
-
}
|
|
102
|
-
}
|
|
101
|
+
"origin": {}
|
|
103
102
|
}
|
|
104
103
|
},
|
|
105
104
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"figure-asset-1","name":"TPL_TURNTABLE","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":"disc.dimension.length","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"mark.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"mark.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"mark.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"turn","unit":"deg","min":-180,"max":180,"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":"disc.k.centre","unit":"ratio","value":-0.5},{"id":"k.ratio.1","unit":"ratio","value":1},{"id":"k.ratio.0_45","unit":"ratio","value":0.45},{"id":"axis.ratio.0","unit":"ratio","value":0},{"id":"mark.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.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":"disc.shape","op":"extrude@1","args":["disc.start.value","disc.dimension.length","disc.dimension.x.value","disc.dimension.x.value"],"outputs":{"shape":"disc.shapeValue"},"params":{"frame":"disc.local","axis":"y","section":"ellipse"}},{"id":"disc.pose","op":"rigid@1","args":["d.mm.0","disc.on.host.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"disc.poseValue"},"params":{"from":"disc.local","to":"disc.seat"}},{"id":"disc","op":"place@1","args":["disc.shapeValue","disc.world.value"],"outputs":{"placed":"disc.placed"}},{"id":"disc.start","op":"mul@1","args":["disc.dimension.length","disc.k.centre"],"outputs":{"value":"disc.start.value"}},{"id":"disc.dimension.x","op":"mul@1","args":["disc.x.follows.times.value","k.ratio.1"],"outputs":{"value":"disc.dimension.x.value"}},{"id":"host.dimension.z","op":"mul@1","args":["host.size.z","k.ratio.1"],"outputs":{"value":"host.dimension.z.value"}},{"id":"disc.x.follows.times","op":"mul@1","args":["host.dimension.z.value","k.ratio.0_45"],"outputs":{"value":"disc.x.follows.times.value"}},{"id":"mark.shape","op":"extrude@1","args":["mark.start.value","mark.dimension.height","mark.dimension.width","mark.dimension.depth"],"outputs":{"shape":"mark.shapeValue"},"params":{"frame":"mark.local","axis":"y","section":"rectangle"}},{"id":"mark.pose","op":"rigid@1","args":["mark.on.disc.pose.x.t0.value","mark.on.disc.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"mark.poseValue"},"params":{"from":"mark.local","to":"mark.seat"}},{"id":"mark","op":"place@1","args":["mark.shapeValue","mark.world.value"],"outputs":{"placed":"mark.placed"}},{"id":"mark.start","op":"mul@1","args":["mark.dimension.height","mark.k.centre"],"outputs":{"value":"mark.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":"disc.on.host.seat.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"disc.on.host.seat.y.t0.value"}},{"id":"disc.on.host.pose.y.t0","op":"mul@1","args":["disc.dimension.length","k.ratio.0_5"],"outputs":{"value":"disc.on.host.pose.y.t0.value"}},{"id":"disc.seat.rigid","op":"rigid@1","args":["d.mm.0","disc.on.host.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"disc.seat.value"},"params":{"from":"disc.joint","to":"host.local"}},{"id":"disc.chain","op":"compose@1","args":["disc.seat.value","disc.turned.value"],"outputs":{"pose":"disc.chain.value"}},{"id":"disc.world","op":"compose@1","args":["host.chain.value","disc.chain.value"],"outputs":{"pose":"disc.world.value"}},{"id":"disc.motion","op":"axis-turn@1","args":["axis.ratio.0","k.ratio.1","axis.ratio.0","turn"],"outputs":{"pose":"disc.motion.value"},"params":{"from":"disc.seat","to":"disc.joint"}},{"id":"disc.turned","op":"compose@1","args":["disc.motion.value","disc.poseValue"],"outputs":{"pose":"disc.turned.value"}},{"id":"mark.on.disc.seat.y.t0","op":"mul@1","args":["disc.dimension.length","k.ratio.0_5"],"outputs":{"value":"mark.on.disc.seat.y.t0.value"}},{"id":"mark.on.disc.pose.x.t0","op":"mul@1","args":["mark.dimension.width","host.k.centre"],"outputs":{"value":"mark.on.disc.pose.x.t0.value"}},{"id":"mark.on.disc.pose.y.t0","op":"mul@1","args":["mark.dimension.height","k.ratio.0_5"],"outputs":{"value":"mark.on.disc.pose.y.t0.value"}},{"id":"mark.seat.rigid","op":"rigid@1","args":["disc.
|
|
1
|
+
{"version":"figure-asset-1","name":"TPL_TURNTABLE","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":"disc.dimension.length","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"mark.dimension.width","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"mark.dimension.height","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"mark.dimension.depth","unit":"mm","min":0,"max":1.7976931348623157e+308,"role":"design"},{"id":"turn","unit":"deg","min":-180,"max":180,"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":"disc.k.centre","unit":"ratio","value":-0.5},{"id":"k.ratio.1","unit":"ratio","value":1},{"id":"k.ratio.0_45","unit":"ratio","value":0.45},{"id":"axis.ratio.0","unit":"ratio","value":0},{"id":"mark.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.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":"disc.shape","op":"extrude@1","args":["disc.start.value","disc.dimension.length","disc.dimension.x.value","disc.dimension.x.value"],"outputs":{"shape":"disc.shapeValue"},"params":{"frame":"disc.local","axis":"y","section":"ellipse"}},{"id":"disc.pose","op":"rigid@1","args":["d.mm.0","disc.on.host.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"disc.poseValue"},"params":{"from":"disc.local","to":"disc.seat"}},{"id":"disc","op":"place@1","args":["disc.shapeValue","disc.world.value"],"outputs":{"placed":"disc.placed"}},{"id":"disc.start","op":"mul@1","args":["disc.dimension.length","disc.k.centre"],"outputs":{"value":"disc.start.value"}},{"id":"disc.dimension.x","op":"mul@1","args":["disc.x.follows.times.value","k.ratio.1"],"outputs":{"value":"disc.dimension.x.value"}},{"id":"host.dimension.z","op":"mul@1","args":["host.size.z","k.ratio.1"],"outputs":{"value":"host.dimension.z.value"}},{"id":"disc.x.follows.times","op":"mul@1","args":["host.dimension.z.value","k.ratio.0_45"],"outputs":{"value":"disc.x.follows.times.value"}},{"id":"mark.shape","op":"extrude@1","args":["mark.start.value","mark.dimension.height","mark.dimension.width","mark.dimension.depth"],"outputs":{"shape":"mark.shapeValue"},"params":{"frame":"mark.local","axis":"y","section":"rectangle"}},{"id":"mark.pose","op":"rigid@1","args":["mark.on.disc.pose.x.t0.value","mark.on.disc.pose.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"mark.poseValue"},"params":{"from":"mark.local","to":"mark.seat"}},{"id":"mark","op":"place@1","args":["mark.shapeValue","mark.world.value"],"outputs":{"placed":"mark.placed"}},{"id":"mark.start","op":"mul@1","args":["mark.dimension.height","mark.k.centre"],"outputs":{"value":"mark.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":"disc.on.host.seat.y.t0","op":"mul@1","args":["host.size.y","k.ratio.0_5"],"outputs":{"value":"disc.on.host.seat.y.t0.value"}},{"id":"disc.on.host.pose.y.t0","op":"mul@1","args":["disc.dimension.length","k.ratio.0_5"],"outputs":{"value":"disc.on.host.pose.y.t0.value"}},{"id":"disc.seat.rigid","op":"rigid@1","args":["d.mm.0","disc.on.host.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"disc.seat.value"},"params":{"from":"disc.joint","to":"host.local"}},{"id":"disc.chain","op":"compose@1","args":["disc.seat.value","disc.turned.value"],"outputs":{"pose":"disc.chain.value"}},{"id":"disc.world","op":"compose@1","args":["host.chain.value","disc.chain.value"],"outputs":{"pose":"disc.world.value"}},{"id":"disc.motion","op":"axis-turn@1","args":["axis.ratio.0","k.ratio.1","axis.ratio.0","turn"],"outputs":{"pose":"disc.motion.value"},"params":{"from":"disc.seat","to":"disc.joint"}},{"id":"disc.turned","op":"compose@1","args":["disc.motion.value","disc.poseValue"],"outputs":{"pose":"disc.turned.value"}},{"id":"mark.on.disc.seat.x.0.g0.0.t1","op":"mul@1","args":["mark.dimension.depth","host.k.centre"],"outputs":{"value":"mark.on.disc.seat.x.0.g0.0.t1.value"}},{"id":"mark.on.disc.seat.x.0.g0.0.s0","op":"add@1","args":["disc.dimension.x.value","mark.on.disc.seat.x.0.g0.0.t1.value"],"outputs":{"value":"mark.on.disc.seat.x.0.g0.0.s0.value"}},{"id":"mark.on.disc.seat.x.0.g0","op":"max@1","args":["mark.on.disc.seat.x.0.g0.0.s0.value","d.mm.0"],"outputs":{"value":"mark.on.disc.seat.x.0.g0.value"}},{"id":"mark.on.disc.seat.x.0.g1.t1","op":"mul@1","args":["mark.dimension.depth","k.ratio.0_5"],"outputs":{"value":"mark.on.disc.seat.x.0.g1.t1.value"}},{"id":"mark.on.disc.seat.x.0.g1.s0","op":"add@1","args":["disc.dimension.x.value","mark.on.disc.seat.x.0.g1.t1.value"],"outputs":{"value":"mark.on.disc.seat.x.0.g1.s0.value"}},{"id":"mark.on.disc.seat.x.0","op":"geomean@1","args":["mark.on.disc.seat.x.0.g0.value","mark.on.disc.seat.x.0.g1.s0.value"],"outputs":{"value":"mark.on.disc.seat.x.0.value"}},{"id":"mark.on.disc.seat.y.t0","op":"mul@1","args":["disc.dimension.length","k.ratio.0_5"],"outputs":{"value":"mark.on.disc.seat.y.t0.value"}},{"id":"mark.on.disc.pose.x.t0","op":"mul@1","args":["mark.dimension.width","host.k.centre"],"outputs":{"value":"mark.on.disc.pose.x.t0.value"}},{"id":"mark.on.disc.pose.y.t0","op":"mul@1","args":["mark.dimension.height","k.ratio.0_5"],"outputs":{"value":"mark.on.disc.pose.y.t0.value"}},{"id":"mark.seat.rigid","op":"rigid@1","args":["mark.on.disc.seat.x.0.value","mark.on.disc.seat.y.t0.value","d.mm.0","a.deg.0","a.deg.0","a.deg.0"],"outputs":{"pose":"mark.seat.value"},"params":{"from":"mark.seat","to":"disc.local"}},{"id":"mark.chain","op":"compose@1","args":["mark.seat.value","mark.poseValue"],"outputs":{"pose":"mark.chain.value"}},{"id":"mark.world","op":"compose@1","args":["disc.world.value","mark.chain.value"],"outputs":{"pose":"mark.world.value"}}]},"capabilities":{"version":"r3-capability-3","assetFrame":"asset","bindings":[]}},"designInputs":{"host.size.x":1200,"host.size.y":700,"host.size.z":1200,"disc.dimension.length":40,"mark.dimension.width":400,"mark.dimension.height":10,"mark.dimension.depth":60},"stateDefaults":{"turn":0},"palette":{"palette.primary":"#477b9e","palette.host":"#d9dde2","palette.tpl-6c8ea8":"#6c8ea8","palette.tpl-e0a800":"#e0a800"},"appearance":[{"target":"host","material":{"token":"palette.host"}},{"target":"disc","material":{"token":"palette.tpl-6c8ea8"},"segments":12},{"target":"mark","material":{"token":"palette.tpl-e0a800"}}],"joints":[{"id":"host","type":"fixed","body0":{"plane":"mounting-plane"},"body1":{"part":"host"},"origin":{}},{"id":"disc","type":"revolute","body0":{"part":"host","face":"top"},"body1":{"part":"disc"},"origin":{},"axis":"Y","lowerLimit":-180,"upperLimit":180,"state":{"id":"turn"}},{"id":"mark","type":"fixed","body0":{"part":"disc","face":"top"},"body1":{"part":"mark"},"origin":{"align":{"x":"max"}}}]}
|
|
@@ -41,7 +41,8 @@ function mixerDraft(): FigureAsset {
|
|
|
41
41
|
{ kind: 'add-part', part: { id: 'body', kind: 'cylinder', dimensions: { radius: 140, length: 320 } } },
|
|
42
42
|
{ kind: 'add-part', part: { id: 'port', kind: 'box', dimensions: { width: 80, height: 60, depth: 30 } } },
|
|
43
43
|
{ kind: 'attach', part: 'body', to: { plane: 'mounting-plane' } },
|
|
44
|
-
|
|
44
|
+
/* The body's front is its curved side: a point on it, by the outward normal there (ADR-0140 3.9; push Y, +Z is 270°). */
|
|
45
|
+
{ kind: 'attach', part: 'port', to: { part: 'body', surface: { around: 270, along: 'centre' } } },
|
|
45
46
|
{ kind: 'fit-room', placement: 'floor' }
|
|
46
47
|
] as any)
|
|
47
48
|
}
|