@things-factory/figure-service 10.1.204 → 10.1.206

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist-server/service/figure/event-subscriber.js +5 -0
  2. package/dist-server/service/figure/event-subscriber.js.map +1 -1
  3. package/dist-server/service/figure/figure-format.d.ts +7 -0
  4. package/dist-server/service/figure/figure-format.js +25 -3
  5. package/dist-server/service/figure/figure-format.js.map +1 -1
  6. package/dist-server/service/figure/figure-mutation.js +2 -0
  7. package/dist-server/service/figure/figure-mutation.js.map +1 -1
  8. package/dist-server/service/figure/figure-query.js +3 -5
  9. package/dist-server/service/figure/figure-query.js.map +1 -1
  10. package/dist-server/service/figure/figure-revert.js +1 -1
  11. package/dist-server/service/figure/figure-revert.js.map +1 -1
  12. package/dist-server/tsconfig.tsbuildinfo +1 -1
  13. package/package.json +8 -8
  14. package/recipes/_lib/model.mts +7 -0
  15. package/recipes/base-frame/recipe.json +4 -8
  16. package/recipes/belt-surface/recipe.json +2 -4
  17. package/recipes/bin-row/recipe.json +1 -2
  18. package/recipes/bollard-row/recipe.json +1 -2
  19. package/recipes/cabinet-doors/recipe.json +5 -10
  20. package/recipes/cable-tray/recipe.json +3 -6
  21. package/recipes/canopy/recipe.json +2 -4
  22. package/recipes/cart-handle/recipe.json +1 -2
  23. package/recipes/ceiling-rail-carriage/recipe.json +1 -2
  24. package/recipes/chain-rails/recipe.json +2 -4
  25. package/recipes/column-row/recipe.json +1 -2
  26. package/recipes/conveyor-skirts/recipe.json +4 -8
  27. package/recipes/double-hinged-door/recipe.json +6 -12
  28. package/recipes/drawer-stack/recipe.json +13 -26
  29. package/recipes/drip-tray/recipe.json +2 -4
  30. package/recipes/end-covers/recipe.json +4 -8
  31. package/recipes/ffu-row/recipe.json +1 -2
  32. package/recipes/floor-zone/recipe.json +4 -8
  33. package/recipes/folding-door/recipe.json +3 -6
  34. package/recipes/gantry-frame/recipe.json +1 -2
  35. package/recipes/guard-cover/recipe.json +2 -4
  36. package/recipes/handrail/recipe.json +2 -4
  37. package/recipes/hatch/recipe.json +4 -8
  38. package/recipes/hinged-door/recipe.json +4 -8
  39. package/recipes/hopper/recipe.json +1 -2
  40. package/recipes/ladder/recipe.json +3 -6
  41. package/recipes/lift-updown/recipe.json +2 -4
  42. package/recipes/linear-guide/recipe.json +1 -2
  43. package/recipes/locker-row/recipe.json +1 -2
  44. package/recipes/observation-window/recipe.json +4 -8
  45. package/recipes/operator-panel/recipe.json +4 -8
  46. package/recipes/partition-wall/recipe.json +3 -6
  47. package/recipes/peg-board/facts.md +1 -1
  48. package/recipes/peg-board/recipe.json +1 -2
  49. package/recipes/pipe-run/recipe.json +1 -2
  50. package/recipes/platform/recipe.json +2 -4
  51. package/recipes/pull-cord/recipe.json +1 -2
  52. package/recipes/roll-up-shutter/recipe.json +3 -6
  53. package/recipes/roller-row/recipe.json +2 -4
  54. package/recipes/room-shell/recipe.json +6 -12
  55. package/recipes/safety-fence/recipe.json +2 -4
  56. package/recipes/safety-mat/recipe.json +1 -2
  57. package/recipes/safety-sign-stand/build.mts +2 -1
  58. package/recipes/safety-sign-stand/models/default.json +1 -1
  59. package/recipes/safety-sign-stand/recipe.json +5 -6
  60. package/recipes/shelf-tiers/recipe.json +5 -10
  61. package/recipes/side-guides/recipe.json +2 -4
  62. package/recipes/sign-board/recipe.json +1 -2
  63. package/recipes/sliding-door/recipe.json +7 -14
  64. package/recipes/stairs/recipe.json +1 -2
  65. package/recipes/stopper/recipe.json +1 -2
  66. package/recipes/suction-pads/recipe.json +1 -2
  67. package/recipes/tank/recipe.json +2 -4
  68. package/recipes/toe-board/recipe.json +1 -2
  69. package/recipes/traffic-cones/recipe.json +1 -2
  70. package/recipes/transfer-belts/recipe.json +2 -4
  71. package/recipes/trough/recipe.json +1 -2
  72. package/recipes/turntable/models/default.json +1 -1
  73. package/recipes/turntable/recipe.json +1 -2
  74. package/recipes/workbench-top/recipe.json +2 -4
  75. package/server/service/figure/event-subscriber.ts +4 -0
  76. package/server/service/figure/figure-blueprint-query.test.ts +3 -0
  77. package/server/service/figure/figure-context.test.ts +1 -1
  78. package/server/service/figure/figure-format.ts +27 -5
  79. package/server/service/figure/figure-llm-smoke.test.ts +2 -1
  80. package/server/service/figure/figure-mutation.ts +2 -0
  81. package/server/service/figure/figure-query.ts +3 -6
  82. package/server/service/figure/figure-release-size-db.test.ts +156 -0
  83. package/server/service/figure/figure-revert.ts +2 -2
@@ -65,8 +65,7 @@
65
65
  "of": "part",
66
66
  "part": "{target}",
67
67
  "axis": "x"
68
- },
69
- "narrowRange": true
68
+ }
70
69
  },
71
70
  {
72
71
  "kind": "set-joint",
@@ -91,8 +90,7 @@
91
90
  "param": "pitch"
92
91
  }
93
92
  }
94
- },
95
- "narrowRange": true
93
+ }
96
94
  },
97
95
  {
98
96
  "kind": "set-joint",
@@ -85,8 +85,7 @@
85
85
  },
86
86
  "times": {
87
87
  "param": "share"
88
- },
89
- "narrowRange": true
88
+ }
90
89
  },
91
90
  {
92
91
  "kind": "link-dimension",
@@ -99,8 +98,7 @@
99
98
  },
100
99
  "times": {
101
100
  "param": "height"
102
- },
103
- "narrowRange": true
101
+ }
104
102
  },
105
103
  {
106
104
  "kind": "link-dimension",
@@ -111,8 +109,7 @@
111
109
  "part": "{id}-frame",
112
110
  "axis": "x"
113
111
  },
114
- "plus": -70,
115
- "narrowRange": true
112
+ "plus": -70
116
113
  },
117
114
  {
118
115
  "kind": "link-dimension",
@@ -123,8 +120,7 @@
123
120
  "part": "{id}-frame",
124
121
  "axis": "y"
125
122
  },
126
- "plus": -35,
127
- "narrowRange": true
123
+ "plus": -35
128
124
  },
129
125
  {
130
126
  "kind": "set-joint",
@@ -101,8 +101,7 @@
101
101
  },
102
102
  "times": {
103
103
  "param": "share"
104
- },
105
- "narrowRange": true
104
+ }
106
105
  },
107
106
  {
108
107
  "kind": "link-dimension",
@@ -115,8 +114,7 @@
115
114
  },
116
115
  "times": {
117
116
  "param": "height"
118
- },
119
- "narrowRange": true
117
+ }
120
118
  },
121
119
  {
122
120
  "kind": "link-dimension",
@@ -127,8 +125,7 @@
127
125
  "part": "{id}-frame",
128
126
  "axis": "x"
129
127
  },
130
- "plus": -210,
131
- "narrowRange": true
128
+ "plus": -210
132
129
  },
133
130
  {
134
131
  "kind": "link-dimension",
@@ -139,8 +136,7 @@
139
136
  "part": "{id}-frame",
140
137
  "axis": "y"
141
138
  },
142
- "plus": -110,
143
- "narrowRange": true
139
+ "plus": -110
144
140
  },
145
141
  {
146
142
  "kind": "set-joint",
@@ -68,8 +68,7 @@
68
68
  },
69
69
  "times": {
70
70
  "param": "mouth"
71
- },
72
- "narrowRange": true
71
+ }
73
72
  },
74
73
  {
75
74
  "kind": "set-joint",
@@ -76,8 +76,7 @@
76
76
  "of": "part",
77
77
  "part": "{target}",
78
78
  "axis": "y"
79
- },
80
- "narrowRange": true
79
+ }
81
80
  },
82
81
  {
83
82
  "kind": "link-dimension",
@@ -87,8 +86,7 @@
87
86
  "of": "part",
88
87
  "part": "{target}",
89
88
  "axis": "y"
90
- },
91
- "narrowRange": true
89
+ }
92
90
  },
93
91
  {
94
92
  "kind": "set-joint",
@@ -151,8 +149,7 @@
151
149
  "param": "pitch"
152
150
  }
153
151
  }
154
- },
155
- "narrowRange": true
152
+ }
156
153
  },
157
154
  {
158
155
  "kind": "set-material",
@@ -54,8 +54,7 @@
54
54
  "part": "{target}",
55
55
  "axis": "x"
56
56
  },
57
- "times": 0.9,
58
- "narrowRange": true
57
+ "times": 0.9
59
58
  },
60
59
  {
61
60
  "kind": "link-dimension",
@@ -66,8 +65,7 @@
66
65
  "part": "{target}",
67
66
  "axis": "z"
68
67
  },
69
- "times": 0.9,
70
- "narrowRange": true
68
+ "times": 0.9
71
69
  },
72
70
  {
73
71
  "kind": "set-joint",
@@ -68,8 +68,7 @@
68
68
  },
69
69
  "times": {
70
70
  "param": "length"
71
- },
72
- "narrowRange": true
71
+ }
73
72
  },
74
73
  {
75
74
  "kind": "set-joint",
@@ -64,8 +64,7 @@
64
64
  "param": "pitch"
65
65
  }
66
66
  }
67
- },
68
- "narrowRange": true
67
+ }
69
68
  },
70
69
  {
71
70
  "kind": "set-material",
@@ -84,8 +84,7 @@
84
84
  },
85
85
  "times": {
86
86
  "param": "share"
87
- },
88
- "narrowRange": true
87
+ }
89
88
  },
90
89
  {
91
90
  "kind": "link-dimension",
@@ -98,8 +97,7 @@
98
97
  },
99
98
  "times": {
100
99
  "param": "height"
101
- },
102
- "narrowRange": true
100
+ }
103
101
  },
104
102
  {
105
103
  "kind": "link-dimension",
@@ -110,8 +108,7 @@
110
108
  "part": "{id}-frame",
111
109
  "axis": "x"
112
110
  },
113
- "plus": -120,
114
- "narrowRange": true
111
+ "plus": -120
115
112
  },
116
113
  {
117
114
  "kind": "link-dimension",
@@ -122,8 +119,7 @@
122
119
  "part": "{id}-frame",
123
120
  "axis": "y"
124
121
  },
125
- "plus": -60,
126
- "narrowRange": true
122
+ "plus": -60
127
123
  },
128
124
  {
129
125
  "kind": "set-joint",
@@ -103,8 +103,7 @@
103
103
  "pitch": 90,
104
104
  "count": 5
105
105
  }
106
- },
107
- "narrowRange": true
106
+ }
108
107
  },
109
108
  {
110
109
  "when": {
@@ -128,8 +127,7 @@
128
127
  "pitch": 90,
129
128
  "count": 4
130
129
  }
131
- },
132
- "narrowRange": true
130
+ }
133
131
  },
134
132
  {
135
133
  "when": {
@@ -153,8 +151,7 @@
153
151
  "pitch": 90,
154
152
  "count": 3
155
153
  }
156
- },
157
- "narrowRange": true
154
+ }
158
155
  },
159
156
  {
160
157
  "when": {
@@ -178,8 +175,7 @@
178
175
  "pitch": 90,
179
176
  "count": 2
180
177
  }
181
- },
182
- "narrowRange": true
178
+ }
183
179
  },
184
180
  {
185
181
  "kind": "set-material",
@@ -83,8 +83,7 @@
83
83
  "axis": "x"
84
84
  },
85
85
  "times": 0.5,
86
- "plus": -600,
87
- "narrowRange": true
86
+ "plus": -600
88
87
  },
89
88
  {
90
89
  "kind": "link-dimension",
@@ -96,8 +95,7 @@
96
95
  "axis": "x"
97
96
  },
98
97
  "times": 0.5,
99
- "plus": -600,
100
- "narrowRange": true
98
+ "plus": -600
101
99
  },
102
100
  {
103
101
  "kind": "link-dimension",
@@ -108,8 +106,7 @@
108
106
  "part": "{id}-wall-left",
109
107
  "axis": "y"
110
108
  },
111
- "plus": -2200,
112
- "narrowRange": true
109
+ "plus": -2200
113
110
  },
114
111
  {
115
112
  "kind": "set-joint",
@@ -1,3 +1,3 @@
1
1
  # peg-board — facts (not shown on screen; the guide's basis and our review)
2
2
 
3
- 앞면 가운데. 판 1200×800×15. 걸이 10×10×80 판 앞면, make-repeat x pitch, narrowRange. 간격 50~600.
3
+ 앞면 가운데. 판 1200×800×15. 걸이 10×10×80 판 앞면, make-repeat x pitch. 간격 50~600.
@@ -91,8 +91,7 @@
91
91
  "param": "pitch"
92
92
  }
93
93
  }
94
- },
95
- "narrowRange": true
94
+ }
96
95
  },
97
96
  {
98
97
  "kind": "set-material",
@@ -53,8 +53,7 @@
53
53
  "of": "part",
54
54
  "part": "{target}",
55
55
  "axis": "z"
56
- },
57
- "narrowRange": true
56
+ }
58
57
  },
59
58
  {
60
59
  "kind": "set-joint",
@@ -109,8 +109,7 @@
109
109
  "of": "part",
110
110
  "part": "{target}",
111
111
  "axis": "x"
112
- },
113
- "narrowRange": true
112
+ }
114
113
  },
115
114
  {
116
115
  "kind": "link-dimension",
@@ -120,8 +119,7 @@
120
119
  "of": "part",
121
120
  "part": "{target}",
122
121
  "axis": "z"
123
- },
124
- "narrowRange": true
122
+ }
125
123
  },
126
124
  {
127
125
  "kind": "set-joint",
@@ -37,8 +37,7 @@
37
37
  "of": "part",
38
38
  "part": "{target}",
39
39
  "axis": "x"
40
- },
41
- "narrowRange": true
40
+ }
42
41
  },
43
42
  {
44
43
  "kind": "set-joint",
@@ -83,8 +83,7 @@
83
83
  },
84
84
  "times": {
85
85
  "param": "share"
86
- },
87
- "narrowRange": true
86
+ }
88
87
  },
89
88
  {
90
89
  "kind": "link-dimension",
@@ -97,8 +96,7 @@
97
96
  },
98
97
  "times": {
99
98
  "param": "height"
100
- },
101
- "narrowRange": true
99
+ }
102
100
  },
103
101
  {
104
102
  "kind": "link-dimension",
@@ -109,8 +107,7 @@
109
107
  "part": "{id}-curtain",
110
108
  "axis": "x"
111
109
  },
112
- "plus": 100,
113
- "narrowRange": true
110
+ "plus": 100
114
111
  },
115
112
  {
116
113
  "kind": "set-joint",
@@ -70,8 +70,7 @@
70
70
  "part": "{target}",
71
71
  "axis": "z"
72
72
  },
73
- "times": 0.9,
74
- "narrowRange": true
73
+ "times": 0.9
75
74
  },
76
75
  {
77
76
  "kind": "set-joint",
@@ -106,8 +105,7 @@
106
105
  "param": "pitch"
107
106
  }
108
107
  }
109
- },
110
- "narrowRange": true
108
+ }
111
109
  },
112
110
  {
113
111
  "kind": "set-material",
@@ -109,8 +109,7 @@
109
109
  "of": "part",
110
110
  "part": "{target}",
111
111
  "axis": "x"
112
- },
113
- "narrowRange": true
112
+ }
114
113
  },
115
114
  {
116
115
  "kind": "link-dimension",
@@ -120,8 +119,7 @@
120
119
  "of": "part",
121
120
  "part": "{target}",
122
121
  "axis": "x"
123
- },
124
- "narrowRange": true
122
+ }
125
123
  },
126
124
  {
127
125
  "kind": "link-dimension",
@@ -132,8 +130,7 @@
132
130
  "part": "{target}",
133
131
  "axis": "z"
134
132
  },
135
- "plus": -200,
136
- "narrowRange": true
133
+ "plus": -200
137
134
  },
138
135
  {
139
136
  "kind": "link-dimension",
@@ -144,8 +141,7 @@
144
141
  "part": "{target}",
145
142
  "axis": "z"
146
143
  },
147
- "plus": -200,
148
- "narrowRange": true
144
+ "plus": -200
149
145
  },
150
146
  {
151
147
  "kind": "link-dimension",
@@ -155,8 +151,7 @@
155
151
  "of": "part",
156
152
  "part": "{target}",
157
153
  "axis": "x"
158
- },
159
- "narrowRange": true
154
+ }
160
155
  },
161
156
  {
162
157
  "kind": "link-dimension",
@@ -166,8 +161,7 @@
166
161
  "of": "part",
167
162
  "part": "{target}",
168
163
  "axis": "z"
169
- },
170
- "narrowRange": true
164
+ }
171
165
  },
172
166
  {
173
167
  "kind": "set-joint",
@@ -85,8 +85,7 @@
85
85
  "of": "part",
86
86
  "part": "{target}",
87
87
  "axis": "x"
88
- },
89
- "narrowRange": true
88
+ }
90
89
  },
91
90
  {
92
91
  "kind": "set-joint",
@@ -111,8 +110,7 @@
111
110
  "param": "pitch"
112
111
  }
113
112
  }
114
- },
115
- "narrowRange": true
113
+ }
116
114
  },
117
115
  {
118
116
  "kind": "set-joint",
@@ -56,8 +56,7 @@
56
56
  },
57
57
  "times": {
58
58
  "param": "width"
59
- },
60
- "narrowRange": true
59
+ }
61
60
  },
62
61
  {
63
62
  "kind": "set-joint",
@@ -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
- .on('sign', 'post', 'front', { y: 'max' })
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","face":"front"},"body1":{"part":"sign"},"origin":{"align":{"y":"max"}}}]}
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
- "face": "front"
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
  {
@@ -75,8 +75,7 @@
75
75
  "part": "{target}",
76
76
  "axis": "x"
77
77
  },
78
- "times": 0.96,
79
- "narrowRange": true
78
+ "times": 0.96
80
79
  },
81
80
  {
82
81
  "when": {
@@ -100,8 +99,7 @@
100
99
  "pitch": 400,
101
100
  "count": 5
102
101
  }
103
- },
104
- "narrowRange": true
102
+ }
105
103
  },
106
104
  {
107
105
  "when": {
@@ -125,8 +123,7 @@
125
123
  "pitch": 400,
126
124
  "count": 4
127
125
  }
128
- },
129
- "narrowRange": true
126
+ }
130
127
  },
131
128
  {
132
129
  "when": {
@@ -150,8 +147,7 @@
150
147
  "pitch": 400,
151
148
  "count": 3
152
149
  }
153
- },
154
- "narrowRange": true
150
+ }
155
151
  },
156
152
  {
157
153
  "when": {
@@ -175,8 +171,7 @@
175
171
  "pitch": 400,
176
172
  "count": 2
177
173
  }
178
- },
179
- "narrowRange": true
174
+ }
180
175
  },
181
176
  {
182
177
  "kind": "set-material",
@@ -69,8 +69,7 @@
69
69
  "of": "part",
70
70
  "part": "{target}",
71
71
  "axis": "x"
72
- },
73
- "narrowRange": true
72
+ }
74
73
  },
75
74
  {
76
75
  "kind": "link-dimension",
@@ -80,8 +79,7 @@
80
79
  "of": "part",
81
80
  "part": "{target}",
82
81
  "axis": "x"
83
- },
84
- "narrowRange": true
82
+ }
85
83
  },
86
84
  {
87
85
  "kind": "set-joint",