scanruler-mcp 0.5.0 → 0.6.0
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 +43 -17
- package/package.json +1 -1
- package/src/commands.json +347 -312
- package/src/main.js +14 -8
- package/src/mcp.js +272 -47
- package/src/tools.js +28 -9
- package/src/trace.js +12 -1
package/src/commands.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"app": "0.
|
|
3
|
-
"saved": "2026-10-
|
|
2
|
+
"app": "0.9.2",
|
|
3
|
+
"saved": "2026-10-31T15:11:20.100Z",
|
|
4
4
|
"commands": [
|
|
5
5
|
{
|
|
6
6
|
"name": "align.auto",
|
|
7
7
|
"title": "Auto-align the part",
|
|
8
|
-
"description": "Read a coordinate system off the scan and apply it, as Auto-align then Confirm alignment do: the directions most faces are square to and the axis round walls run along, the part standing on its base, its long side along X. level: settled (the default) lays all the faces on the axes at once, by area
|
|
8
|
+
"description": "Read a coordinate system off the scan and apply it, as Auto-align then Confirm alignment do: the directions most faces are square to and the axis round walls run along, the part standing on its base, its long side along X. level: settled (the default) lays all the faces on the axes at once, by area; largest squares the largest flat face exactly and settles the rest about its normal. Returns what the pose was read from, the transform, how many elements moved, and square — how square it came out: largest (the largest flat face’s axis, area, tiltDeg) and per axis the faces square to it with their tilts. Trap: a drafted wall reads as its draft, not as an alignment error. One undo step.",
|
|
9
9
|
"input": {
|
|
10
10
|
"type": "object",
|
|
11
11
|
"properties": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"settled",
|
|
16
16
|
"largest"
|
|
17
17
|
],
|
|
18
|
-
"description": "settled (the default):
|
|
18
|
+
"description": "settled (the default): all faces at once, by area. largest: the largest flat face exactly, the rest settled about its normal."
|
|
19
19
|
},
|
|
20
20
|
"detail": {
|
|
21
21
|
"type": "string",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"brief",
|
|
24
24
|
"full"
|
|
25
25
|
],
|
|
26
|
-
"description": "brief (the default): the transform and how many elements moved
|
|
26
|
+
"description": "brief (the default): the transform and how many elements moved. full: every element where it now is."
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
"additionalProperties": false
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"brief",
|
|
46
46
|
"full"
|
|
47
47
|
],
|
|
48
|
-
"description": "brief (the default): the transform and how many elements moved
|
|
48
|
+
"description": "brief (the default): the transform and how many elements moved. full: every element where it now is."
|
|
49
49
|
}
|
|
50
50
|
},
|
|
51
51
|
"additionalProperties": false
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
{
|
|
58
58
|
"name": "align.datum",
|
|
59
59
|
"title": "Align the part to datums",
|
|
60
|
-
"description": "A 3-2-1 alignment, as the panel’s alignment box sets it up: primary levels the part — a plane (or 3 points
|
|
60
|
+
"description": "A 3-2-1 alignment, as the panel’s alignment box sets it up: primary levels the part — a plane (or 3 points) whose outward normal becomes primaryAxis (default z-); secondary turns it — a line or axis (or 2 points) laid along secondaryAxis (default x+), or a plane; origin is the zero point — a point, sphere or circle (or 1 point). Elements by id or name, or points in mm used as given, not snapped. Trap: a plane as secondary puts its outward NORMAL on secondaryAxis, not its face along it. Each datum zeroes the coordinates it owns, the origin only those left open; an origin alone moves without turning. On a first alignment the coordinates nothing sets are centred on the scan’s box (keepFree: true leaves them). Returns the transform applied, how many elements moved, centred, origin { set, at, note } and parallelFace when a face parallel to the levelling plane within 5 mm holds more of the scan. One undo step.",
|
|
61
61
|
"input": {
|
|
62
62
|
"type": "object",
|
|
63
63
|
"properties": {
|
|
@@ -70,16 +70,16 @@
|
|
|
70
70
|
"oneOf": [
|
|
71
71
|
{
|
|
72
72
|
"type": "integer",
|
|
73
|
-
"description": "
|
|
73
|
+
"description": "Its id.",
|
|
74
74
|
"minimum": 1
|
|
75
75
|
},
|
|
76
76
|
{
|
|
77
77
|
"type": "string",
|
|
78
|
-
"description": "
|
|
78
|
+
"description": "Its name — \"Sphere 1\".",
|
|
79
79
|
"minLength": 1
|
|
80
80
|
}
|
|
81
81
|
],
|
|
82
|
-
"description": "
|
|
82
|
+
"description": "An element for levelling."
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
85
|
"required": [
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"minItems": 3,
|
|
102
102
|
"maxItems": 3
|
|
103
103
|
},
|
|
104
|
-
"description": "3 points
|
|
104
|
+
"description": "3 points, mm — they span the face.",
|
|
105
105
|
"minItems": 3,
|
|
106
106
|
"maxItems": 3
|
|
107
107
|
}
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"z+",
|
|
125
125
|
"z-"
|
|
126
126
|
],
|
|
127
|
-
"description": "The axis the primary’s outward normal becomes
|
|
127
|
+
"description": "The axis the primary’s outward normal becomes; default z-."
|
|
128
128
|
},
|
|
129
129
|
"secondary": {
|
|
130
130
|
"oneOf": [
|
|
@@ -135,16 +135,16 @@
|
|
|
135
135
|
"oneOf": [
|
|
136
136
|
{
|
|
137
137
|
"type": "integer",
|
|
138
|
-
"description": "
|
|
138
|
+
"description": "Its id.",
|
|
139
139
|
"minimum": 1
|
|
140
140
|
},
|
|
141
141
|
{
|
|
142
142
|
"type": "string",
|
|
143
|
-
"description": "
|
|
143
|
+
"description": "Its name — \"Sphere 1\".",
|
|
144
144
|
"minLength": 1
|
|
145
145
|
}
|
|
146
146
|
],
|
|
147
|
-
"description": "
|
|
147
|
+
"description": "An element for rotation."
|
|
148
148
|
}
|
|
149
149
|
},
|
|
150
150
|
"required": [
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
"minItems": 3,
|
|
167
167
|
"maxItems": 3
|
|
168
168
|
},
|
|
169
|
-
"description": "2 points
|
|
169
|
+
"description": "2 points, mm — they run along the edge.",
|
|
170
170
|
"minItems": 2,
|
|
171
171
|
"maxItems": 2
|
|
172
172
|
}
|
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
"z+",
|
|
190
190
|
"z-"
|
|
191
191
|
],
|
|
192
|
-
"description": "The axis the secondary runs along
|
|
192
|
+
"description": "The axis the secondary runs along (a plane: its normal); default x+."
|
|
193
193
|
},
|
|
194
194
|
"origin": {
|
|
195
195
|
"oneOf": [
|
|
@@ -200,16 +200,16 @@
|
|
|
200
200
|
"oneOf": [
|
|
201
201
|
{
|
|
202
202
|
"type": "integer",
|
|
203
|
-
"description": "
|
|
203
|
+
"description": "Its id.",
|
|
204
204
|
"minimum": 1
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
"type": "string",
|
|
208
|
-
"description": "
|
|
208
|
+
"description": "Its name — \"Sphere 1\".",
|
|
209
209
|
"minLength": 1
|
|
210
210
|
}
|
|
211
211
|
],
|
|
212
|
-
"description": "
|
|
212
|
+
"description": "An element for the zero point."
|
|
213
213
|
}
|
|
214
214
|
},
|
|
215
215
|
"required": [
|
|
@@ -240,7 +240,7 @@
|
|
|
240
240
|
},
|
|
241
241
|
"keepFree": {
|
|
242
242
|
"type": "boolean",
|
|
243
|
-
"description": "
|
|
243
|
+
"description": "First alignment: leave the coordinates nothing sets where they are instead of centring."
|
|
244
244
|
},
|
|
245
245
|
"detail": {
|
|
246
246
|
"type": "string",
|
|
@@ -248,7 +248,7 @@
|
|
|
248
248
|
"brief",
|
|
249
249
|
"full"
|
|
250
250
|
],
|
|
251
|
-
"description": "brief (the default): the transform and how many elements moved
|
|
251
|
+
"description": "brief (the default): the transform and how many elements moved. full: every element where it now is."
|
|
252
252
|
}
|
|
253
253
|
},
|
|
254
254
|
"additionalProperties": false
|
|
@@ -260,7 +260,7 @@
|
|
|
260
260
|
{
|
|
261
261
|
"name": "align.symmetry",
|
|
262
262
|
"title": "Align the part on its symmetry plane",
|
|
263
|
-
"description": "Settle the part’s pose on its mirror plane and apply it, as Use symmetry then Confirm alignment do: the pose is Auto-align’s, the mirror plane a measured symmetry plane or one searched for on the scan; the axis nearest its normal is turned onto it and the zero point put on it. Refuses when the scan has no symmetry plane. Returns the note on what it settled on, the transform and how many elements moved
|
|
263
|
+
"description": "Settle the part’s pose on its mirror plane and apply it, as Use symmetry then Confirm alignment do: the pose is Auto-align’s, the mirror plane a measured symmetry plane or one searched for on the scan; the axis nearest its normal is turned onto it and the zero point put on it. Refuses when the scan has no symmetry plane. Returns the note on what it settled on, the transform and how many elements moved. One undo step.",
|
|
264
264
|
"input": {
|
|
265
265
|
"type": "object",
|
|
266
266
|
"properties": {
|
|
@@ -270,7 +270,7 @@
|
|
|
270
270
|
"brief",
|
|
271
271
|
"full"
|
|
272
272
|
],
|
|
273
|
-
"description": "brief (the default): the transform and how many elements moved
|
|
273
|
+
"description": "brief (the default): the transform and how many elements moved. full: every element where it now is."
|
|
274
274
|
}
|
|
275
275
|
},
|
|
276
276
|
"additionalProperties": false
|
|
@@ -282,7 +282,7 @@
|
|
|
282
282
|
{
|
|
283
283
|
"name": "deviation.align",
|
|
284
284
|
"title": "Best-fit the scan onto the reference",
|
|
285
|
-
"description": "Rigid best fit (no scale) of the scan onto the reference part, then the deviation map under it. mode auto (the default) finds the pose on its own; points starts from three or more pairs of corresponding points
|
|
285
|
+
"description": "Rigid best fit (no scale) of the scan onto the reference part, then the deviation map under it. mode auto (the default) finds the pose on its own; points starts from three or more pairs of corresponding points (scan and reference, mm) then refines; local refines the fit in hand on a marked surface only (vertices), within searchDistance mm. Returns the alignment (RMS, points matched, transform) and the map’s statistics. One undo step.",
|
|
286
286
|
"input": {
|
|
287
287
|
"type": "object",
|
|
288
288
|
"properties": {
|
|
@@ -293,7 +293,7 @@
|
|
|
293
293
|
"points",
|
|
294
294
|
"local"
|
|
295
295
|
],
|
|
296
|
-
"description": "auto (default), points or local."
|
|
296
|
+
"description": "auto (the default), points or local."
|
|
297
297
|
},
|
|
298
298
|
"pairs": {
|
|
299
299
|
"type": "array",
|
|
@@ -334,12 +334,12 @@
|
|
|
334
334
|
"type": "integer",
|
|
335
335
|
"minimum": 0
|
|
336
336
|
},
|
|
337
|
-
"description": "local: the
|
|
337
|
+
"description": "local: the surface to refine on, scan vertex numbers.",
|
|
338
338
|
"minItems": 3
|
|
339
339
|
},
|
|
340
340
|
"searchDistance": {
|
|
341
341
|
"type": "number",
|
|
342
|
-
"description": "local: how far a point may
|
|
342
|
+
"description": "local: how far a point may lie from the reference to count, mm.",
|
|
343
343
|
"exclusiveMinimum": 0
|
|
344
344
|
}
|
|
345
345
|
},
|
|
@@ -352,7 +352,7 @@
|
|
|
352
352
|
{
|
|
353
353
|
"name": "deviation.export",
|
|
354
354
|
"title": "Export the deviation as data",
|
|
355
|
-
"description": "The deviation map as a file of readings, for working on it elsewhere: side \"scan\" (the default) a reading per scan vertex
|
|
355
|
+
"description": "The deviation map as a file of readings, for working on it elsewhere: side \"scan\" (the default) a reading per scan vertex with its signed distance from the reference (or the element measured against), side \"reference\" a reading per sample on the reference; format ply (the default, binary), npy (N × 4 float32 x, y, z, d) or csv. Returns the file with readings, measured, withinTolerance, withinTolerancePct, tolerance and searchDistance. Trap: the distance is NaN where there is no reading, and a reading past the search distance is kept as it is — |d| ≤ searchDistance says it counts. Changes nothing.",
|
|
356
356
|
"input": {
|
|
357
357
|
"type": "object",
|
|
358
358
|
"properties": {
|
|
@@ -383,7 +383,7 @@
|
|
|
383
383
|
{
|
|
384
384
|
"name": "deviation.hotspots",
|
|
385
385
|
"title": "Where the deviation lies over tolerance",
|
|
386
|
-
"description": "The deviation map read as patches: the
|
|
386
|
+
"description": "The deviation map read as patches: the vertices past the tolerance gathered into connected regions, the largest and farthest first — where the part is off, how large each place is and by how much. Needs a map (deviation.align or deviation.set_target). Returns each patch’s centroid, box, area, count, mean, extreme, depth, volume, kind (\"feature\": material missing or misplaced, to model or name; \"texture\": roughness), side, the extreme’s point and vertex, a few vertices, and onReference; features, found, over and unmeasured; on: \"reference\" reads the map on the reference, adding noScan. Trap: read far every time — the vertices past the search distance, which the map draws bare: far.inside is scan deep inside the reference (a hole, pocket or slot the model lacks), far.outside scan standing off it. Changes nothing.",
|
|
387
387
|
"input": {
|
|
388
388
|
"type": "object",
|
|
389
389
|
"properties": {
|
|
@@ -400,7 +400,7 @@
|
|
|
400
400
|
},
|
|
401
401
|
"grain": {
|
|
402
402
|
"type": "number",
|
|
403
|
-
"description": "mm
|
|
403
|
+
"description": "mm two vertices over tolerance may lie apart and be one patch; three point spacings by default.",
|
|
404
404
|
"exclusiveMinimum": 0
|
|
405
405
|
},
|
|
406
406
|
"on": {
|
|
@@ -434,7 +434,7 @@
|
|
|
434
434
|
{
|
|
435
435
|
"name": "deviation.open_reference",
|
|
436
436
|
"title": "Open the reference part",
|
|
437
|
-
"description": "Open the nominal part the scan is compared with — STEP
|
|
437
|
+
"description": "Open the nominal part the scan is compared with — STEP from CAD, or STL, PLY, OBJ or 3MF — in place of the one there is; any alignment and map against the old one go, the elements measured on the scan stay. Returns the deviation state. Not undoable: a new reference starts a new history.",
|
|
438
438
|
"input": {
|
|
439
439
|
"type": "object",
|
|
440
440
|
"properties": {
|
|
@@ -445,7 +445,7 @@
|
|
|
445
445
|
},
|
|
446
446
|
"name": {
|
|
447
447
|
"type": "string",
|
|
448
|
-
"description": "The file's name with its extension — \"bracket.step\".
|
|
448
|
+
"description": "The file's name with its extension — \"bracket.step\".",
|
|
449
449
|
"minLength": 1
|
|
450
450
|
},
|
|
451
451
|
"units": {
|
|
@@ -456,7 +456,7 @@
|
|
|
456
456
|
"m",
|
|
457
457
|
"in"
|
|
458
458
|
],
|
|
459
|
-
"description": "
|
|
459
|
+
"description": "The file’s units: mm (the default), cm, m or in. Everything is measured in mm once read."
|
|
460
460
|
}
|
|
461
461
|
},
|
|
462
462
|
"required": [
|
|
@@ -472,7 +472,7 @@
|
|
|
472
472
|
{
|
|
473
473
|
"name": "deviation.set_target",
|
|
474
474
|
"title": "Measure against an element",
|
|
475
|
-
"description": "Map how far the scan strays from one of its own fitted elements — a plane, cylinder, cone, sphere or torus — instead of from a reference part
|
|
475
|
+
"description": "Map how far the scan strays from one of its own fitted elements — a plane, cylinder, cone, sphere or torus — instead of from a reference part; null goes back to the reference. side is the material side, read off the scan when the element is chosen (outward: the element’s outer side; inward: a bore or shell) — give it to override. facingDeg limits which surface counts to what faces the element within that many degrees, null for any. Needs the viewport. Returns the map’s statistics. One undo step.",
|
|
476
476
|
"input": {
|
|
477
477
|
"type": "object",
|
|
478
478
|
"properties": {
|
|
@@ -482,12 +482,12 @@
|
|
|
482
482
|
"oneOf": [
|
|
483
483
|
{
|
|
484
484
|
"type": "integer",
|
|
485
|
-
"description": "
|
|
485
|
+
"description": "Its id.",
|
|
486
486
|
"minimum": 1
|
|
487
487
|
},
|
|
488
488
|
{
|
|
489
489
|
"type": "string",
|
|
490
|
-
"description": "
|
|
490
|
+
"description": "Its name — \"Sphere 1\".",
|
|
491
491
|
"minLength": 1
|
|
492
492
|
}
|
|
493
493
|
],
|
|
@@ -506,7 +506,7 @@
|
|
|
506
506
|
"outward",
|
|
507
507
|
"inward"
|
|
508
508
|
],
|
|
509
|
-
"description": "The material side."
|
|
509
|
+
"description": "The material side; read off the scan by default."
|
|
510
510
|
},
|
|
511
511
|
"facingDeg": {
|
|
512
512
|
"oneOf": [
|
|
@@ -520,7 +520,7 @@
|
|
|
520
520
|
"description": "Off."
|
|
521
521
|
}
|
|
522
522
|
],
|
|
523
|
-
"description": "The facing limit, degrees."
|
|
523
|
+
"description": "The facing limit, degrees, or null for any."
|
|
524
524
|
}
|
|
525
525
|
},
|
|
526
526
|
"required": [
|
|
@@ -535,7 +535,7 @@
|
|
|
535
535
|
{
|
|
536
536
|
"name": "deviation.settings",
|
|
537
537
|
"title": "Set how the deviation is read",
|
|
538
|
-
"description": "The deviation map’s reading: range
|
|
538
|
+
"description": "The deviation map’s reading: range (colour scale, ± mm), maxDistance (search distance, mm), bands, tolerance (± mm the statistics count within), facingDeg (a change measures the map again), colormap (the person’s own choice, kept outside the undo — read settings.colormap for the ramp before judging a picture), on (which surface a map against the reference is painted on; read both sides) and show (the map switch; false leaves the surface bare, the map still measured). Returns the deviation state. Trap: the map paints in the Deviation workspace only — workspace.set deviation brings it back, and view.render says which map it painted (map) or why none (mapWhy). One undo step.",
|
|
539
539
|
"input": {
|
|
540
540
|
"type": "object",
|
|
541
541
|
"properties": {
|
|
@@ -594,7 +594,7 @@
|
|
|
594
594
|
"rocket",
|
|
595
595
|
"turbo"
|
|
596
596
|
],
|
|
597
|
-
"description": "
|
|
597
|
+
"description": "jet (blue inside, green on the surface, red outside) or a perceptual ramp."
|
|
598
598
|
},
|
|
599
599
|
"on": {
|
|
600
600
|
"type": "string",
|
|
@@ -602,11 +602,11 @@
|
|
|
602
602
|
"scan",
|
|
603
603
|
"reference"
|
|
604
604
|
],
|
|
605
|
-
"description": "The surface the map is painted on
|
|
605
|
+
"description": "The surface the map is painted on; scan by default."
|
|
606
606
|
},
|
|
607
607
|
"show": {
|
|
608
608
|
"type": "boolean",
|
|
609
|
-
"description": "The map painted
|
|
609
|
+
"description": "The map painted (true) or the surface left bare (false)."
|
|
610
610
|
}
|
|
611
611
|
},
|
|
612
612
|
"additionalProperties": false
|
|
@@ -618,18 +618,18 @@
|
|
|
618
618
|
{
|
|
619
619
|
"name": "deviation.volume",
|
|
620
620
|
"title": "Volume error",
|
|
621
|
-
"description": "The scan and the reference part compared as solids, on a grid of small cells: each cell inside one and not the other is an error, touching cells a region. Read it before the surface patches — it tells how much material is wrong and where, which the nearest-point map cannot
|
|
621
|
+
"description": "The scan and the reference part compared as solids, on a grid of small cells: each cell inside one and not the other is an error, touching cells a region. Read it before the surface patches — it tells how much material is wrong and where, which the nearest-point map cannot: excess is material the reference has and the part has not, missing the other way round, unsure where the scan does not say (never an error). Needs deviation.align. Returns totals (mm³ and % of the reference) and the regions largest first, each with kind, volume, maxDepth, thickness, shape (layer or lump), centroid, deepest, box, evidence and confidence. Trap: nothing thinner than smallestSeen (two cells) is seen — the surface map stays the tool for fine offsets. About 15 s on a 1.5M-triangle scan. Changes nothing kept.",
|
|
622
622
|
"input": {
|
|
623
623
|
"type": "object",
|
|
624
624
|
"properties": {
|
|
625
625
|
"tolerance": {
|
|
626
626
|
"type": "number",
|
|
627
|
-
"description": "± mm; the map’s tolerance
|
|
627
|
+
"description": "± mm; the map’s tolerance by default.",
|
|
628
628
|
"exclusiveMinimum": 0
|
|
629
629
|
},
|
|
630
630
|
"cell": {
|
|
631
631
|
"type": "number",
|
|
632
|
-
"description": "The cell, mm; by default half the tolerance or a 250th of the reference’s longest side, the larger
|
|
632
|
+
"description": "The cell, mm; by default half the tolerance or a 250th of the reference’s longest side, the larger.",
|
|
633
633
|
"exclusiveMinimum": 0
|
|
634
634
|
},
|
|
635
635
|
"regions": {
|
|
@@ -646,7 +646,7 @@
|
|
|
646
646
|
"items": {
|
|
647
647
|
"type": "number"
|
|
648
648
|
},
|
|
649
|
-
"description": "
|
|
649
|
+
"description": "Lowest corner, mm.",
|
|
650
650
|
"minItems": 3,
|
|
651
651
|
"maxItems": 3
|
|
652
652
|
},
|
|
@@ -655,7 +655,7 @@
|
|
|
655
655
|
"items": {
|
|
656
656
|
"type": "number"
|
|
657
657
|
},
|
|
658
|
-
"description": "
|
|
658
|
+
"description": "Highest corner, mm.",
|
|
659
659
|
"minItems": 3,
|
|
660
660
|
"maxItems": 3
|
|
661
661
|
}
|
|
@@ -665,7 +665,7 @@
|
|
|
665
665
|
"max"
|
|
666
666
|
],
|
|
667
667
|
"additionalProperties": false,
|
|
668
|
-
"description": "Only this box is looked at, in the
|
|
668
|
+
"description": "Only this box is looked at, in the reference’s frame."
|
|
669
669
|
},
|
|
670
670
|
"kinds": {
|
|
671
671
|
"type": "array",
|
|
@@ -691,7 +691,7 @@
|
|
|
691
691
|
{
|
|
692
692
|
"name": "dimension.add",
|
|
693
693
|
"title": "Add a dimension",
|
|
694
|
-
"description": "Measure between elements, or a size or tolerance of one, as the panel’s dimension box does. refs are the elements by id or name
|
|
694
|
+
"description": "Measure between elements, or a size or tolerance of one, as the panel’s dimension box does. refs are the elements by id or name, in slot order (a section counts as the plane it was cut on). Without type, the type follows the elements as clicking them does — two planes their distance, a plane and an axis theirs, and so on; with type, one of dist-point-point, dist-point-axis, dist-point-plane, dist-axis-axis, dist-axis-plane, dist-plane-plane, angle-axis-axis, angle-axis-plane, angle-plane-plane, size-diameter, form-flatness, form-cylindricity, form-circularity, form-sphericity, orient-parallelism, orient-perpendicularity, orient-angularity, loc-coaxiality (the measure-reference guide lists each one’s slots). anchor, for two spheres: center (default), gap or span; limit holds the value to a ceiling or a nominal ± band. Returns the dimension with its value (mm or degrees, finer than the panel shows), the formatted value and the verdict. One undo step.",
|
|
695
695
|
"input": {
|
|
696
696
|
"type": "object",
|
|
697
697
|
"properties": {
|
|
@@ -701,12 +701,12 @@
|
|
|
701
701
|
"oneOf": [
|
|
702
702
|
{
|
|
703
703
|
"type": "integer",
|
|
704
|
-
"description": "
|
|
704
|
+
"description": "Its id.",
|
|
705
705
|
"minimum": 1
|
|
706
706
|
},
|
|
707
707
|
{
|
|
708
708
|
"type": "string",
|
|
709
|
-
"description": "
|
|
709
|
+
"description": "Its name — \"Sphere 1\".",
|
|
710
710
|
"minLength": 1
|
|
711
711
|
}
|
|
712
712
|
],
|
|
@@ -718,7 +718,7 @@
|
|
|
718
718
|
},
|
|
719
719
|
"type": {
|
|
720
720
|
"type": "string",
|
|
721
|
-
"description": "The dimension type — see the description.
|
|
721
|
+
"description": "The dimension type — see the description.",
|
|
722
722
|
"minLength": 1
|
|
723
723
|
},
|
|
724
724
|
"anchor": {
|
|
@@ -728,7 +728,7 @@
|
|
|
728
728
|
"gap",
|
|
729
729
|
"span"
|
|
730
730
|
],
|
|
731
|
-
"description": "
|
|
731
|
+
"description": "Two spheres: centre to centre (the default), the gap between them, or the span across them."
|
|
732
732
|
},
|
|
733
733
|
"limit": {
|
|
734
734
|
"oneOf": [
|
|
@@ -744,7 +744,7 @@
|
|
|
744
744
|
},
|
|
745
745
|
"max": {
|
|
746
746
|
"type": "number",
|
|
747
|
-
"description": "The value may be
|
|
747
|
+
"description": "The most the value may be, mm or degrees."
|
|
748
748
|
}
|
|
749
749
|
},
|
|
750
750
|
"required": [
|
|
@@ -769,12 +769,12 @@
|
|
|
769
769
|
},
|
|
770
770
|
"plus": {
|
|
771
771
|
"type": "number",
|
|
772
|
-
"description": "
|
|
772
|
+
"description": "Allowed above it.",
|
|
773
773
|
"minimum": 0
|
|
774
774
|
},
|
|
775
775
|
"minus": {
|
|
776
776
|
"type": "number",
|
|
777
|
-
"description": "
|
|
777
|
+
"description": "Allowed below it (positive).",
|
|
778
778
|
"minimum": 0
|
|
779
779
|
}
|
|
780
780
|
},
|
|
@@ -787,7 +787,7 @@
|
|
|
787
787
|
"additionalProperties": false
|
|
788
788
|
}
|
|
789
789
|
],
|
|
790
|
-
"description": "What the value is checked against
|
|
790
|
+
"description": "What the value is checked against, for a pass or fail verdict."
|
|
791
791
|
},
|
|
792
792
|
"basic": {
|
|
793
793
|
"type": "number",
|
|
@@ -795,7 +795,7 @@
|
|
|
795
795
|
},
|
|
796
796
|
"name": {
|
|
797
797
|
"type": "string",
|
|
798
|
-
"description": "A name
|
|
798
|
+
"description": "A name; otherwise numbered — \"Distance 2\".",
|
|
799
799
|
"minLength": 1
|
|
800
800
|
}
|
|
801
801
|
},
|
|
@@ -819,7 +819,7 @@
|
|
|
819
819
|
"oneOf": [
|
|
820
820
|
{
|
|
821
821
|
"type": "integer",
|
|
822
|
-
"description": "
|
|
822
|
+
"description": "Its id.",
|
|
823
823
|
"minimum": 1
|
|
824
824
|
},
|
|
825
825
|
{
|
|
@@ -851,7 +851,7 @@
|
|
|
851
851
|
"oneOf": [
|
|
852
852
|
{
|
|
853
853
|
"type": "integer",
|
|
854
|
-
"description": "
|
|
854
|
+
"description": "Its id.",
|
|
855
855
|
"minimum": 1
|
|
856
856
|
},
|
|
857
857
|
{
|
|
@@ -897,7 +897,7 @@
|
|
|
897
897
|
"oneOf": [
|
|
898
898
|
{
|
|
899
899
|
"type": "integer",
|
|
900
|
-
"description": "
|
|
900
|
+
"description": "Its id.",
|
|
901
901
|
"minimum": 1
|
|
902
902
|
},
|
|
903
903
|
{
|
|
@@ -924,7 +924,7 @@
|
|
|
924
924
|
},
|
|
925
925
|
"max": {
|
|
926
926
|
"type": "number",
|
|
927
|
-
"description": "The value may be
|
|
927
|
+
"description": "The most the value may be, mm or degrees."
|
|
928
928
|
}
|
|
929
929
|
},
|
|
930
930
|
"required": [
|
|
@@ -949,12 +949,12 @@
|
|
|
949
949
|
},
|
|
950
950
|
"plus": {
|
|
951
951
|
"type": "number",
|
|
952
|
-
"description": "
|
|
952
|
+
"description": "Allowed above it.",
|
|
953
953
|
"minimum": 0
|
|
954
954
|
},
|
|
955
955
|
"minus": {
|
|
956
956
|
"type": "number",
|
|
957
|
-
"description": "
|
|
957
|
+
"description": "Allowed below it (positive).",
|
|
958
958
|
"minimum": 0
|
|
959
959
|
}
|
|
960
960
|
},
|
|
@@ -967,7 +967,7 @@
|
|
|
967
967
|
"additionalProperties": false
|
|
968
968
|
}
|
|
969
969
|
],
|
|
970
|
-
"description": "What the value is checked against
|
|
970
|
+
"description": "What the value is checked against, for a pass or fail verdict."
|
|
971
971
|
},
|
|
972
972
|
{
|
|
973
973
|
"type": "null",
|
|
@@ -990,7 +990,7 @@
|
|
|
990
990
|
{
|
|
991
991
|
"name": "element.construct",
|
|
992
992
|
"title": "Construct an element",
|
|
993
|
-
"description": "Construct an element from others and typed-in numbers, as the panel’s creation methods do —
|
|
993
|
+
"description": "Construct an element from others and typed-in numbers, as the panel’s creation methods do — point: point-coords, point-centroid, point-midpoint, point-line-plane; line: line-two-points, line-axis, line-plane-plane; plane: plane-three-points, plane-offset, plane-midplane, plane-coords, plane-symmetry; circle: circle-plane-cylinder, circle-plane-sphere, circle-coords. refs fill the slots in order, by id or name (a section stands in a plane’s slot as its cut plane; \"XY\", \"YZ\", \"XZ\" become plane elements, listed under made); params are the numbers in order or by key. point-centroid and plane-symmetry measure the scan (vertices confines them, seed starts the symmetry search), plane-symmetry answering symmetry { rms, matched, sampled }. Returns the element. One undo step.",
|
|
994
994
|
"input": {
|
|
995
995
|
"type": "object",
|
|
996
996
|
"properties": {
|
|
@@ -1019,16 +1019,16 @@
|
|
|
1019
1019
|
"oneOf": [
|
|
1020
1020
|
{
|
|
1021
1021
|
"type": "integer",
|
|
1022
|
-
"description": "
|
|
1022
|
+
"description": "Its id.",
|
|
1023
1023
|
"minimum": 1
|
|
1024
1024
|
},
|
|
1025
1025
|
{
|
|
1026
1026
|
"type": "string",
|
|
1027
|
-
"description": "
|
|
1027
|
+
"description": "Its name — \"Sphere 1\".",
|
|
1028
1028
|
"minLength": 1
|
|
1029
1029
|
}
|
|
1030
1030
|
],
|
|
1031
|
-
"description": "A source element
|
|
1031
|
+
"description": "A source element; in a plane’s slot also a section or \"XY\", \"YZ\", \"XZ\"."
|
|
1032
1032
|
},
|
|
1033
1033
|
"description": "The method’s source elements, slot by slot."
|
|
1034
1034
|
},
|
|
@@ -1043,26 +1043,26 @@
|
|
|
1043
1043
|
},
|
|
1044
1044
|
{
|
|
1045
1045
|
"type": "object",
|
|
1046
|
-
"description": "The numbers by key.",
|
|
1046
|
+
"description": "The numbers by key (x, y, z; offset; nx, ny, nz, px, py, pz; d, cx, cy, cz).",
|
|
1047
1047
|
"additionalProperties": true
|
|
1048
1048
|
}
|
|
1049
1049
|
],
|
|
1050
|
-
"description": "The method’s typed-in numbers,
|
|
1050
|
+
"description": "The method’s typed-in numbers, mm."
|
|
1051
1051
|
},
|
|
1052
1052
|
"seed": {
|
|
1053
1053
|
"oneOf": [
|
|
1054
1054
|
{
|
|
1055
1055
|
"type": "integer",
|
|
1056
|
-
"description": "
|
|
1056
|
+
"description": "Its id.",
|
|
1057
1057
|
"minimum": 1
|
|
1058
1058
|
},
|
|
1059
1059
|
{
|
|
1060
1060
|
"type": "string",
|
|
1061
|
-
"description": "
|
|
1061
|
+
"description": "Its name — \"Sphere 1\".",
|
|
1062
1062
|
"minLength": 1
|
|
1063
1063
|
}
|
|
1064
1064
|
],
|
|
1065
|
-
"description": "plane-symmetry: the plane the search starts from
|
|
1065
|
+
"description": "plane-symmetry: the plane the search starts from."
|
|
1066
1066
|
},
|
|
1067
1067
|
"vertices": {
|
|
1068
1068
|
"type": "array",
|
|
@@ -1070,12 +1070,12 @@
|
|
|
1070
1070
|
"type": "integer",
|
|
1071
1071
|
"minimum": 0
|
|
1072
1072
|
},
|
|
1073
|
-
"description": "point-centroid, plane-symmetry:
|
|
1073
|
+
"description": "point-centroid, plane-symmetry: only these scan vertices.",
|
|
1074
1074
|
"minItems": 3
|
|
1075
1075
|
},
|
|
1076
1076
|
"assumed": {
|
|
1077
1077
|
"type": "number",
|
|
1078
|
-
"description": "The
|
|
1078
|
+
"description": "The designed diameter, mm: drawn and exported at it, reported as measured.",
|
|
1079
1079
|
"exclusiveMinimum": 0
|
|
1080
1080
|
},
|
|
1081
1081
|
"orient": {
|
|
@@ -1085,16 +1085,16 @@
|
|
|
1085
1085
|
"oneOf": [
|
|
1086
1086
|
{
|
|
1087
1087
|
"type": "integer",
|
|
1088
|
-
"description": "
|
|
1088
|
+
"description": "Its id.",
|
|
1089
1089
|
"minimum": 1
|
|
1090
1090
|
},
|
|
1091
1091
|
{
|
|
1092
1092
|
"type": "string",
|
|
1093
|
-
"description": "
|
|
1093
|
+
"description": "Its name — \"Sphere 1\".",
|
|
1094
1094
|
"minLength": 1
|
|
1095
1095
|
}
|
|
1096
1096
|
],
|
|
1097
|
-
"description": "
|
|
1097
|
+
"description": "A plane element, a section, or \"XY\", \"YZ\", \"XZ\"."
|
|
1098
1098
|
},
|
|
1099
1099
|
"relation": {
|
|
1100
1100
|
"type": "string",
|
|
@@ -1102,18 +1102,18 @@
|
|
|
1102
1102
|
"normal",
|
|
1103
1103
|
"inPlane"
|
|
1104
1104
|
],
|
|
1105
|
-
"description": "normal (the default): the
|
|
1105
|
+
"description": "normal (the default): the direction is the plane’s normal. inPlane: it lies in the plane."
|
|
1106
1106
|
}
|
|
1107
1107
|
},
|
|
1108
1108
|
"required": [
|
|
1109
1109
|
"to"
|
|
1110
1110
|
],
|
|
1111
1111
|
"additionalProperties": false,
|
|
1112
|
-
"description": "Align the
|
|
1112
|
+
"description": "Align the direction to a plane, as designed; the measured fit is kept beside it."
|
|
1113
1113
|
},
|
|
1114
1114
|
"name": {
|
|
1115
1115
|
"type": "string",
|
|
1116
|
-
"description": "A name
|
|
1116
|
+
"description": "A name; else numbered by kind — \"Sphere 2\".",
|
|
1117
1117
|
"minLength": 1
|
|
1118
1118
|
}
|
|
1119
1119
|
},
|
|
@@ -1130,7 +1130,7 @@
|
|
|
1130
1130
|
{
|
|
1131
1131
|
"name": "element.fit",
|
|
1132
1132
|
"title": "Fit an element",
|
|
1133
|
-
"description": "Fit an element on the scan where the panel would take a click: a plane, sphere, cylinder, cone or torus grows its surface from the place
|
|
1133
|
+
"description": "Fit an element on the scan where the panel would take a click: a plane, sphere, cylinder, cone or torus grows its surface from the place (or places) in at and is best-fitted to it; a point is the place itself; a circle goes through three or more places, or round an open rim (rim, numbered by scan.qa). A place is { vertex } or { point: [x, y, z] } (mm, current frame; the nearest vertex is taken). Trap: a seed near an edge can land on the wrong surface — say what is sought with side, radius, axis or within, and surfaces that do not match are passed over. Returns the element with its fit, the seeds used (inRegion, offMm, deg), the region grown (area, box, normalSpreadDeg, fill, sagitta) and a warning when the points look like two surfaces, a bore steps or is closed at an end, or a plane is a bead’s crown — the measure-reference guide (Elements) says how to read each. One undo step.",
|
|
1134
1134
|
"input": {
|
|
1135
1135
|
"type": "object",
|
|
1136
1136
|
"properties": {
|
|
@@ -1156,7 +1156,7 @@
|
|
|
1156
1156
|
"properties": {
|
|
1157
1157
|
"vertex": {
|
|
1158
1158
|
"type": "integer",
|
|
1159
|
-
"description": "A scan vertex
|
|
1159
|
+
"description": "A scan vertex number.",
|
|
1160
1160
|
"minimum": 0
|
|
1161
1161
|
}
|
|
1162
1162
|
},
|
|
@@ -1173,7 +1173,7 @@
|
|
|
1173
1173
|
"items": {
|
|
1174
1174
|
"type": "number"
|
|
1175
1175
|
},
|
|
1176
|
-
"description": "
|
|
1176
|
+
"description": "[x, y, z] mm in the current frame; the nearest scan vertex is taken.",
|
|
1177
1177
|
"minItems": 3,
|
|
1178
1178
|
"maxItems": 3
|
|
1179
1179
|
}
|
|
@@ -1191,7 +1191,7 @@
|
|
|
1191
1191
|
"items": {
|
|
1192
1192
|
"type": "number"
|
|
1193
1193
|
},
|
|
1194
|
-
"description": "A pixel
|
|
1194
|
+
"description": "A viewport pixel [x, y] (not available yet).",
|
|
1195
1195
|
"minItems": 2,
|
|
1196
1196
|
"maxItems": 2
|
|
1197
1197
|
}
|
|
@@ -1206,7 +1206,7 @@
|
|
|
1206
1206
|
"properties": {
|
|
1207
1207
|
"candidate": {
|
|
1208
1208
|
"type": "integer",
|
|
1209
|
-
"description": "A feature from scan.candidates.",
|
|
1209
|
+
"description": "A feature from scan.candidates (not available yet).",
|
|
1210
1210
|
"minimum": 0
|
|
1211
1211
|
}
|
|
1212
1212
|
},
|
|
@@ -1227,7 +1227,7 @@
|
|
|
1227
1227
|
"properties": {
|
|
1228
1228
|
"vertex": {
|
|
1229
1229
|
"type": "integer",
|
|
1230
|
-
"description": "A scan vertex
|
|
1230
|
+
"description": "A scan vertex number.",
|
|
1231
1231
|
"minimum": 0
|
|
1232
1232
|
}
|
|
1233
1233
|
},
|
|
@@ -1244,7 +1244,7 @@
|
|
|
1244
1244
|
"items": {
|
|
1245
1245
|
"type": "number"
|
|
1246
1246
|
},
|
|
1247
|
-
"description": "
|
|
1247
|
+
"description": "[x, y, z] mm in the current frame; the nearest scan vertex is taken.",
|
|
1248
1248
|
"minItems": 3,
|
|
1249
1249
|
"maxItems": 3
|
|
1250
1250
|
}
|
|
@@ -1262,7 +1262,7 @@
|
|
|
1262
1262
|
"items": {
|
|
1263
1263
|
"type": "number"
|
|
1264
1264
|
},
|
|
1265
|
-
"description": "A pixel
|
|
1265
|
+
"description": "A viewport pixel [x, y] (not available yet).",
|
|
1266
1266
|
"minItems": 2,
|
|
1267
1267
|
"maxItems": 2
|
|
1268
1268
|
}
|
|
@@ -1277,7 +1277,7 @@
|
|
|
1277
1277
|
"properties": {
|
|
1278
1278
|
"candidate": {
|
|
1279
1279
|
"type": "integer",
|
|
1280
|
-
"description": "A feature from scan.candidates.",
|
|
1280
|
+
"description": "A feature from scan.candidates (not available yet).",
|
|
1281
1281
|
"minimum": 0
|
|
1282
1282
|
}
|
|
1283
1283
|
},
|
|
@@ -1301,7 +1301,7 @@
|
|
|
1301
1301
|
"inside",
|
|
1302
1302
|
"outside"
|
|
1303
1303
|
],
|
|
1304
|
-
"description": "Sphere, cylinder, cone: inside
|
|
1304
|
+
"description": "Sphere, cylinder, cone: inside (concave, a bore) or outside (convex, a shaft)."
|
|
1305
1305
|
},
|
|
1306
1306
|
"radius": {
|
|
1307
1307
|
"type": "object",
|
|
@@ -1318,7 +1318,7 @@
|
|
|
1318
1318
|
}
|
|
1319
1319
|
},
|
|
1320
1320
|
"additionalProperties": false,
|
|
1321
|
-
"description": "Sphere, cylinder, cone: the radius range
|
|
1321
|
+
"description": "Sphere, cylinder, cone: the radius range sought."
|
|
1322
1322
|
},
|
|
1323
1323
|
"axis": {
|
|
1324
1324
|
"type": "array",
|
|
@@ -1360,11 +1360,11 @@
|
|
|
1360
1360
|
},
|
|
1361
1361
|
"mark": {
|
|
1362
1362
|
"type": "boolean",
|
|
1363
|
-
"description": "Leave the region
|
|
1363
|
+
"description": "Leave the grown region marked for element.fit_marked."
|
|
1364
1364
|
},
|
|
1365
1365
|
"rim": {
|
|
1366
1366
|
"type": "integer",
|
|
1367
|
-
"description": "
|
|
1367
|
+
"description": "Circle: an open rim of the scan by its scan.qa number, in place of at.",
|
|
1368
1368
|
"minimum": 0
|
|
1369
1369
|
},
|
|
1370
1370
|
"sigma": {
|
|
@@ -1375,16 +1375,16 @@
|
|
|
1375
1375
|
1,
|
|
1376
1376
|
0
|
|
1377
1377
|
],
|
|
1378
|
-
"description": "
|
|
1378
|
+
"description": "Outlier cut-off, sigma: 3 (the default), 2, 1, or 0 for all points."
|
|
1379
1379
|
},
|
|
1380
1380
|
"knownDiameter": {
|
|
1381
1381
|
"type": "number",
|
|
1382
|
-
"description": "Sphere:
|
|
1382
|
+
"description": "Sphere: a known diameter held, mm (a gauge ball); the centre alone is fitted.",
|
|
1383
1383
|
"exclusiveMinimum": 0
|
|
1384
1384
|
},
|
|
1385
1385
|
"assumed": {
|
|
1386
1386
|
"type": "number",
|
|
1387
|
-
"description": "The
|
|
1387
|
+
"description": "The designed diameter, mm: drawn and exported at it, reported as measured.",
|
|
1388
1388
|
"exclusiveMinimum": 0
|
|
1389
1389
|
},
|
|
1390
1390
|
"orient": {
|
|
@@ -1394,16 +1394,16 @@
|
|
|
1394
1394
|
"oneOf": [
|
|
1395
1395
|
{
|
|
1396
1396
|
"type": "integer",
|
|
1397
|
-
"description": "
|
|
1397
|
+
"description": "Its id.",
|
|
1398
1398
|
"minimum": 1
|
|
1399
1399
|
},
|
|
1400
1400
|
{
|
|
1401
1401
|
"type": "string",
|
|
1402
|
-
"description": "
|
|
1402
|
+
"description": "Its name — \"Sphere 1\".",
|
|
1403
1403
|
"minLength": 1
|
|
1404
1404
|
}
|
|
1405
1405
|
],
|
|
1406
|
-
"description": "
|
|
1406
|
+
"description": "A plane element, a section, or \"XY\", \"YZ\", \"XZ\"."
|
|
1407
1407
|
},
|
|
1408
1408
|
"relation": {
|
|
1409
1409
|
"type": "string",
|
|
@@ -1411,49 +1411,49 @@
|
|
|
1411
1411
|
"normal",
|
|
1412
1412
|
"inPlane"
|
|
1413
1413
|
],
|
|
1414
|
-
"description": "normal (the default): the
|
|
1414
|
+
"description": "normal (the default): the direction is the plane’s normal. inPlane: it lies in the plane."
|
|
1415
1415
|
}
|
|
1416
1416
|
},
|
|
1417
1417
|
"required": [
|
|
1418
1418
|
"to"
|
|
1419
1419
|
],
|
|
1420
1420
|
"additionalProperties": false,
|
|
1421
|
-
"description": "Align the
|
|
1421
|
+
"description": "Align the direction to a plane, as designed; the measured fit is kept beside it."
|
|
1422
1422
|
},
|
|
1423
1423
|
"extend": {
|
|
1424
1424
|
"type": "object",
|
|
1425
1425
|
"properties": {
|
|
1426
1426
|
"start": {
|
|
1427
1427
|
"type": "number",
|
|
1428
|
-
"description": "Cylinder:
|
|
1428
|
+
"description": "Cylinder: mm past the start (negative pulls it in)."
|
|
1429
1429
|
},
|
|
1430
1430
|
"end": {
|
|
1431
1431
|
"type": "number",
|
|
1432
|
-
"description": "Cylinder:
|
|
1432
|
+
"description": "Cylinder: mm past the end."
|
|
1433
1433
|
},
|
|
1434
1434
|
"uMin": {
|
|
1435
1435
|
"type": "number",
|
|
1436
|
-
"description": "Plane:
|
|
1436
|
+
"description": "Plane: mm past the edge along its first axis."
|
|
1437
1437
|
},
|
|
1438
1438
|
"uMax": {
|
|
1439
1439
|
"type": "number",
|
|
1440
|
-
"description": "Plane:
|
|
1440
|
+
"description": "Plane: the opposite edge."
|
|
1441
1441
|
},
|
|
1442
1442
|
"vMin": {
|
|
1443
1443
|
"type": "number",
|
|
1444
|
-
"description": "Plane:
|
|
1444
|
+
"description": "Plane: along its second axis."
|
|
1445
1445
|
},
|
|
1446
1446
|
"vMax": {
|
|
1447
1447
|
"type": "number",
|
|
1448
|
-
"description": "Plane:
|
|
1448
|
+
"description": "Plane: the opposite edge."
|
|
1449
1449
|
}
|
|
1450
1450
|
},
|
|
1451
1451
|
"additionalProperties": false,
|
|
1452
|
-
"description": "
|
|
1452
|
+
"description": "Mm a cylinder or plane is drawn and exported past the measured surface."
|
|
1453
1453
|
},
|
|
1454
1454
|
"name": {
|
|
1455
1455
|
"type": "string",
|
|
1456
|
-
"description": "A name
|
|
1456
|
+
"description": "A name; else numbered by kind — \"Sphere 2\".",
|
|
1457
1457
|
"minLength": 1
|
|
1458
1458
|
}
|
|
1459
1459
|
},
|
|
@@ -1469,7 +1469,7 @@
|
|
|
1469
1469
|
{
|
|
1470
1470
|
"name": "element.fit_marked",
|
|
1471
1471
|
"title": "Fit an element to a marked surface",
|
|
1472
|
-
"description": "Fit a plane, sphere, cylinder, cone or torus to exactly the scan vertices given
|
|
1472
|
+
"description": "Fit a plane, sphere, cylinder, cone or torus to exactly the scan vertices given, with no search for the surface — vertices, or marked: true for the points the last element.fit { mark: true }, scan.segment { mark } or scan.query { mark: true } left marked, or box (with normal: only those facing a way) for every vertex inside it. The element keeps the marking as its recipe. Returns the element, and with box how many points it took. One undo step.",
|
|
1473
1473
|
"input": {
|
|
1474
1474
|
"type": "object",
|
|
1475
1475
|
"properties": {
|
|
@@ -1505,7 +1505,7 @@
|
|
|
1505
1505
|
"items": {
|
|
1506
1506
|
"type": "number"
|
|
1507
1507
|
},
|
|
1508
|
-
"description": "
|
|
1508
|
+
"description": "Lowest corner, mm.",
|
|
1509
1509
|
"minItems": 3,
|
|
1510
1510
|
"maxItems": 3
|
|
1511
1511
|
},
|
|
@@ -1514,7 +1514,7 @@
|
|
|
1514
1514
|
"items": {
|
|
1515
1515
|
"type": "number"
|
|
1516
1516
|
},
|
|
1517
|
-
"description": "
|
|
1517
|
+
"description": "Highest corner, mm.",
|
|
1518
1518
|
"minItems": 3,
|
|
1519
1519
|
"maxItems": 3
|
|
1520
1520
|
}
|
|
@@ -1534,7 +1534,7 @@
|
|
|
1534
1534
|
"items": {
|
|
1535
1535
|
"type": "number"
|
|
1536
1536
|
},
|
|
1537
|
-
"description": "
|
|
1537
|
+
"description": "A direction, any length.",
|
|
1538
1538
|
"minItems": 3,
|
|
1539
1539
|
"maxItems": 3
|
|
1540
1540
|
},
|
|
@@ -1559,16 +1559,16 @@
|
|
|
1559
1559
|
1,
|
|
1560
1560
|
0
|
|
1561
1561
|
],
|
|
1562
|
-
"description": "
|
|
1562
|
+
"description": "Outlier cut-off, sigma: 3 (the default), 2, 1, or 0 for all points."
|
|
1563
1563
|
},
|
|
1564
1564
|
"knownDiameter": {
|
|
1565
1565
|
"type": "number",
|
|
1566
|
-
"description": "Sphere:
|
|
1566
|
+
"description": "Sphere: a known diameter held, mm (a gauge ball); the centre alone is fitted.",
|
|
1567
1567
|
"exclusiveMinimum": 0
|
|
1568
1568
|
},
|
|
1569
1569
|
"assumed": {
|
|
1570
1570
|
"type": "number",
|
|
1571
|
-
"description": "The
|
|
1571
|
+
"description": "The designed diameter, mm: drawn and exported at it, reported as measured.",
|
|
1572
1572
|
"exclusiveMinimum": 0
|
|
1573
1573
|
},
|
|
1574
1574
|
"orient": {
|
|
@@ -1578,16 +1578,16 @@
|
|
|
1578
1578
|
"oneOf": [
|
|
1579
1579
|
{
|
|
1580
1580
|
"type": "integer",
|
|
1581
|
-
"description": "
|
|
1581
|
+
"description": "Its id.",
|
|
1582
1582
|
"minimum": 1
|
|
1583
1583
|
},
|
|
1584
1584
|
{
|
|
1585
1585
|
"type": "string",
|
|
1586
|
-
"description": "
|
|
1586
|
+
"description": "Its name — \"Sphere 1\".",
|
|
1587
1587
|
"minLength": 1
|
|
1588
1588
|
}
|
|
1589
1589
|
],
|
|
1590
|
-
"description": "
|
|
1590
|
+
"description": "A plane element, a section, or \"XY\", \"YZ\", \"XZ\"."
|
|
1591
1591
|
},
|
|
1592
1592
|
"relation": {
|
|
1593
1593
|
"type": "string",
|
|
@@ -1595,49 +1595,49 @@
|
|
|
1595
1595
|
"normal",
|
|
1596
1596
|
"inPlane"
|
|
1597
1597
|
],
|
|
1598
|
-
"description": "normal (the default): the
|
|
1598
|
+
"description": "normal (the default): the direction is the plane’s normal. inPlane: it lies in the plane."
|
|
1599
1599
|
}
|
|
1600
1600
|
},
|
|
1601
1601
|
"required": [
|
|
1602
1602
|
"to"
|
|
1603
1603
|
],
|
|
1604
1604
|
"additionalProperties": false,
|
|
1605
|
-
"description": "Align the
|
|
1605
|
+
"description": "Align the direction to a plane, as designed; the measured fit is kept beside it."
|
|
1606
1606
|
},
|
|
1607
1607
|
"extend": {
|
|
1608
1608
|
"type": "object",
|
|
1609
1609
|
"properties": {
|
|
1610
1610
|
"start": {
|
|
1611
1611
|
"type": "number",
|
|
1612
|
-
"description": "Cylinder:
|
|
1612
|
+
"description": "Cylinder: mm past the start (negative pulls it in)."
|
|
1613
1613
|
},
|
|
1614
1614
|
"end": {
|
|
1615
1615
|
"type": "number",
|
|
1616
|
-
"description": "Cylinder:
|
|
1616
|
+
"description": "Cylinder: mm past the end."
|
|
1617
1617
|
},
|
|
1618
1618
|
"uMin": {
|
|
1619
1619
|
"type": "number",
|
|
1620
|
-
"description": "Plane:
|
|
1620
|
+
"description": "Plane: mm past the edge along its first axis."
|
|
1621
1621
|
},
|
|
1622
1622
|
"uMax": {
|
|
1623
1623
|
"type": "number",
|
|
1624
|
-
"description": "Plane:
|
|
1624
|
+
"description": "Plane: the opposite edge."
|
|
1625
1625
|
},
|
|
1626
1626
|
"vMin": {
|
|
1627
1627
|
"type": "number",
|
|
1628
|
-
"description": "Plane:
|
|
1628
|
+
"description": "Plane: along its second axis."
|
|
1629
1629
|
},
|
|
1630
1630
|
"vMax": {
|
|
1631
1631
|
"type": "number",
|
|
1632
|
-
"description": "Plane:
|
|
1632
|
+
"description": "Plane: the opposite edge."
|
|
1633
1633
|
}
|
|
1634
1634
|
},
|
|
1635
1635
|
"additionalProperties": false,
|
|
1636
|
-
"description": "
|
|
1636
|
+
"description": "Mm a cylinder or plane is drawn and exported past the measured surface."
|
|
1637
1637
|
},
|
|
1638
1638
|
"name": {
|
|
1639
1639
|
"type": "string",
|
|
1640
|
-
"description": "A name
|
|
1640
|
+
"description": "A name; else numbered by kind — \"Sphere 2\".",
|
|
1641
1641
|
"minLength": 1
|
|
1642
1642
|
}
|
|
1643
1643
|
},
|
|
@@ -1653,7 +1653,7 @@
|
|
|
1653
1653
|
{
|
|
1654
1654
|
"name": "element.remove",
|
|
1655
1655
|
"title": "Delete an element",
|
|
1656
|
-
"description": "Delete an element
|
|
1656
|
+
"description": "Delete an element — and with it every construction built on it and every dimension on any of them. Returns what went. One undo step.",
|
|
1657
1657
|
"input": {
|
|
1658
1658
|
"type": "object",
|
|
1659
1659
|
"properties": {
|
|
@@ -1661,12 +1661,12 @@
|
|
|
1661
1661
|
"oneOf": [
|
|
1662
1662
|
{
|
|
1663
1663
|
"type": "integer",
|
|
1664
|
-
"description": "
|
|
1664
|
+
"description": "Its id.",
|
|
1665
1665
|
"minimum": 1
|
|
1666
1666
|
},
|
|
1667
1667
|
{
|
|
1668
1668
|
"type": "string",
|
|
1669
|
-
"description": "
|
|
1669
|
+
"description": "Its name — \"Sphere 1\".",
|
|
1670
1670
|
"minLength": 1
|
|
1671
1671
|
}
|
|
1672
1672
|
],
|
|
@@ -1693,12 +1693,12 @@
|
|
|
1693
1693
|
"oneOf": [
|
|
1694
1694
|
{
|
|
1695
1695
|
"type": "integer",
|
|
1696
|
-
"description": "
|
|
1696
|
+
"description": "Its id.",
|
|
1697
1697
|
"minimum": 1
|
|
1698
1698
|
},
|
|
1699
1699
|
{
|
|
1700
1700
|
"type": "string",
|
|
1701
|
-
"description": "
|
|
1701
|
+
"description": "Its name — \"Sphere 1\".",
|
|
1702
1702
|
"minLength": 1
|
|
1703
1703
|
}
|
|
1704
1704
|
],
|
|
@@ -1731,12 +1731,12 @@
|
|
|
1731
1731
|
"oneOf": [
|
|
1732
1732
|
{
|
|
1733
1733
|
"type": "integer",
|
|
1734
|
-
"description": "
|
|
1734
|
+
"description": "Its id.",
|
|
1735
1735
|
"minimum": 1
|
|
1736
1736
|
},
|
|
1737
1737
|
{
|
|
1738
1738
|
"type": "string",
|
|
1739
|
-
"description": "
|
|
1739
|
+
"description": "Its name — \"Sphere 1\".",
|
|
1740
1740
|
"minLength": 1
|
|
1741
1741
|
}
|
|
1742
1742
|
],
|
|
@@ -1811,7 +1811,7 @@
|
|
|
1811
1811
|
{
|
|
1812
1812
|
"name": "export.step",
|
|
1813
1813
|
"title": "Export the elements as STEP",
|
|
1814
|
-
"description": "The measured elements as analytic STEP geometry for CAD — as drawn, extensions and assumed diameters included — and, in a group per section, what was measured on the sections. style: solids (the default
|
|
1814
|
+
"description": "The measured elements as analytic STEP geometry for CAD — as drawn, extensions and assumed diameters included — and, in a group per section, what was measured on the sections. style: solids (the default: solids and faces) or surfaces (construction surfaces), remembered as the panel’s choice. Returns the file’s bytes and the name the panel would save it under.",
|
|
1815
1815
|
"input": {
|
|
1816
1816
|
"type": "object",
|
|
1817
1817
|
"properties": {
|
|
@@ -1868,7 +1868,7 @@
|
|
|
1868
1868
|
{
|
|
1869
1869
|
"name": "flat.calibrate",
|
|
1870
1870
|
"title": "Calibrate the image",
|
|
1871
|
-
"description": "Set the image’s scale against a known length, as the Calibrate tool does: distance takes two places a known distance apart, diameter three or more on a circle of known diameter; mm is that length. Every measurement
|
|
1871
|
+
"description": "Set the image’s scale against a known length, as the Calibrate tool does: distance takes two places a known distance apart, diameter three or more on a circle of known diameter; mm is that length. Every measurement follows the new scale, and the edges are found again (their chain numbers change). Returns the calibration. One undo step.",
|
|
1872
1872
|
"input": {
|
|
1873
1873
|
"type": "object",
|
|
1874
1874
|
"properties": {
|
|
@@ -1987,7 +1987,7 @@
|
|
|
1987
1987
|
{
|
|
1988
1988
|
"name": "flat.edges",
|
|
1989
1989
|
"title": "List the detected edges",
|
|
1990
|
-
"description": "The edge chains detected on the sheet, by number — what flat.fit takes as chains
|
|
1990
|
+
"description": "The edge chains detected on the sheet, by number — what flat.fit takes as chains. Each with its length, whether it closes, its point count and box, in the sheet’s units; the longest first, or with near the nearest first (each with its nearest point and distance; within reach only, when given). box keeps the chains that enter it, minLength the long ones. tolerance adds each chain’s polyline thinned to that (5000 points at most over all). limit chains at most, 50 by default. Trap: the numbers change when the edges are found again. Changes nothing.",
|
|
1991
1991
|
"input": {
|
|
1992
1992
|
"type": "object",
|
|
1993
1993
|
"properties": {
|
|
@@ -2060,7 +2060,7 @@
|
|
|
2060
2060
|
{
|
|
2061
2061
|
"name": "flat.edit",
|
|
2062
2062
|
"title": "Change a 2D element, dimension, note or count",
|
|
2063
|
-
"description": "Change one thing on the 2D sheet,
|
|
2063
|
+
"description": "Change one thing on the 2D sheet, by id or name: an element, a dimension or a count takes a new name; a note new text or a new place (at, its lower-left corner); any of them visible: false to leave it out of the stage, the picture and the exports. Returns the 2D state. One undo step.",
|
|
2064
2064
|
"input": {
|
|
2065
2065
|
"type": "object",
|
|
2066
2066
|
"properties": {
|
|
@@ -2147,7 +2147,7 @@
|
|
|
2147
2147
|
{
|
|
2148
2148
|
"name": "flat.fit",
|
|
2149
2149
|
"title": "Fit a 2D element",
|
|
2150
|
-
"description": "Make a 2D element on the sheet as its tool does — kind point, line, circle, arc or spline, by a method of that kind: point: flat-point-pick (pick), flat-point-midpoint (construct), flat-point-intersect (construct), flat-point-center (construct); line: flat-line-pick (pick), flat-line-seed (seed), flat-line-edge (edge); circle: flat-circle-pick (pick), flat-circle-seed (seed), flat-circle-edge (edge), flat-circle-centers (construct); arc: flat-arc-pick (pick), flat-arc-edge (edge); spline: flat-spline-pick (pick). A pick method takes points, the places clicked
|
|
2150
|
+
"description": "Make a 2D element on the sheet as its tool does — kind point, line, circle, arc or spline, by a method of that kind: point: flat-point-pick (pick), flat-point-midpoint (construct), flat-point-intersect (construct), flat-point-center (construct); line: flat-line-pick (pick), flat-line-seed (seed), flat-line-edge (edge); circle: flat-circle-pick (pick), flat-circle-seed (seed), flat-circle-edge (edge), flat-circle-centers (construct); arc: flat-arc-pick (pick), flat-arc-edge (edge); spline: flat-spline-pick (pick). A pick method takes points, the places clicked (snapped to the nearest edge within reach unless snap: false; picks says where each landed); a seed method one place on an edge and grows along it; an edge method a place on an edge taken whole, or chains and box; a construct method refs, other 2D elements. Returns the element with its fit. One undo step.",
|
|
2151
2151
|
"input": {
|
|
2152
2152
|
"type": "object",
|
|
2153
2153
|
"properties": {
|
|
@@ -2187,7 +2187,7 @@
|
|
|
2187
2187
|
"type": "integer",
|
|
2188
2188
|
"minimum": 0
|
|
2189
2189
|
},
|
|
2190
|
-
"description": "Edge chains by number, taken whole
|
|
2190
|
+
"description": "Edge chains by number, taken whole (edge or seed methods).",
|
|
2191
2191
|
"minItems": 1
|
|
2192
2192
|
},
|
|
2193
2193
|
"box": {
|
|
@@ -2217,7 +2217,7 @@
|
|
|
2217
2217
|
"max"
|
|
2218
2218
|
],
|
|
2219
2219
|
"additionalProperties": false,
|
|
2220
|
-
"description": "Edge points inside this box,
|
|
2220
|
+
"description": "Edge points inside this box, sheet units (edge or seed methods)."
|
|
2221
2221
|
},
|
|
2222
2222
|
"refs": {
|
|
2223
2223
|
"type": "array",
|
|
@@ -2245,11 +2245,11 @@
|
|
|
2245
2245
|
},
|
|
2246
2246
|
"snap": {
|
|
2247
2247
|
"type": "boolean",
|
|
2248
|
-
"description": "Picks snap to the nearest edge within reach
|
|
2248
|
+
"description": "Picks snap to the nearest edge within reach; true by default."
|
|
2249
2249
|
},
|
|
2250
2250
|
"reach": {
|
|
2251
2251
|
"type": "number",
|
|
2252
|
-
"description": "How far a place reaches for an edge,
|
|
2252
|
+
"description": "How far a place reaches for an edge, sheet units; ten image pixels by default.",
|
|
2253
2253
|
"exclusiveMinimum": 0
|
|
2254
2254
|
}
|
|
2255
2255
|
},
|
|
@@ -2265,7 +2265,7 @@
|
|
|
2265
2265
|
{
|
|
2266
2266
|
"name": "flat.note_add",
|
|
2267
2267
|
"title": "Write a note on the sheet",
|
|
2268
|
-
"description": "Write a text note on the 2D sheet, as the Text tool does —
|
|
2268
|
+
"description": "Write a text note on the 2D sheet, as the Text tool does — one line, a line break written as \" / \"; at is its lower-left corner, sheet units. It is drawn on the stage and in flat.render, written into the SVG and DXF exports and listed in the report. Returns the note with its id. One undo step.",
|
|
2269
2269
|
"input": {
|
|
2270
2270
|
"type": "object",
|
|
2271
2271
|
"properties": {
|
|
@@ -2297,7 +2297,7 @@
|
|
|
2297
2297
|
{
|
|
2298
2298
|
"name": "flat.objects",
|
|
2299
2299
|
"title": "Find the parts on the image",
|
|
2300
|
-
"description": "The separate parts
|
|
2300
|
+
"description": "The separate parts on the flatbed image, parted from the background by a grey level (Otsu’s unless threshold is given) and numbered in reading order — what flat.profile takes by number. Returns each with area, holes, box, centroid, equivalentDiameter, feret (largest and smallest caliper widths with their directions), axisAngle, chains (the edge chains along its outline) and, with outline, its polygon. Trap: minArea drops smaller ones, 1 mm² by default. Changes nothing.",
|
|
2301
2301
|
"input": {
|
|
2302
2302
|
"type": "object",
|
|
2303
2303
|
"properties": {
|
|
@@ -2348,7 +2348,7 @@
|
|
|
2348
2348
|
},
|
|
2349
2349
|
"name": {
|
|
2350
2350
|
"type": "string",
|
|
2351
|
-
"description": "The file's name with its extension — \"part.png\".
|
|
2351
|
+
"description": "The file's name with its extension — \"part.png\".",
|
|
2352
2352
|
"minLength": 1
|
|
2353
2353
|
}
|
|
2354
2354
|
},
|
|
@@ -2365,7 +2365,7 @@
|
|
|
2365
2365
|
{
|
|
2366
2366
|
"name": "flat.profile",
|
|
2367
2367
|
"title": "Profile an outline and count its peaks",
|
|
2368
|
-
"description": "An outline read against a centre or along an axis, and its peaks counted — the teeth of a knurl or a gear. The outline
|
|
2368
|
+
"description": "An outline read against a centre (radial, the default: a part seen from above) or along an axis (axial: a part lying on its side, each side apart), and its peaks counted — the teeth of a knurl or a gear. The outline is an object of the last flat.objects by number, or edge chains by number; about is the element it is read about, else the outline’s own centre or long axis. Returns per side the count, pitch, envelope (max, min, mean peak, mean valley; radial also as diameters) and every peak’s position; points adds the sampled profile. Trap: a peak must stand prominence above the higher valley either side (0.3 of the profile’s spread by default). mark: true puts a count on the sheet — one undo step; otherwise nothing changes.",
|
|
2369
2369
|
"input": {
|
|
2370
2370
|
"type": "object",
|
|
2371
2371
|
"properties": {
|
|
@@ -2396,7 +2396,7 @@
|
|
|
2396
2396
|
"minLength": 1
|
|
2397
2397
|
}
|
|
2398
2398
|
],
|
|
2399
|
-
"description": "A circle, arc or point
|
|
2399
|
+
"description": "A circle, arc or point (radial), or a line (axial)."
|
|
2400
2400
|
},
|
|
2401
2401
|
"axis": {
|
|
2402
2402
|
"type": "string",
|
|
@@ -2408,13 +2408,13 @@
|
|
|
2408
2408
|
},
|
|
2409
2409
|
"samples": {
|
|
2410
2410
|
"type": "integer",
|
|
2411
|
-
"description": "Bins round the turn
|
|
2411
|
+
"description": "Bins round the turn or along the axis; from the point count by default.",
|
|
2412
2412
|
"minimum": 16,
|
|
2413
2413
|
"maximum": 20000
|
|
2414
2414
|
},
|
|
2415
2415
|
"prominence": {
|
|
2416
2416
|
"type": "number",
|
|
2417
|
-
"description": "How far a peak must stand out,
|
|
2417
|
+
"description": "How far a peak must stand out, sheet units.",
|
|
2418
2418
|
"exclusiveMinimum": 0
|
|
2419
2419
|
},
|
|
2420
2420
|
"mark": {
|
|
@@ -2435,7 +2435,7 @@
|
|
|
2435
2435
|
{
|
|
2436
2436
|
"name": "flat.remove",
|
|
2437
2437
|
"title": "Remove from the 2D sheet",
|
|
2438
|
-
"description": "Remove elements, dimensions, notes and counts from the 2D sheet, each by id or name (a note by id) — all of them or none. An element built on a removed one stays and says it has lost its source,
|
|
2438
|
+
"description": "Remove elements, dimensions, notes and counts from the 2D sheet, each by id or name (a note by id) — all of them or none. An element built on a removed one stays and says it has lost its source, a dimension on one turns invalid; the answer names them. Returns what is left. One undo step.",
|
|
2439
2439
|
"input": {
|
|
2440
2440
|
"type": "object",
|
|
2441
2441
|
"properties": {
|
|
@@ -2507,7 +2507,7 @@
|
|
|
2507
2507
|
{
|
|
2508
2508
|
"name": "flat.render",
|
|
2509
2509
|
"title": "Picture the sheet",
|
|
2510
|
-
"description": "A picture of the 2D sheet as a PNG,
|
|
2510
|
+
"description": "A picture of the 2D sheet as a PNG, as the sheet lies in its own units — +X right, +Y up, whatever the alignment or turns — with a grid and its values along the top and left edges. map says where it lies: picture pixel (column c, row r from the top) is the sheet place [left + c·unitsPerPx, top − r·unitsPerPx]. frame zooms in on a box. show puts layers in or out: image, edges (the detected chains), chains (their numbers), elements (with counts and the alignment), dimensions, notes, labels, grid. 800 px on the long side by default, up to 2048. Needs the browser.",
|
|
2511
2511
|
"input": {
|
|
2512
2512
|
"type": "object",
|
|
2513
2513
|
"properties": {
|
|
@@ -2685,7 +2685,7 @@
|
|
|
2685
2685
|
{
|
|
2686
2686
|
"name": "guide.read",
|
|
2687
2687
|
"title": "Read a guide",
|
|
2688
|
-
"description": "How to do a task with ScanRuler: the workflow, the judgement and the traps the tools’ own descriptions do not carry, written for this build — read the guide for your task, whole, before its first step, and a section again when you need it. The guides: measure — measuring a 3D scan: fitting elements, dimensions and GD&T-like checks, sections and the 2D sheet, deviation against a reference part, wall thickness, the report — by hand or as an automatic run over many scans; measure-reference — the measuring tools’ shapes with examples, what each answer costs, what each refusal means — a section at a time, as the measure guide sends you. topic: a guide, or several read in order (a guide and the ones it is read with, in one call) — as many as fit in about 80 k characters, the rest named in next, to read in the next call. section: one section of one guide, by its heading — the index lists them. A long section with ### parts under it — a reference’s list of command shapes — is best read by those parts: section takes a ### heading too, the one part you need. With no topic, the index: each guide with its sections and what each costs in tokens. Changes nothing.",
|
|
2688
|
+
"description": "How to do a task with ScanRuler: the workflow, the judgement and the traps the tools’ own descriptions do not carry, written for this build — read the guide for your task, whole, before its first step, and a section again when you need it. The guides: measure — measuring a 3D scan: fitting elements, dimensions and GD&T-like checks, sections and the 2D sheet, deviation against a reference part, wall thickness, the report — by hand or as an automatic run over many scans; measure-reference — the measuring tools’ shapes with examples, what each answer costs, what each refusal means — a section at a time, as the measure guide sends you. topic: a guide, or several read in order (a guide and the ones it is read with, in one call) — as many as fit in about 80 k characters, the rest named in next, to read in the next call. A guide longer than that by itself answers its sections in order while they fit, and names the rest in sectionsLeft, each to read by section. A guide’s sections for one moment of the task — measuring, building — are not in the whole read: later names each with when to read it, and the note says how; read it by section when that moment comes, before the step it is for. section: one section of one guide, by its heading — the index lists them, with when to read those a whole read leaves for later. A long section with ### parts under it — a reference’s list of command shapes — is best read by those parts: section takes a ### heading too, the one part you need. With no topic, the index: each guide with its sections and what each costs in tokens. Changes nothing.",
|
|
2689
2689
|
"input": {
|
|
2690
2690
|
"type": "object",
|
|
2691
2691
|
"properties": {
|
|
@@ -2707,7 +2707,7 @@
|
|
|
2707
2707
|
},
|
|
2708
2708
|
"section": {
|
|
2709
2709
|
"type": "string",
|
|
2710
|
-
"description": "One section of the guide, by its heading — a ## section or a ### part of one (without its number, or a part of it that names one section). Only with one topic.",
|
|
2710
|
+
"description": "One section of the guide, by its heading — a ## section or a ### part of one (without its number, or a part of it that names one section), whole: a section the whole read named in later, when its moment comes, or one to read again. Only with one topic.",
|
|
2711
2711
|
"minLength": 1
|
|
2712
2712
|
}
|
|
2713
2713
|
},
|
|
@@ -2733,10 +2733,19 @@
|
|
|
2733
2733
|
{
|
|
2734
2734
|
"name": "history.redo",
|
|
2735
2735
|
"title": "Redo",
|
|
2736
|
-
"description": "Redo the step undone last. Returns the step’s name and the session afterwards.",
|
|
2736
|
+
"description": "Redo the step undone last. Returns the step’s name and the session afterwards in brief (detail \"full\": the whole of it).",
|
|
2737
2737
|
"input": {
|
|
2738
2738
|
"type": "object",
|
|
2739
|
-
"properties": {
|
|
2739
|
+
"properties": {
|
|
2740
|
+
"detail": {
|
|
2741
|
+
"type": "string",
|
|
2742
|
+
"enum": [
|
|
2743
|
+
"brief",
|
|
2744
|
+
"full"
|
|
2745
|
+
],
|
|
2746
|
+
"description": "brief (the default): what the steps change, in brief, as after; full: the whole session, as state."
|
|
2747
|
+
}
|
|
2748
|
+
},
|
|
2740
2749
|
"additionalProperties": false
|
|
2741
2750
|
},
|
|
2742
2751
|
"readOnly": false,
|
|
@@ -2746,7 +2755,7 @@
|
|
|
2746
2755
|
{
|
|
2747
2756
|
"name": "history.restore",
|
|
2748
2757
|
"title": "Back to a mark in the history",
|
|
2749
|
-
"description": "Undo every step made since history.checkpoint gave this checkpoint, newest first
|
|
2758
|
+
"description": "Undo every step made since history.checkpoint gave this checkpoint, newest first — a run of changes that went wrong in the middle taken back whole. Refused, undoing nothing, when the mark is gone: undone past it, or the history started afresh (a scan or project opened). Returns the steps undone, newest first, and the session afterwards.",
|
|
2750
2759
|
"input": {
|
|
2751
2760
|
"type": "object",
|
|
2752
2761
|
"properties": {
|
|
@@ -2754,6 +2763,14 @@
|
|
|
2754
2763
|
"type": "string",
|
|
2755
2764
|
"description": "What history.checkpoint returned.",
|
|
2756
2765
|
"minLength": 1
|
|
2766
|
+
},
|
|
2767
|
+
"detail": {
|
|
2768
|
+
"type": "string",
|
|
2769
|
+
"enum": [
|
|
2770
|
+
"brief",
|
|
2771
|
+
"full"
|
|
2772
|
+
],
|
|
2773
|
+
"description": "brief (the default): what the steps change, in brief, as after; full: the whole session, as state."
|
|
2757
2774
|
}
|
|
2758
2775
|
},
|
|
2759
2776
|
"required": [
|
|
@@ -2768,10 +2785,19 @@
|
|
|
2768
2785
|
{
|
|
2769
2786
|
"name": "history.undo",
|
|
2770
2787
|
"title": "Undo",
|
|
2771
|
-
"description": "Undo the last step — one of the person’s or one of these commands, each of which is one step. Returns the step’s name and the session afterwards.",
|
|
2788
|
+
"description": "Undo the last step — one of the person’s or one of these commands, each of which is one step. Returns the step’s name and the session afterwards in brief (detail \"full\": the whole of it).",
|
|
2772
2789
|
"input": {
|
|
2773
2790
|
"type": "object",
|
|
2774
|
-
"properties": {
|
|
2791
|
+
"properties": {
|
|
2792
|
+
"detail": {
|
|
2793
|
+
"type": "string",
|
|
2794
|
+
"enum": [
|
|
2795
|
+
"brief",
|
|
2796
|
+
"full"
|
|
2797
|
+
],
|
|
2798
|
+
"description": "brief (the default): what the steps change, in brief, as after; full: the whole session, as state."
|
|
2799
|
+
}
|
|
2800
|
+
},
|
|
2775
2801
|
"additionalProperties": false
|
|
2776
2802
|
},
|
|
2777
2803
|
"readOnly": false,
|
|
@@ -2781,7 +2807,7 @@
|
|
|
2781
2807
|
{
|
|
2782
2808
|
"name": "project.load",
|
|
2783
2809
|
"title": "Open a project",
|
|
2784
|
-
"description": "Open a .scanruler project in place of the session — its models, then every measurement in it,
|
|
2810
|
+
"description": "Open a .scanruler project in place of the session — its models, then every measurement in it, remeasured, each fit as it was saved. Refuses while the session holds measurements unless discard is true. Needs the browser. Returns the session. Not undoable: an opened project starts a new history.",
|
|
2785
2811
|
"input": {
|
|
2786
2812
|
"type": "object",
|
|
2787
2813
|
"properties": {
|
|
@@ -2797,7 +2823,7 @@
|
|
|
2797
2823
|
},
|
|
2798
2824
|
"discard": {
|
|
2799
2825
|
"type": "boolean",
|
|
2800
|
-
"description": "
|
|
2826
|
+
"description": "true: replace the session though it holds measurements (lost unless saved as a project first). Refused otherwise when there is work to lose."
|
|
2801
2827
|
}
|
|
2802
2828
|
},
|
|
2803
2829
|
"required": [
|
|
@@ -2833,7 +2859,7 @@
|
|
|
2833
2859
|
{
|
|
2834
2860
|
"name": "project.save",
|
|
2835
2861
|
"title": "Save the project",
|
|
2836
|
-
"description": "The session as a .scanruler project file, as Save Project downloads it: the scan, the reference, the image and every measurement, each rebuilt when it is opened. Needs the browser. Returns the file’s bytes and its name.",
|
|
2862
|
+
"description": "The session as a .scanruler project file, as Save Project downloads it: the scan, the reference, the image and every measurement, each rebuilt when it is opened. Needs the browser. Returns the file’s bytes and its name, holds (what is in it, counted — read it before calling the file a revision: a page reset holds no model), aligned (whether the scan stands in an aligned frame) and says (what a workspace wants said of the work saved).",
|
|
2837
2863
|
"input": {
|
|
2838
2864
|
"type": "object",
|
|
2839
2865
|
"properties": {},
|
|
@@ -2846,7 +2872,7 @@
|
|
|
2846
2872
|
{
|
|
2847
2873
|
"name": "report.get",
|
|
2848
2874
|
"title": "Get the report",
|
|
2849
|
-
"description": "The measurement report. format \"text\" is word for word what the workspace’s Copy report button
|
|
2875
|
+
"description": "The measurement report. format \"text\" is word for word what the workspace’s Copy report button gives — measure (elements and dimensions with verdicts), deviation, thickness or flat (2D). format \"json\" (the default) is the whole session’s report structured: what the numbers rest on (units, scale, frame, alignment, fit method, outlier cut-offs), every element with its fit, every dimension with value, unit, limit and verdict, the tally of checks, the sections, and the deviation, thickness and 2D results with their settings.",
|
|
2850
2876
|
"input": {
|
|
2851
2877
|
"type": "object",
|
|
2852
2878
|
"properties": {
|
|
@@ -2878,7 +2904,7 @@
|
|
|
2878
2904
|
{
|
|
2879
2905
|
"name": "scan.draft",
|
|
2880
2906
|
"title": "Read the draft against a pull",
|
|
2881
|
-
"description": "The scan’s walls that run near a pull direction — the sides a mould opens along
|
|
2907
|
+
"description": "The scan’s walls that run near a pull direction — the sides a mould opens along — gathered into patches, each with draftDeg, the angle it leans off the pull: positive where the wall faces partly along the pull, negative where it faces back (a back draft, an undercut); with sigmaDeg, spreadDeg, centroid, box, area (mm²), count, facing, turnDeg and round for a boss’s or hole’s round side. Needs pull; box, nearDeg (10), patches (12), minArea (1 mm²) and split (a plane no patch reaches across: \"symmetry\", a plane element, \"XY\", \"YZ\", \"XZ\" or { point, normal }) narrow it. Trap: read it early on a moulded or cast part, along each direction the tools open — walls that lean half a degree to a few explain fits that miss by the lean. Changes nothing.",
|
|
2882
2908
|
"input": {
|
|
2883
2909
|
"type": "object",
|
|
2884
2910
|
"properties": {
|
|
@@ -2887,7 +2913,7 @@
|
|
|
2887
2913
|
"items": {
|
|
2888
2914
|
"type": "number"
|
|
2889
2915
|
},
|
|
2890
|
-
"description": "The pull direction, any length
|
|
2916
|
+
"description": "The pull direction, any length.",
|
|
2891
2917
|
"minItems": 3,
|
|
2892
2918
|
"maxItems": 3
|
|
2893
2919
|
},
|
|
@@ -2899,7 +2925,7 @@
|
|
|
2899
2925
|
"items": {
|
|
2900
2926
|
"type": "number"
|
|
2901
2927
|
},
|
|
2902
|
-
"description": "
|
|
2928
|
+
"description": "Lowest corner, mm.",
|
|
2903
2929
|
"minItems": 3,
|
|
2904
2930
|
"maxItems": 3
|
|
2905
2931
|
},
|
|
@@ -2908,7 +2934,7 @@
|
|
|
2908
2934
|
"items": {
|
|
2909
2935
|
"type": "number"
|
|
2910
2936
|
},
|
|
2911
|
-
"description": "
|
|
2937
|
+
"description": "Highest corner, mm.",
|
|
2912
2938
|
"minItems": 3,
|
|
2913
2939
|
"maxItems": 3
|
|
2914
2940
|
}
|
|
@@ -2993,7 +3019,7 @@
|
|
|
2993
3019
|
{
|
|
2994
3020
|
"name": "scan.fit_surface",
|
|
2995
3021
|
"title": "Fit a sloped or curved patch",
|
|
2996
|
-
"description": "A patch of the scan measured as a surface — a sloped side, a twisted ruled face, a dome, a saddle
|
|
3022
|
+
"description": "A patch of the scan measured as a surface — a sloped side, a twisted ruled face, a dome, a saddle — from vertices or a box (normal keeps those facing a way). Returns the patch’s frame (origin, normal, basisU, basisV) and each model as a height over (u, v): plane (a + b·u + c·v), bilinear (+ d·u·v) and quadric (+ d·u² + e·u·v + f·v², with curvature { k1, k2, r1, r2, axis1, axis2, shape }), each with coefficients, rms and worst; model: best (the default) fits every one and names the simplest whose rms is within a tenth of the lowest. Trap: 7 points at least, at most limit (20000) spread evenly. Changes nothing.",
|
|
2997
3023
|
"input": {
|
|
2998
3024
|
"type": "object",
|
|
2999
3025
|
"properties": {
|
|
@@ -3014,7 +3040,7 @@
|
|
|
3014
3040
|
"items": {
|
|
3015
3041
|
"type": "number"
|
|
3016
3042
|
},
|
|
3017
|
-
"description": "
|
|
3043
|
+
"description": "Lowest corner, mm.",
|
|
3018
3044
|
"minItems": 3,
|
|
3019
3045
|
"maxItems": 3
|
|
3020
3046
|
},
|
|
@@ -3023,7 +3049,7 @@
|
|
|
3023
3049
|
"items": {
|
|
3024
3050
|
"type": "number"
|
|
3025
3051
|
},
|
|
3026
|
-
"description": "
|
|
3052
|
+
"description": "Highest corner, mm.",
|
|
3027
3053
|
"minItems": 3,
|
|
3028
3054
|
"maxItems": 3
|
|
3029
3055
|
}
|
|
@@ -3033,7 +3059,7 @@
|
|
|
3033
3059
|
"max"
|
|
3034
3060
|
],
|
|
3035
3061
|
"additionalProperties": false,
|
|
3036
|
-
"description": "The
|
|
3062
|
+
"description": "The scan inside a box, in place of vertices."
|
|
3037
3063
|
},
|
|
3038
3064
|
"normal": {
|
|
3039
3065
|
"type": "object",
|
|
@@ -3043,7 +3069,7 @@
|
|
|
3043
3069
|
"items": {
|
|
3044
3070
|
"type": "number"
|
|
3045
3071
|
},
|
|
3046
|
-
"description": "
|
|
3072
|
+
"description": "A direction, any length.",
|
|
3047
3073
|
"minItems": 3,
|
|
3048
3074
|
"maxItems": 3
|
|
3049
3075
|
},
|
|
@@ -3086,7 +3112,7 @@
|
|
|
3086
3112
|
{
|
|
3087
3113
|
"name": "scan.heightmap",
|
|
3088
3114
|
"title": "Map the scan’s heights",
|
|
3089
|
-
"description": "Where the scan is first met looking along an axis
|
|
3115
|
+
"description": "Where the scan is first met looking along an axis (axis, -z by default: the top surface from above) or square onto a plane (plane: an element, \"XY\", \"YZ\", \"XZ\", or { origin, normal, u? }), over a grid of cells: pocket floors, ledges, a step's height, a face's tilt, a pad's tiers, an icon on a key in one call. of: height (the default), deviation (the map's reading where each ray lands) or relief (the height less the surface round it, for icons, grooves and lettering). Returns cell, origin [u0, v0], cols, rows, grid (rows of mm from the low v up, null where nothing; grid[r][c] stands at u0 + (c + ½)·cell, v0 + (r + ½)·cell), min, max, hit, valued; with plane also its frame (a cell's point is origin + u·U + v·V + height·normal). levels: true gives the values gathered into levels in place of the grid; picture: true adds the map coloured. Trap: with plane, box is [u, v, height] in the plane's frame (or { world }), and scanLies says where the scan lies when few cells meet it. Changes nothing.",
|
|
3090
3116
|
"input": {
|
|
3091
3117
|
"type": "object",
|
|
3092
3118
|
"properties": {
|
|
@@ -3098,7 +3124,7 @@
|
|
|
3098
3124
|
"items": {
|
|
3099
3125
|
"type": "number"
|
|
3100
3126
|
},
|
|
3101
|
-
"description": "
|
|
3127
|
+
"description": "Lowest corner, mm ([u, v, height] with plane).",
|
|
3102
3128
|
"minItems": 3,
|
|
3103
3129
|
"maxItems": 3
|
|
3104
3130
|
},
|
|
@@ -3107,7 +3133,7 @@
|
|
|
3107
3133
|
"items": {
|
|
3108
3134
|
"type": "number"
|
|
3109
3135
|
},
|
|
3110
|
-
"description": "
|
|
3136
|
+
"description": "Highest corner, mm ([u, v, height] with plane).",
|
|
3111
3137
|
"minItems": 3,
|
|
3112
3138
|
"maxItems": 3
|
|
3113
3139
|
},
|
|
@@ -3119,7 +3145,7 @@
|
|
|
3119
3145
|
"items": {
|
|
3120
3146
|
"type": "number"
|
|
3121
3147
|
},
|
|
3122
|
-
"description": "
|
|
3148
|
+
"description": "Lowest corner, [x, y, z] mm.",
|
|
3123
3149
|
"minItems": 3,
|
|
3124
3150
|
"maxItems": 3
|
|
3125
3151
|
},
|
|
@@ -3128,7 +3154,7 @@
|
|
|
3128
3154
|
"items": {
|
|
3129
3155
|
"type": "number"
|
|
3130
3156
|
},
|
|
3131
|
-
"description": "
|
|
3157
|
+
"description": "Highest corner, [x, y, z] mm.",
|
|
3132
3158
|
"minItems": 3,
|
|
3133
3159
|
"maxItems": 3
|
|
3134
3160
|
}
|
|
@@ -3138,11 +3164,11 @@
|
|
|
3138
3164
|
"max"
|
|
3139
3165
|
],
|
|
3140
3166
|
"additionalProperties": false,
|
|
3141
|
-
"description": "
|
|
3167
|
+
"description": "A box in the world, in place of min and max."
|
|
3142
3168
|
}
|
|
3143
3169
|
},
|
|
3144
3170
|
"additionalProperties": false,
|
|
3145
|
-
"description": "The part looked at; the scan’s box by default.
|
|
3171
|
+
"description": "The part looked at; the scan’s box by default. With plane: [u, v, height], or world: { min, max }."
|
|
3146
3172
|
},
|
|
3147
3173
|
"axis": {
|
|
3148
3174
|
"type": "string",
|
|
@@ -3154,7 +3180,7 @@
|
|
|
3154
3180
|
"+z",
|
|
3155
3181
|
"-z"
|
|
3156
3182
|
],
|
|
3157
|
-
"description": "The way looked: -z (the default) from above, +z from below,
|
|
3183
|
+
"description": "The way looked: -z (the default) from above, +z from below, ±x, ±y."
|
|
3158
3184
|
},
|
|
3159
3185
|
"plane": {
|
|
3160
3186
|
"oneOf": [
|
|
@@ -3162,16 +3188,16 @@
|
|
|
3162
3188
|
"oneOf": [
|
|
3163
3189
|
{
|
|
3164
3190
|
"type": "integer",
|
|
3165
|
-
"description": "
|
|
3191
|
+
"description": "Its id.",
|
|
3166
3192
|
"minimum": 1
|
|
3167
3193
|
},
|
|
3168
3194
|
{
|
|
3169
3195
|
"type": "string",
|
|
3170
|
-
"description": "
|
|
3196
|
+
"description": "Its name — \"Sphere 1\".",
|
|
3171
3197
|
"minLength": 1
|
|
3172
3198
|
}
|
|
3173
3199
|
],
|
|
3174
|
-
"description": "A plane element, or
|
|
3200
|
+
"description": "A plane element, or \"XY\", \"YZ\", \"XZ\"."
|
|
3175
3201
|
},
|
|
3176
3202
|
{
|
|
3177
3203
|
"type": "object",
|
|
@@ -3211,7 +3237,7 @@
|
|
|
3211
3237
|
"additionalProperties": false
|
|
3212
3238
|
}
|
|
3213
3239
|
],
|
|
3214
|
-
"description": "Look square onto this plane instead of along an axis
|
|
3240
|
+
"description": "Look square onto this plane instead of along an axis."
|
|
3215
3241
|
},
|
|
3216
3242
|
"flip": {
|
|
3217
3243
|
"type": "boolean",
|
|
@@ -3224,11 +3250,11 @@
|
|
|
3224
3250
|
"deviation",
|
|
3225
3251
|
"relief"
|
|
3226
3252
|
],
|
|
3227
|
-
"description": "
|
|
3253
|
+
"description": "height (the default), deviation (the map’s, where the ray lands) or relief (height less the surface round it)."
|
|
3228
3254
|
},
|
|
3229
3255
|
"smooth": {
|
|
3230
3256
|
"type": "number",
|
|
3231
|
-
"description": "relief: the smoothing
|
|
3257
|
+
"description": "relief: the smoothing sigma, mm; three cells by default.",
|
|
3232
3258
|
"exclusiveMinimum": 0
|
|
3233
3259
|
},
|
|
3234
3260
|
"cell": {
|
|
@@ -3238,11 +3264,11 @@
|
|
|
3238
3264
|
},
|
|
3239
3265
|
"grid": {
|
|
3240
3266
|
"type": "boolean",
|
|
3241
|
-
"description": "The grid of numbers
|
|
3267
|
+
"description": "The grid of numbers (the default unless levels); false returns the picture alone."
|
|
3242
3268
|
},
|
|
3243
3269
|
"levels": {
|
|
3244
3270
|
"type": "boolean",
|
|
3245
|
-
"description": "Gather the values into levels
|
|
3271
|
+
"description": "Gather the values into levels, largest first, in place of the grid."
|
|
3246
3272
|
},
|
|
3247
3273
|
"gap": {
|
|
3248
3274
|
"type": "number",
|
|
@@ -3251,7 +3277,7 @@
|
|
|
3251
3277
|
},
|
|
3252
3278
|
"slopeDeg": {
|
|
3253
3279
|
"type": "number",
|
|
3254
|
-
"description": "levels of a height: cells steeper
|
|
3280
|
+
"description": "levels of a height: cells steeper are left out, degrees; 10 by default, 90 keeps every one.",
|
|
3255
3281
|
"exclusiveMinimum": 0,
|
|
3256
3282
|
"maximum": 90
|
|
3257
3283
|
},
|
|
@@ -3269,7 +3295,7 @@
|
|
|
3269
3295
|
{
|
|
3270
3296
|
"name": "scan.nearest",
|
|
3271
3297
|
"title": "Find a place on the scan",
|
|
3272
|
-
"description": "Where a
|
|
3298
|
+
"description": "Where a place lands on the scan: the vertex (a point snaps to the nearest), its coordinates and outward normal, a triangle it is a corner of, and how far it lies from the point asked about. Use it to check a point lies on the surface before fitting there.",
|
|
3273
3299
|
"input": {
|
|
3274
3300
|
"type": "object",
|
|
3275
3301
|
"properties": {
|
|
@@ -3280,7 +3306,7 @@
|
|
|
3280
3306
|
"properties": {
|
|
3281
3307
|
"vertex": {
|
|
3282
3308
|
"type": "integer",
|
|
3283
|
-
"description": "A scan vertex
|
|
3309
|
+
"description": "A scan vertex number.",
|
|
3284
3310
|
"minimum": 0
|
|
3285
3311
|
}
|
|
3286
3312
|
},
|
|
@@ -3297,7 +3323,7 @@
|
|
|
3297
3323
|
"items": {
|
|
3298
3324
|
"type": "number"
|
|
3299
3325
|
},
|
|
3300
|
-
"description": "
|
|
3326
|
+
"description": "[x, y, z] mm in the current frame; the nearest scan vertex is taken.",
|
|
3301
3327
|
"minItems": 3,
|
|
3302
3328
|
"maxItems": 3
|
|
3303
3329
|
}
|
|
@@ -3315,7 +3341,7 @@
|
|
|
3315
3341
|
"items": {
|
|
3316
3342
|
"type": "number"
|
|
3317
3343
|
},
|
|
3318
|
-
"description": "A pixel
|
|
3344
|
+
"description": "A viewport pixel [x, y] (not available yet).",
|
|
3319
3345
|
"minItems": 2,
|
|
3320
3346
|
"maxItems": 2
|
|
3321
3347
|
}
|
|
@@ -3330,7 +3356,7 @@
|
|
|
3330
3356
|
"properties": {
|
|
3331
3357
|
"candidate": {
|
|
3332
3358
|
"type": "integer",
|
|
3333
|
-
"description": "A feature from scan.candidates.",
|
|
3359
|
+
"description": "A feature from scan.candidates (not available yet).",
|
|
3334
3360
|
"minimum": 0
|
|
3335
3361
|
}
|
|
3336
3362
|
},
|
|
@@ -3355,7 +3381,7 @@
|
|
|
3355
3381
|
{
|
|
3356
3382
|
"name": "scan.open",
|
|
3357
3383
|
"title": "Open a scan",
|
|
3358
|
-
"description": "Open a mesh as the scan to measure — STL, PLY, OBJ or 3MF, or a STEP part
|
|
3384
|
+
"description": "Open a mesh as the scan to measure — STL, PLY, OBJ or 3MF, or a STEP part cut into triangles — in place of the one there is; everything measured on the old one goes with it, so it refuses while the session holds measurements unless discard is true (the refusal names what is held). A reference part opened from a file stays, its alignment and maps gone (referenceKept); one made from the session’s own work goes (referenceDropped). Returns the scan: name, units, vertex and triangle counts, bounding box, centre and diagonal (size), mm. Not undoable: a new scan starts a new history.",
|
|
3359
3385
|
"input": {
|
|
3360
3386
|
"type": "object",
|
|
3361
3387
|
"properties": {
|
|
@@ -3366,7 +3392,7 @@
|
|
|
3366
3392
|
},
|
|
3367
3393
|
"name": {
|
|
3368
3394
|
"type": "string",
|
|
3369
|
-
"description": "The file's name with its extension — \"ballbar.stl\".
|
|
3395
|
+
"description": "The file's name with its extension — \"ballbar.stl\".",
|
|
3370
3396
|
"minLength": 1
|
|
3371
3397
|
},
|
|
3372
3398
|
"units": {
|
|
@@ -3377,11 +3403,11 @@
|
|
|
3377
3403
|
"m",
|
|
3378
3404
|
"in"
|
|
3379
3405
|
],
|
|
3380
|
-
"description": "
|
|
3406
|
+
"description": "The file’s units: mm (the default), cm, m or in. Everything is measured in mm once read."
|
|
3381
3407
|
},
|
|
3382
3408
|
"discard": {
|
|
3383
3409
|
"type": "boolean",
|
|
3384
|
-
"description": "
|
|
3410
|
+
"description": "true: replace the session though it holds measurements (lost unless saved as a project first). Refused otherwise when there is work to lose."
|
|
3385
3411
|
}
|
|
3386
3412
|
},
|
|
3387
3413
|
"required": [
|
|
@@ -3397,7 +3423,7 @@
|
|
|
3397
3423
|
{
|
|
3398
3424
|
"name": "scan.outline",
|
|
3399
3425
|
"title": "Read the scan’s outline",
|
|
3400
|
-
"description": "The scan’s outline seen along an axis, or square onto a plane, read as a sketch would draw it: a flange’s plan, a bezel’s opening, a gasket’s shape
|
|
3426
|
+
"description": "The scan’s outline seen along an axis, or square onto a plane, read as a sketch would draw it: a flange’s plan, a bezel’s opening, a gasket’s shape — each loop as the fewest lines and arcs that follow it within tolerance (mm, 0.2 by default), a round loop as one circle. axis, plane, flip and box as scan.heightmap takes them, u, v as it lays them. Returns loops, the largest first (4 by default): hole, area (mm²), box, points ([u, v] corners), rounds { at, radius, center }, arcs { from, radius, center } or circle { center, radius, rms }, and worst (mm the trace strays from what is drawn, worstAt when past the tolerance). Changes nothing.",
|
|
3401
3427
|
"input": {
|
|
3402
3428
|
"type": "object",
|
|
3403
3429
|
"properties": {
|
|
@@ -3419,16 +3445,16 @@
|
|
|
3419
3445
|
"oneOf": [
|
|
3420
3446
|
{
|
|
3421
3447
|
"type": "integer",
|
|
3422
|
-
"description": "
|
|
3448
|
+
"description": "Its id.",
|
|
3423
3449
|
"minimum": 1
|
|
3424
3450
|
},
|
|
3425
3451
|
{
|
|
3426
3452
|
"type": "string",
|
|
3427
|
-
"description": "
|
|
3453
|
+
"description": "Its name — \"Sphere 1\".",
|
|
3428
3454
|
"minLength": 1
|
|
3429
3455
|
}
|
|
3430
3456
|
],
|
|
3431
|
-
"description": "A plane element, or
|
|
3457
|
+
"description": "A plane element, or \"XY\", \"YZ\", \"XZ\"."
|
|
3432
3458
|
},
|
|
3433
3459
|
{
|
|
3434
3460
|
"type": "object",
|
|
@@ -3482,7 +3508,7 @@
|
|
|
3482
3508
|
"items": {
|
|
3483
3509
|
"type": "number"
|
|
3484
3510
|
},
|
|
3485
|
-
"description": "
|
|
3511
|
+
"description": "Lowest corner, mm ([u, v, height] with plane).",
|
|
3486
3512
|
"minItems": 3,
|
|
3487
3513
|
"maxItems": 3
|
|
3488
3514
|
},
|
|
@@ -3491,7 +3517,7 @@
|
|
|
3491
3517
|
"items": {
|
|
3492
3518
|
"type": "number"
|
|
3493
3519
|
},
|
|
3494
|
-
"description": "
|
|
3520
|
+
"description": "Highest corner, mm ([u, v, height] with plane).",
|
|
3495
3521
|
"minItems": 3,
|
|
3496
3522
|
"maxItems": 3
|
|
3497
3523
|
},
|
|
@@ -3503,7 +3529,7 @@
|
|
|
3503
3529
|
"items": {
|
|
3504
3530
|
"type": "number"
|
|
3505
3531
|
},
|
|
3506
|
-
"description": "
|
|
3532
|
+
"description": "Lowest corner, [x, y, z] mm.",
|
|
3507
3533
|
"minItems": 3,
|
|
3508
3534
|
"maxItems": 3
|
|
3509
3535
|
},
|
|
@@ -3512,7 +3538,7 @@
|
|
|
3512
3538
|
"items": {
|
|
3513
3539
|
"type": "number"
|
|
3514
3540
|
},
|
|
3515
|
-
"description": "
|
|
3541
|
+
"description": "Highest corner, [x, y, z] mm.",
|
|
3516
3542
|
"minItems": 3,
|
|
3517
3543
|
"maxItems": 3
|
|
3518
3544
|
}
|
|
@@ -3522,11 +3548,11 @@
|
|
|
3522
3548
|
"max"
|
|
3523
3549
|
],
|
|
3524
3550
|
"additionalProperties": false,
|
|
3525
|
-
"description": "
|
|
3551
|
+
"description": "A box in the world, in place of min and max."
|
|
3526
3552
|
}
|
|
3527
3553
|
},
|
|
3528
3554
|
"additionalProperties": false,
|
|
3529
|
-
"description": "Only the scan inside it; the whole scan by default.
|
|
3555
|
+
"description": "Only the scan inside it; the whole scan by default. With plane: [u, v, height], or world: { min, max }."
|
|
3530
3556
|
},
|
|
3531
3557
|
"tolerance": {
|
|
3532
3558
|
"type": "number",
|
|
@@ -3549,7 +3575,7 @@
|
|
|
3549
3575
|
{
|
|
3550
3576
|
"name": "scan.pattern",
|
|
3551
3577
|
"title": "Count the repeats round an axis",
|
|
3552
|
-
"description": "Rotational repeats about an axis — a fan's blades, a flange's holes
|
|
3578
|
+
"description": "Rotational repeats about an axis — a fan's blades, a flange's holes, a wheel's spokes, a gear's teeth — counted from the scan: it is cut square to the axis at each height in at, and each cut (between radius.min and radius.max) is turned against itself. Needs axis: a cylinder, cone, line or circle element, \"X\", \"Y\", \"Z\", or { origin, dir }. Returns per height count, pitchDeg, phaseDeg, betweenDeg (angles as section.cut { across: { axis, angleDeg } } takes them), score (0 to 1; under 0.5 count is 1 and tried says the best), rms, worst, instances (each angleDeg, radius, offDeg, rms, worst, share) and rings (round outlines about the axis: radius, off, towardDeg, rms). Trap: features at different heights and radii need a cut through each, radius kept to one ring. Changes nothing.",
|
|
3553
3579
|
"input": {
|
|
3554
3580
|
"type": "object",
|
|
3555
3581
|
"properties": {
|
|
@@ -3559,12 +3585,12 @@
|
|
|
3559
3585
|
"oneOf": [
|
|
3560
3586
|
{
|
|
3561
3587
|
"type": "integer",
|
|
3562
|
-
"description": "
|
|
3588
|
+
"description": "Its id.",
|
|
3563
3589
|
"minimum": 1
|
|
3564
3590
|
},
|
|
3565
3591
|
{
|
|
3566
3592
|
"type": "string",
|
|
3567
|
-
"description": "
|
|
3593
|
+
"description": "Its name — \"Sphere 1\".",
|
|
3568
3594
|
"minLength": 1
|
|
3569
3595
|
}
|
|
3570
3596
|
],
|
|
@@ -3614,7 +3640,7 @@
|
|
|
3614
3640
|
"items": {
|
|
3615
3641
|
"type": "number"
|
|
3616
3642
|
},
|
|
3617
|
-
"description": "A point
|
|
3643
|
+
"description": "A world point, mm: the height of its foot on the axis.",
|
|
3618
3644
|
"minItems": 3,
|
|
3619
3645
|
"maxItems": 3
|
|
3620
3646
|
}
|
|
@@ -3649,7 +3675,7 @@
|
|
|
3649
3675
|
},
|
|
3650
3676
|
"instances": {
|
|
3651
3677
|
"type": "boolean",
|
|
3652
|
-
"description": "List each copy
|
|
3678
|
+
"description": "List each copy; true by default."
|
|
3653
3679
|
}
|
|
3654
3680
|
},
|
|
3655
3681
|
"required": [
|
|
@@ -3664,7 +3690,7 @@
|
|
|
3664
3690
|
{
|
|
3665
3691
|
"name": "scan.qa",
|
|
3666
3692
|
"title": "Check the scan before modelling",
|
|
3667
|
-
"description": "One call before modelling, to know what the scan will and will not give
|
|
3693
|
+
"description": "One call before modelling, to know what the scan will and will not give. Returns rims (the open edges of its holes: count, total length, the longest few with rim number, centre, size and circle where one fits — element.fit { kind: \"circle\", rim } makes it an element), noise (the median scatter of small plane fits, mm; near 0 is a CAD tessellation), thickness through the part along axis (p5, p50, p95, the main faces’ tiltDeg and faces { topDeg, bottomDeg }) and notes, what looks wrong, plainly. Trap: a scanned skin with no rims, or only pinholes, is a wrap bridging the holes it did not see through. Changes nothing.",
|
|
3668
3694
|
"input": {
|
|
3669
3695
|
"type": "object",
|
|
3670
3696
|
"properties": {
|
|
@@ -3689,7 +3715,7 @@
|
|
|
3689
3715
|
"maxItems": 3
|
|
3690
3716
|
}
|
|
3691
3717
|
],
|
|
3692
|
-
"description": "The thickness axis
|
|
3718
|
+
"description": "The thickness axis."
|
|
3693
3719
|
}
|
|
3694
3720
|
},
|
|
3695
3721
|
"additionalProperties": false
|
|
@@ -3701,7 +3727,7 @@
|
|
|
3701
3727
|
{
|
|
3702
3728
|
"name": "scan.query",
|
|
3703
3729
|
"title": "Read the scan’s points",
|
|
3704
|
-
"description": "The scan’s vertices inside a box, or within a radius of a point, with their outward normals — the points on a face, to measure a dimension or a draft
|
|
3730
|
+
"description": "The scan’s vertices inside a box, or within a radius of a point (near), with their outward normals — the points on a face, to measure a dimension or a draft off; normal keeps only those facing a direction. Returns matched, the vertex numbers, points and normals (mm, current frame), the box round them, centroid and mean normal; fields: count, ids or all (the default) says how much. Trap: at most limit come back (1000 by default, 20000 at most), every k-th spread evenly, step saying k — mark: true marks every matching vertex, not the thinned list, for element.fit_marked { marked: true }. Changes nothing on the part.",
|
|
3705
3731
|
"input": {
|
|
3706
3732
|
"type": "object",
|
|
3707
3733
|
"properties": {
|
|
@@ -3713,7 +3739,7 @@
|
|
|
3713
3739
|
"items": {
|
|
3714
3740
|
"type": "number"
|
|
3715
3741
|
},
|
|
3716
|
-
"description": "
|
|
3742
|
+
"description": "Lowest corner, mm.",
|
|
3717
3743
|
"minItems": 3,
|
|
3718
3744
|
"maxItems": 3
|
|
3719
3745
|
},
|
|
@@ -3722,7 +3748,7 @@
|
|
|
3722
3748
|
"items": {
|
|
3723
3749
|
"type": "number"
|
|
3724
3750
|
},
|
|
3725
|
-
"description": "
|
|
3751
|
+
"description": "Highest corner, mm.",
|
|
3726
3752
|
"minItems": 3,
|
|
3727
3753
|
"maxItems": 3
|
|
3728
3754
|
}
|
|
@@ -3732,7 +3758,7 @@
|
|
|
3732
3758
|
"max"
|
|
3733
3759
|
],
|
|
3734
3760
|
"additionalProperties": false,
|
|
3735
|
-
"description": "A box in the frame
|
|
3761
|
+
"description": "A box in the current frame."
|
|
3736
3762
|
},
|
|
3737
3763
|
"near": {
|
|
3738
3764
|
"type": "object",
|
|
@@ -3748,7 +3774,7 @@
|
|
|
3748
3774
|
},
|
|
3749
3775
|
"radius": {
|
|
3750
3776
|
"type": "number",
|
|
3751
|
-
"description": "
|
|
3777
|
+
"description": "mm.",
|
|
3752
3778
|
"exclusiveMinimum": 0
|
|
3753
3779
|
}
|
|
3754
3780
|
},
|
|
@@ -3757,7 +3783,7 @@
|
|
|
3757
3783
|
"radius"
|
|
3758
3784
|
],
|
|
3759
3785
|
"additionalProperties": false,
|
|
3760
|
-
"description": "A ball about a point
|
|
3786
|
+
"description": "A ball about a point, in place of box."
|
|
3761
3787
|
},
|
|
3762
3788
|
"normal": {
|
|
3763
3789
|
"type": "object",
|
|
@@ -3767,13 +3793,13 @@
|
|
|
3767
3793
|
"items": {
|
|
3768
3794
|
"type": "number"
|
|
3769
3795
|
},
|
|
3770
|
-
"description": "
|
|
3796
|
+
"description": "A direction, any length.",
|
|
3771
3797
|
"minItems": 3,
|
|
3772
3798
|
"maxItems": 3
|
|
3773
3799
|
},
|
|
3774
3800
|
"withinDeg": {
|
|
3775
3801
|
"type": "number",
|
|
3776
|
-
"description": "
|
|
3802
|
+
"description": "Degrees; 30 by default.",
|
|
3777
3803
|
"exclusiveMinimum": 0,
|
|
3778
3804
|
"maximum": 180
|
|
3779
3805
|
}
|
|
@@ -3782,7 +3808,7 @@
|
|
|
3782
3808
|
"dir"
|
|
3783
3809
|
],
|
|
3784
3810
|
"additionalProperties": false,
|
|
3785
|
-
"description": "
|
|
3811
|
+
"description": "Only the vertices whose outward normal faces this way."
|
|
3786
3812
|
},
|
|
3787
3813
|
"limit": {
|
|
3788
3814
|
"type": "integer",
|
|
@@ -3792,7 +3818,7 @@
|
|
|
3792
3818
|
},
|
|
3793
3819
|
"mark": {
|
|
3794
3820
|
"type": "boolean",
|
|
3795
|
-
"description": "Leave every vertex
|
|
3821
|
+
"description": "Leave every matching vertex marked, for element.fit_marked { marked: true }."
|
|
3796
3822
|
},
|
|
3797
3823
|
"fields": {
|
|
3798
3824
|
"type": "string",
|
|
@@ -3801,7 +3827,7 @@
|
|
|
3801
3827
|
"ids",
|
|
3802
3828
|
"all"
|
|
3803
3829
|
],
|
|
3804
|
-
"description": "
|
|
3830
|
+
"description": "count: the numbers alone (the default with mark); ids: with the vertices; all: with points and normals (the default)."
|
|
3805
3831
|
}
|
|
3806
3832
|
},
|
|
3807
3833
|
"additionalProperties": false
|
|
@@ -3813,7 +3839,7 @@
|
|
|
3813
3839
|
{
|
|
3814
3840
|
"name": "scan.segment",
|
|
3815
3841
|
"title": "Find the scan’s flat regions",
|
|
3816
|
-
"description": "The scan’s planar regions, found all at once: grown from the flattest places outward
|
|
3842
|
+
"description": "The scan’s planar regions, found all at once: grown from the flattest places outward within maxDeg (15°) and maxRms (0.05 mm), those smaller than minArea given back. Returns found, considered, claimed, noise and the regions, largest first, at most limit (20): id, normal, point, sigma, area (mm²), box, vertices, neighbours { id, deg, smooth } and, with symmetric, mirror (its twin across that plane). Trap: a round surface comes out as strips that look like facets — such a region says curved { sagitta } and run, and curvedRuns joins them into surfaces with a note saying what to model each as; read the runs before taking regions for faces. mark: a region’s id, or several, leaves their points marked for element.fit_marked { marked: true }. Changes nothing.",
|
|
3817
3843
|
"input": {
|
|
3818
3844
|
"type": "object",
|
|
3819
3845
|
"properties": {
|
|
@@ -3832,7 +3858,7 @@
|
|
|
3832
3858
|
"items": {
|
|
3833
3859
|
"type": "number"
|
|
3834
3860
|
},
|
|
3835
|
-
"description": "
|
|
3861
|
+
"description": "Lowest corner, mm.",
|
|
3836
3862
|
"minItems": 3,
|
|
3837
3863
|
"maxItems": 3
|
|
3838
3864
|
},
|
|
@@ -3841,7 +3867,7 @@
|
|
|
3841
3867
|
"items": {
|
|
3842
3868
|
"type": "number"
|
|
3843
3869
|
},
|
|
3844
|
-
"description": "
|
|
3870
|
+
"description": "Highest corner, mm.",
|
|
3845
3871
|
"minItems": 3,
|
|
3846
3872
|
"maxItems": 3
|
|
3847
3873
|
}
|
|
@@ -3855,17 +3881,17 @@
|
|
|
3855
3881
|
},
|
|
3856
3882
|
"minArea": {
|
|
3857
3883
|
"type": "number",
|
|
3858
|
-
"description": "mm
|
|
3884
|
+
"description": "mm²; by default a square 2 % of the scan’s diagonal on a side.",
|
|
3859
3885
|
"minimum": 0
|
|
3860
3886
|
},
|
|
3861
3887
|
"maxRms": {
|
|
3862
3888
|
"type": "number",
|
|
3863
|
-
"description": "mm.",
|
|
3889
|
+
"description": "mm; 0.05 by default.",
|
|
3864
3890
|
"exclusiveMinimum": 0
|
|
3865
3891
|
},
|
|
3866
3892
|
"maxDeg": {
|
|
3867
3893
|
"type": "number",
|
|
3868
|
-
"description": "Degrees.",
|
|
3894
|
+
"description": "Degrees; 15 by default.",
|
|
3869
3895
|
"exclusiveMinimum": 0,
|
|
3870
3896
|
"maximum": 60
|
|
3871
3897
|
},
|
|
@@ -3879,12 +3905,12 @@
|
|
|
3879
3905
|
"oneOf": [
|
|
3880
3906
|
{
|
|
3881
3907
|
"type": "integer",
|
|
3882
|
-
"description": "
|
|
3908
|
+
"description": "Its id.",
|
|
3883
3909
|
"minimum": 1
|
|
3884
3910
|
},
|
|
3885
3911
|
{
|
|
3886
3912
|
"type": "string",
|
|
3887
|
-
"description": "
|
|
3913
|
+
"description": "Its name — \"Sphere 1\".",
|
|
3888
3914
|
"minLength": 1
|
|
3889
3915
|
}
|
|
3890
3916
|
],
|
|
@@ -3903,15 +3929,15 @@
|
|
|
3903
3929
|
"type": "integer",
|
|
3904
3930
|
"minimum": 1
|
|
3905
3931
|
},
|
|
3906
|
-
"description": "Several regions’ ids
|
|
3932
|
+
"description": "Several regions’ ids, their points together.",
|
|
3907
3933
|
"minItems": 1
|
|
3908
3934
|
}
|
|
3909
3935
|
],
|
|
3910
|
-
"description": "Leave this region’s points marked,
|
|
3936
|
+
"description": "Leave this region’s points marked, or several regions’."
|
|
3911
3937
|
},
|
|
3912
3938
|
"list": {
|
|
3913
3939
|
"type": "boolean",
|
|
3914
|
-
"description": "With mark: the list of regions too
|
|
3940
|
+
"description": "With mark: the list of regions too."
|
|
3915
3941
|
}
|
|
3916
3942
|
},
|
|
3917
3943
|
"additionalProperties": false
|
|
@@ -3923,7 +3949,7 @@
|
|
|
3923
3949
|
{
|
|
3924
3950
|
"name": "section.cut",
|
|
3925
3951
|
"title": "Cut a section",
|
|
3926
|
-
"description": "Cut the scan with a plane and keep the cut as a section,
|
|
3952
|
+
"description": "Cut the scan with a plane and keep the cut as a section, put on the 2D sheet. across: an element with a direction (plane, cylinder, cone, line, circle) by id or name; \"XY\", \"YZ\" or \"XZ\" through the part’s centre; or { axis, angleDeg }, a plane through an axis turned angleDeg about it — a half section of a turned part. offset slides the plane along its normal, mm (a coordinate plane: the coordinate itself). kind \"shadow\" keeps the scan’s shadow instead: the whole part projected onto the plane, its outer boundary as loops read as lines and arcs (tolerance, play, smoothDeg), stood up as a block for export.step (extrude). Trap: a shadow takes no offset. Returns the section: its plane and chain count — a shadow also its loops, area and band. One undo step.",
|
|
3927
3953
|
"input": {
|
|
3928
3954
|
"type": "object",
|
|
3929
3955
|
"properties": {
|
|
@@ -3936,7 +3962,7 @@
|
|
|
3936
3962
|
},
|
|
3937
3963
|
{
|
|
3938
3964
|
"type": "string",
|
|
3939
|
-
"description": "An element’s name, or
|
|
3965
|
+
"description": "An element’s name, or \"XY\", \"YZ\", \"XZ\".",
|
|
3940
3966
|
"minLength": 1
|
|
3941
3967
|
},
|
|
3942
3968
|
{
|
|
@@ -3946,12 +3972,12 @@
|
|
|
3946
3972
|
"oneOf": [
|
|
3947
3973
|
{
|
|
3948
3974
|
"type": "integer",
|
|
3949
|
-
"description": "
|
|
3975
|
+
"description": "Its id.",
|
|
3950
3976
|
"minimum": 1
|
|
3951
3977
|
},
|
|
3952
3978
|
{
|
|
3953
3979
|
"type": "string",
|
|
3954
|
-
"description": "
|
|
3980
|
+
"description": "Its name — \"Sphere 1\".",
|
|
3955
3981
|
"minLength": 1
|
|
3956
3982
|
}
|
|
3957
3983
|
],
|
|
@@ -3970,15 +3996,15 @@
|
|
|
3970
3996
|
"description": "A plane through an axis."
|
|
3971
3997
|
}
|
|
3972
3998
|
],
|
|
3973
|
-
"description": "An element with a direction, a coordinate plane, or { axis, angleDeg }
|
|
3999
|
+
"description": "An element with a direction, a coordinate plane, or { axis, angleDeg }."
|
|
3974
4000
|
},
|
|
3975
4001
|
"offset": {
|
|
3976
4002
|
"type": "number",
|
|
3977
|
-
"description": "
|
|
4003
|
+
"description": "Along the normal, mm. A cut’s only."
|
|
3978
4004
|
},
|
|
3979
4005
|
"name": {
|
|
3980
4006
|
"type": "string",
|
|
3981
|
-
"description": "A name
|
|
4007
|
+
"description": "A name; otherwise numbered — \"Section 2\".",
|
|
3982
4008
|
"minLength": 1
|
|
3983
4009
|
},
|
|
3984
4010
|
"kind": {
|
|
@@ -3987,26 +4013,26 @@
|
|
|
3987
4013
|
"cut",
|
|
3988
4014
|
"shadow"
|
|
3989
4015
|
],
|
|
3990
|
-
"description": "cut (the default)
|
|
4016
|
+
"description": "cut (the default), or shadow: the whole scan projected onto the plane."
|
|
3991
4017
|
},
|
|
3992
4018
|
"play": {
|
|
3993
4019
|
"type": "number",
|
|
3994
|
-
"description": "
|
|
4020
|
+
"description": "Shadow: clearance outside the part, mm; 1 by default, negative a press fit."
|
|
3995
4021
|
},
|
|
3996
4022
|
"tolerance": {
|
|
3997
4023
|
"type": "number",
|
|
3998
|
-
"description": "
|
|
4024
|
+
"description": "Shadow: lines and arcs read to this, mm; 0.1 by default.",
|
|
3999
4025
|
"exclusiveMinimum": 0
|
|
4000
4026
|
},
|
|
4001
4027
|
"smoothDeg": {
|
|
4002
4028
|
"type": "number",
|
|
4003
|
-
"description": "
|
|
4029
|
+
"description": "Shadow: corners turning less than this are rounded, degrees; 30 by default, 0 keeps all sharp.",
|
|
4004
4030
|
"minimum": 0,
|
|
4005
4031
|
"maximum": 180
|
|
4006
4032
|
},
|
|
4007
4033
|
"extrude": {
|
|
4008
4034
|
"type": "boolean",
|
|
4009
|
-
"description": "
|
|
4035
|
+
"description": "Shadow: stood up as a block through the part, for export.step; true by default."
|
|
4010
4036
|
}
|
|
4011
4037
|
},
|
|
4012
4038
|
"required": [
|
|
@@ -4021,7 +4047,7 @@
|
|
|
4021
4047
|
{
|
|
4022
4048
|
"name": "section.get",
|
|
4023
4049
|
"title": "Read a section’s polylines",
|
|
4024
|
-
"description": "A section’s cut as
|
|
4050
|
+
"description": "A section’s cut as polylines: each chain’s points in order — [u, v] mm on the sheet, what flat.fit and a sketch on the section take, or with space \"world\" or \"both\" [x, y, z] in the current frame — with the plane (origin, normal, basisU, basisV) and per chain closed, length, points, bounds. Trap: at most limit points over all chains (4000 by default, 50000 at most); past it every k-th point is kept and step says k. chains picks chains by index; skin \"outer\" or \"inner\" reads one skin of a thin wall alone, facing the points whose way out lies within withinDeg of dir, each chain then coming back as runs. Changes nothing.",
|
|
4025
4051
|
"input": {
|
|
4026
4052
|
"type": "object",
|
|
4027
4053
|
"properties": {
|
|
@@ -4034,7 +4060,7 @@
|
|
|
4034
4060
|
},
|
|
4035
4061
|
{
|
|
4036
4062
|
"type": "string",
|
|
4037
|
-
"description": "
|
|
4063
|
+
"description": "Its name — \"Section 1\".",
|
|
4038
4064
|
"minLength": 1
|
|
4039
4065
|
}
|
|
4040
4066
|
],
|
|
@@ -4047,7 +4073,7 @@
|
|
|
4047
4073
|
"description": "A chain’s index.",
|
|
4048
4074
|
"minimum": 0
|
|
4049
4075
|
},
|
|
4050
|
-
"description": "Which chains; every one
|
|
4076
|
+
"description": "Which chains; every one by default.",
|
|
4051
4077
|
"minItems": 1
|
|
4052
4078
|
},
|
|
4053
4079
|
"space": {
|
|
@@ -4057,11 +4083,11 @@
|
|
|
4057
4083
|
"world",
|
|
4058
4084
|
"both"
|
|
4059
4085
|
],
|
|
4060
|
-
"description": "sheet (the default): [u, v]
|
|
4086
|
+
"description": "sheet (the default): [u, v]; world: [x, y, z]; both."
|
|
4061
4087
|
},
|
|
4062
4088
|
"limit": {
|
|
4063
4089
|
"type": "integer",
|
|
4064
|
-
"description": "
|
|
4090
|
+
"description": "Points at most over every chain; 4000 by default, 50000 at most.",
|
|
4065
4091
|
"minimum": 2,
|
|
4066
4092
|
"maximum": 50000
|
|
4067
4093
|
},
|
|
@@ -4111,7 +4137,7 @@
|
|
|
4111
4137
|
{
|
|
4112
4138
|
"name": "section.render",
|
|
4113
4139
|
"title": "Picture a section",
|
|
4114
|
-
"description": "A picture of a section as a PNG, for checking a slice against what was built on it: the scan’s cut as points on the
|
|
4140
|
+
"description": "A picture of a section as a PNG, for checking a slice against what was built on it: the scan’s cut as points on the sheet ([u, v] mm, +u right, +v up), a mm grid with values in the margins, a scale bar, and the workspaces’ layers over it (a model’s cut as outlines, a sketch’s pieces). Scan points within ten tolerances of an outline are read against it: on it (grey) or off it (red). Needs section, or plane to cut the scan for the picture alone ({ origin, normal }, \"XY\"/\"YZ\"/\"XZ\", an element, or { sketch }). Returns gap { points, read, over, outside, inside, max, rms, overBox }, layers, axes, sheet (origin, normal, basisU, basisV) and map (pixel (c, r) is [left + c·unitsPerPx, top − r·unitsPerPx]). Trap: a plane’s sheet has its zero at the world origin’s foot, a section’s at the part’s centre — read sheet. 800 px by default, up to 2048. Needs the browser. Changes nothing.",
|
|
4115
4141
|
"input": {
|
|
4116
4142
|
"type": "object",
|
|
4117
4143
|
"properties": {
|
|
@@ -4124,7 +4150,7 @@
|
|
|
4124
4150
|
},
|
|
4125
4151
|
{
|
|
4126
4152
|
"type": "string",
|
|
4127
|
-
"description": "
|
|
4153
|
+
"description": "Its name — \"Section 1\".",
|
|
4128
4154
|
"minLength": 1
|
|
4129
4155
|
}
|
|
4130
4156
|
],
|
|
@@ -4167,7 +4193,7 @@
|
|
|
4167
4193
|
},
|
|
4168
4194
|
{
|
|
4169
4195
|
"type": "string",
|
|
4170
|
-
"description": "
|
|
4196
|
+
"description": "\"XY\", \"YZ\", \"XZ\", or an element’s name.",
|
|
4171
4197
|
"minLength": 1
|
|
4172
4198
|
},
|
|
4173
4199
|
{
|
|
@@ -4193,14 +4219,14 @@
|
|
|
4193
4219
|
"additionalProperties": false
|
|
4194
4220
|
}
|
|
4195
4221
|
],
|
|
4196
|
-
"description": "A plane to cut the scan by for the picture alone, in place of a section
|
|
4222
|
+
"description": "A plane to cut the scan by for the picture alone, in place of a section."
|
|
4197
4223
|
},
|
|
4198
4224
|
"offsets": {
|
|
4199
4225
|
"type": "array",
|
|
4200
4226
|
"items": {
|
|
4201
4227
|
"type": "number"
|
|
4202
4228
|
},
|
|
4203
|
-
"description": "Several parallel cuts in one picture: mm along the normal from the
|
|
4229
|
+
"description": "Several parallel cuts in one picture: mm along the normal — on a coordinate plane by name, from the world’s zero, so \"XY\" with [0, 5] cuts at Z 0 and Z 5.",
|
|
4204
4230
|
"minItems": 2,
|
|
4205
4231
|
"maxItems": 9
|
|
4206
4232
|
},
|
|
@@ -4221,7 +4247,7 @@
|
|
|
4221
4247
|
"items": {
|
|
4222
4248
|
"type": "number"
|
|
4223
4249
|
},
|
|
4224
|
-
"description": "The
|
|
4250
|
+
"description": "The middle: [u, v] mm on the sheet, or [x, y, z] mm in the world.",
|
|
4225
4251
|
"minItems": 2,
|
|
4226
4252
|
"maxItems": 3
|
|
4227
4253
|
},
|
|
@@ -4238,7 +4264,7 @@
|
|
|
4238
4264
|
"items": {
|
|
4239
4265
|
"type": "number"
|
|
4240
4266
|
},
|
|
4241
|
-
"description": "
|
|
4267
|
+
"description": "Lowest corner, [x, y, z] mm.",
|
|
4242
4268
|
"minItems": 3,
|
|
4243
4269
|
"maxItems": 3
|
|
4244
4270
|
},
|
|
@@ -4247,7 +4273,7 @@
|
|
|
4247
4273
|
"items": {
|
|
4248
4274
|
"type": "number"
|
|
4249
4275
|
},
|
|
4250
|
-
"description": "
|
|
4276
|
+
"description": "Highest corner, [x, y, z] mm.",
|
|
4251
4277
|
"minItems": 3,
|
|
4252
4278
|
"maxItems": 3
|
|
4253
4279
|
}
|
|
@@ -4257,7 +4283,7 @@
|
|
|
4257
4283
|
"max"
|
|
4258
4284
|
],
|
|
4259
4285
|
"additionalProperties": false,
|
|
4260
|
-
"description": "A box
|
|
4286
|
+
"description": "A world box, in place of at and size."
|
|
4261
4287
|
}
|
|
4262
4288
|
},
|
|
4263
4289
|
"additionalProperties": false,
|
|
@@ -4265,7 +4291,7 @@
|
|
|
4265
4291
|
},
|
|
4266
4292
|
"tolerance": {
|
|
4267
4293
|
"type": "number",
|
|
4268
|
-
"description": "± mm a scan point may lie off
|
|
4294
|
+
"description": "± mm a scan point may lie off an outline and still be on it; the Deviation workspace’s by default.",
|
|
4269
4295
|
"exclusiveMinimum": 0
|
|
4270
4296
|
},
|
|
4271
4297
|
"layers": {
|
|
@@ -4274,7 +4300,7 @@
|
|
|
4274
4300
|
"type": "string",
|
|
4275
4301
|
"minLength": 1
|
|
4276
4302
|
},
|
|
4277
|
-
"description": "The layers to draw, by key; every one by default."
|
|
4303
|
+
"description": "The layers to draw, by key; every one by default, [] for the scan alone."
|
|
4278
4304
|
},
|
|
4279
4305
|
"width": {
|
|
4280
4306
|
"type": "integer",
|
|
@@ -4329,7 +4355,7 @@
|
|
|
4329
4355
|
"properties": {
|
|
4330
4356
|
"discard": {
|
|
4331
4357
|
"type": "boolean",
|
|
4332
|
-
"description": "
|
|
4358
|
+
"description": "true: replace the session though it holds measurements (lost unless saved as a project first). Refused otherwise when there is work to lose."
|
|
4333
4359
|
}
|
|
4334
4360
|
},
|
|
4335
4361
|
"additionalProperties": false
|
|
@@ -4341,7 +4367,7 @@
|
|
|
4341
4367
|
{
|
|
4342
4368
|
"name": "session.state",
|
|
4343
4369
|
"title": "Read the session",
|
|
4344
|
-
"description": "The whole session as JSON: the app and its plugins, the project (
|
|
4370
|
+
"description": "The whole session as JSON: the app and its plugins, the project (name, unsaved, holds), the workspace on screen, busy, the scan (file, units, counts, bounding box, centre, size, alignment), every element with its fit, every dimension with value, limit and verdict, the sections, what is open in the panels, the deviation, wall thickness and 2D state with their statistics, the guided hint, the undo history and ui.units. Trap: the screen may show inches; every answer here is in millimetres, angles in degrees. Read it before acting and after.",
|
|
4345
4371
|
"input": {
|
|
4346
4372
|
"type": "object",
|
|
4347
4373
|
"properties": {},
|
|
@@ -4364,7 +4390,7 @@
|
|
|
4364
4390
|
"ray",
|
|
4365
4391
|
"sphere"
|
|
4366
4392
|
],
|
|
4367
|
-
"description": "ray: along the inward normal to the far wall (
|
|
4393
|
+
"description": "ray: along the inward normal to the far wall (the shortest of a cone with coneRays). sphere: the largest sphere that fits at the point."
|
|
4368
4394
|
},
|
|
4369
4395
|
"maxThickness": {
|
|
4370
4396
|
"type": "number",
|
|
@@ -4394,7 +4420,7 @@
|
|
|
4394
4420
|
"description": "Not checked."
|
|
4395
4421
|
}
|
|
4396
4422
|
],
|
|
4397
|
-
"description": "How far the far wall may turn from facing back, degrees, or null
|
|
4423
|
+
"description": "How far the far wall may turn from facing back, degrees, or null for any."
|
|
4398
4424
|
}
|
|
4399
4425
|
},
|
|
4400
4426
|
"additionalProperties": false
|
|
@@ -4416,7 +4442,7 @@
|
|
|
4416
4442
|
"ray",
|
|
4417
4443
|
"sphere"
|
|
4418
4444
|
],
|
|
4419
|
-
"description": "ray: along the inward normal to the far wall (
|
|
4445
|
+
"description": "ray: along the inward normal to the far wall (the shortest of a cone with coneRays). sphere: the largest sphere that fits at the point."
|
|
4420
4446
|
},
|
|
4421
4447
|
"maxThickness": {
|
|
4422
4448
|
"type": "number",
|
|
@@ -4446,7 +4472,7 @@
|
|
|
4446
4472
|
"description": "Not checked."
|
|
4447
4473
|
}
|
|
4448
4474
|
],
|
|
4449
|
-
"description": "How far the far wall may turn from facing back, degrees, or null
|
|
4475
|
+
"description": "How far the far wall may turn from facing back, degrees, or null for any."
|
|
4450
4476
|
},
|
|
4451
4477
|
"low": {
|
|
4452
4478
|
"type": "number",
|
|
@@ -4486,7 +4512,7 @@
|
|
|
4486
4512
|
{
|
|
4487
4513
|
"name": "view.render",
|
|
4488
4514
|
"title": "Picture the view",
|
|
4489
|
-
"description": "A picture of the 3D view as a PNG — what the
|
|
4515
|
+
"description": "A picture of the 3D view as a PNG — what the viewport shows, without the HTML labels (dimension values, names). view and/or fit turn the view first, as view.set does; frame frames a box or a place (mmAcross says what the picture spans). Trap: only fit: true fits — a view alone keeps the zoom, and a frame stays for the pictures after it (fitted and framedEarlier say so). show puts keys on screen or away for the picture alone ({ scan: false } pictures what was built on the scan); a key that has to be read, a workspace’s map, is waited for up to 35 s, and the answer says how far it got if not; section cuts it open for the picture alone. 800 px on the long side by default, up to 2048; views: two to six standard views in one picture. In the Deviation workspace the answer says which map is painted (map) or why none (mapWhy; mapNote when the reference ghost dulls the colours). Waits for the session to settle. Needs the viewport.",
|
|
4490
4516
|
"input": {
|
|
4491
4517
|
"type": "object",
|
|
4492
4518
|
"properties": {
|
|
@@ -4506,6 +4532,9 @@
|
|
|
4506
4532
|
"type": "string",
|
|
4507
4533
|
"enum": [
|
|
4508
4534
|
"iso",
|
|
4535
|
+
"iso-front-left",
|
|
4536
|
+
"iso-rear-left",
|
|
4537
|
+
"iso-rear-right",
|
|
4509
4538
|
"top",
|
|
4510
4539
|
"bottom",
|
|
4511
4540
|
"front",
|
|
@@ -4513,7 +4542,7 @@
|
|
|
4513
4542
|
"left",
|
|
4514
4543
|
"right"
|
|
4515
4544
|
],
|
|
4516
|
-
"description": "A standard view
|
|
4545
|
+
"description": "A standard view: iso (front, right, above) and the other iso corners, top (down Z, Y up), bottom, front (from −Y, Z up), rear, left (from −X), right."
|
|
4517
4546
|
},
|
|
4518
4547
|
"views": {
|
|
4519
4548
|
"type": "array",
|
|
@@ -4521,6 +4550,9 @@
|
|
|
4521
4550
|
"type": "string",
|
|
4522
4551
|
"enum": [
|
|
4523
4552
|
"iso",
|
|
4553
|
+
"iso-front-left",
|
|
4554
|
+
"iso-rear-left",
|
|
4555
|
+
"iso-rear-right",
|
|
4524
4556
|
"top",
|
|
4525
4557
|
"bottom",
|
|
4526
4558
|
"front",
|
|
@@ -4528,19 +4560,19 @@
|
|
|
4528
4560
|
"left",
|
|
4529
4561
|
"right"
|
|
4530
4562
|
],
|
|
4531
|
-
"description": "A standard view
|
|
4563
|
+
"description": "A standard view: iso (front, right, above) and the other iso corners, top (down Z, Y up), bottom, front (from −Y, Z up), rear, left (from −X), right."
|
|
4532
4564
|
},
|
|
4533
|
-
"description": "Several standard views in one picture, each fitted
|
|
4565
|
+
"description": "Several standard views in one picture, each fitted.",
|
|
4534
4566
|
"minItems": 2,
|
|
4535
4567
|
"maxItems": 6
|
|
4536
4568
|
},
|
|
4537
4569
|
"fit": {
|
|
4538
4570
|
"type": "boolean",
|
|
4539
|
-
"description": "
|
|
4571
|
+
"description": "Fit everything shown into the frame, keeping the direction."
|
|
4540
4572
|
},
|
|
4541
4573
|
"show": {
|
|
4542
4574
|
"type": "object",
|
|
4543
|
-
"description": "
|
|
4575
|
+
"description": "Keys to show (true) or put away (false): scan, reference, sections, elements (with dimensions), labels, and a workspace’s own (view.set lists every key standing now).",
|
|
4544
4576
|
"properties": {
|
|
4545
4577
|
"scan": {
|
|
4546
4578
|
"type": "boolean"
|
|
@@ -4569,7 +4601,7 @@
|
|
|
4569
4601
|
"items": {
|
|
4570
4602
|
"type": "number"
|
|
4571
4603
|
},
|
|
4572
|
-
"description": "
|
|
4604
|
+
"description": "Lowest corner, mm.",
|
|
4573
4605
|
"minItems": 3,
|
|
4574
4606
|
"maxItems": 3
|
|
4575
4607
|
},
|
|
@@ -4578,7 +4610,7 @@
|
|
|
4578
4610
|
"items": {
|
|
4579
4611
|
"type": "number"
|
|
4580
4612
|
},
|
|
4581
|
-
"description": "
|
|
4613
|
+
"description": "Highest corner, mm.",
|
|
4582
4614
|
"minItems": 3,
|
|
4583
4615
|
"maxItems": 3
|
|
4584
4616
|
}
|
|
@@ -4588,7 +4620,7 @@
|
|
|
4588
4620
|
"max"
|
|
4589
4621
|
],
|
|
4590
4622
|
"additionalProperties": false,
|
|
4591
|
-
"description": "A box
|
|
4623
|
+
"description": "A box in the current frame, framed whole."
|
|
4592
4624
|
},
|
|
4593
4625
|
{
|
|
4594
4626
|
"type": "object",
|
|
@@ -4604,7 +4636,7 @@
|
|
|
4604
4636
|
},
|
|
4605
4637
|
"size": {
|
|
4606
4638
|
"type": "number",
|
|
4607
|
-
"description": "The side of the square
|
|
4639
|
+
"description": "The side of the square fitted in the picture’s shorter side, mm.",
|
|
4608
4640
|
"exclusiveMinimum": 0
|
|
4609
4641
|
}
|
|
4610
4642
|
},
|
|
@@ -4613,16 +4645,16 @@
|
|
|
4613
4645
|
"size"
|
|
4614
4646
|
],
|
|
4615
4647
|
"additionalProperties": false,
|
|
4616
|
-
"description": "A place
|
|
4648
|
+
"description": "A place, a square size mm on a side fitted round it."
|
|
4617
4649
|
}
|
|
4618
4650
|
],
|
|
4619
|
-
"description": "Frame a box or a place instead of everything shown
|
|
4651
|
+
"description": "Frame a box or a place instead of everything shown; the direction stays, fit is left alone."
|
|
4620
4652
|
},
|
|
4621
4653
|
"section": {
|
|
4622
4654
|
"oneOf": [
|
|
4623
4655
|
{
|
|
4624
4656
|
"type": "boolean",
|
|
4625
|
-
"description": "true
|
|
4657
|
+
"description": "true: cut square to the view through the part’s middle; false: put it away."
|
|
4626
4658
|
},
|
|
4627
4659
|
{
|
|
4628
4660
|
"type": "object",
|
|
@@ -4631,24 +4663,24 @@
|
|
|
4631
4663
|
"oneOf": [
|
|
4632
4664
|
{
|
|
4633
4665
|
"type": "integer",
|
|
4634
|
-
"description": "
|
|
4666
|
+
"description": "Its id.",
|
|
4635
4667
|
"minimum": 1
|
|
4636
4668
|
},
|
|
4637
4669
|
{
|
|
4638
4670
|
"type": "string",
|
|
4639
|
-
"description": "
|
|
4671
|
+
"description": "Its name — \"Sphere 1\".",
|
|
4640
4672
|
"minLength": 1
|
|
4641
4673
|
}
|
|
4642
4674
|
],
|
|
4643
|
-
"description": "
|
|
4675
|
+
"description": "\"XY\", \"YZ\", \"XZ\", or an element with a direction."
|
|
4644
4676
|
},
|
|
4645
4677
|
"offset": {
|
|
4646
4678
|
"type": "number",
|
|
4647
|
-
"description": "
|
|
4679
|
+
"description": "Along its normal, mm: a coordinate plane’s coordinate, or from an element’s centre."
|
|
4648
4680
|
},
|
|
4649
4681
|
"flip": {
|
|
4650
4682
|
"type": "boolean",
|
|
4651
|
-
"description": "Take away the half
|
|
4683
|
+
"description": "Take away the far half instead."
|
|
4652
4684
|
}
|
|
4653
4685
|
},
|
|
4654
4686
|
"required": [
|
|
@@ -4657,7 +4689,7 @@
|
|
|
4657
4689
|
"additionalProperties": false
|
|
4658
4690
|
}
|
|
4659
4691
|
],
|
|
4660
|
-
"description": "The section view:
|
|
4692
|
+
"description": "The section view: cut open at a plane, the near half taken away, closed parts capped. Set after any turn."
|
|
4661
4693
|
}
|
|
4662
4694
|
},
|
|
4663
4695
|
"additionalProperties": false
|
|
@@ -4669,7 +4701,7 @@
|
|
|
4669
4701
|
{
|
|
4670
4702
|
"name": "view.set",
|
|
4671
4703
|
"title": "Turn the view",
|
|
4672
|
-
"description": "Turn the 3D view to a standard view and/or fit everything shown
|
|
4704
|
+
"description": "Turn the 3D view to a standard view and/or fit everything shown — with neither, it fits — or frame a box or a place; the zoom a frame leaves stays for what comes after. show puts keys on screen or away and leaves them so; section cuts everything open at a plane and leaves it so. Waits for the session to settle first. Not a step of the history. Needs the viewport. Returns view, fitted, framed, framedEarlier, mmAcross ([width, height] mm), section (null when off) and shown: every key and whether it is, with <key>Why for a workspace key that is off.",
|
|
4673
4705
|
"input": {
|
|
4674
4706
|
"type": "object",
|
|
4675
4707
|
"properties": {
|
|
@@ -4677,6 +4709,9 @@
|
|
|
4677
4709
|
"type": "string",
|
|
4678
4710
|
"enum": [
|
|
4679
4711
|
"iso",
|
|
4712
|
+
"iso-front-left",
|
|
4713
|
+
"iso-rear-left",
|
|
4714
|
+
"iso-rear-right",
|
|
4680
4715
|
"top",
|
|
4681
4716
|
"bottom",
|
|
4682
4717
|
"front",
|
|
@@ -4684,15 +4719,15 @@
|
|
|
4684
4719
|
"left",
|
|
4685
4720
|
"right"
|
|
4686
4721
|
],
|
|
4687
|
-
"description": "A standard view
|
|
4722
|
+
"description": "A standard view: iso (front, right, above) and the other iso corners, top (down Z, Y up), bottom, front (from −Y, Z up), rear, left (from −X), right."
|
|
4688
4723
|
},
|
|
4689
4724
|
"fit": {
|
|
4690
4725
|
"type": "boolean",
|
|
4691
|
-
"description": "
|
|
4726
|
+
"description": "Fit everything shown into the frame, keeping the direction."
|
|
4692
4727
|
},
|
|
4693
4728
|
"show": {
|
|
4694
4729
|
"type": "object",
|
|
4695
|
-
"description": "
|
|
4730
|
+
"description": "Keys to show (true) or put away (false): scan, reference, sections, elements (with dimensions), labels, and a workspace’s own (view.set lists every key standing now).",
|
|
4696
4731
|
"properties": {
|
|
4697
4732
|
"scan": {
|
|
4698
4733
|
"type": "boolean"
|
|
@@ -4721,7 +4756,7 @@
|
|
|
4721
4756
|
"items": {
|
|
4722
4757
|
"type": "number"
|
|
4723
4758
|
},
|
|
4724
|
-
"description": "
|
|
4759
|
+
"description": "Lowest corner, mm.",
|
|
4725
4760
|
"minItems": 3,
|
|
4726
4761
|
"maxItems": 3
|
|
4727
4762
|
},
|
|
@@ -4730,7 +4765,7 @@
|
|
|
4730
4765
|
"items": {
|
|
4731
4766
|
"type": "number"
|
|
4732
4767
|
},
|
|
4733
|
-
"description": "
|
|
4768
|
+
"description": "Highest corner, mm.",
|
|
4734
4769
|
"minItems": 3,
|
|
4735
4770
|
"maxItems": 3
|
|
4736
4771
|
}
|
|
@@ -4740,7 +4775,7 @@
|
|
|
4740
4775
|
"max"
|
|
4741
4776
|
],
|
|
4742
4777
|
"additionalProperties": false,
|
|
4743
|
-
"description": "A box
|
|
4778
|
+
"description": "A box in the current frame, framed whole."
|
|
4744
4779
|
},
|
|
4745
4780
|
{
|
|
4746
4781
|
"type": "object",
|
|
@@ -4756,7 +4791,7 @@
|
|
|
4756
4791
|
},
|
|
4757
4792
|
"size": {
|
|
4758
4793
|
"type": "number",
|
|
4759
|
-
"description": "The side of the square
|
|
4794
|
+
"description": "The side of the square fitted in the picture’s shorter side, mm.",
|
|
4760
4795
|
"exclusiveMinimum": 0
|
|
4761
4796
|
}
|
|
4762
4797
|
},
|
|
@@ -4765,16 +4800,16 @@
|
|
|
4765
4800
|
"size"
|
|
4766
4801
|
],
|
|
4767
4802
|
"additionalProperties": false,
|
|
4768
|
-
"description": "A place
|
|
4803
|
+
"description": "A place, a square size mm on a side fitted round it."
|
|
4769
4804
|
}
|
|
4770
4805
|
],
|
|
4771
|
-
"description": "Frame a box or a place instead of everything shown
|
|
4806
|
+
"description": "Frame a box or a place instead of everything shown; the direction stays, fit is left alone."
|
|
4772
4807
|
},
|
|
4773
4808
|
"section": {
|
|
4774
4809
|
"oneOf": [
|
|
4775
4810
|
{
|
|
4776
4811
|
"type": "boolean",
|
|
4777
|
-
"description": "true
|
|
4812
|
+
"description": "true: cut square to the view through the part’s middle; false: put it away."
|
|
4778
4813
|
},
|
|
4779
4814
|
{
|
|
4780
4815
|
"type": "object",
|
|
@@ -4783,24 +4818,24 @@
|
|
|
4783
4818
|
"oneOf": [
|
|
4784
4819
|
{
|
|
4785
4820
|
"type": "integer",
|
|
4786
|
-
"description": "
|
|
4821
|
+
"description": "Its id.",
|
|
4787
4822
|
"minimum": 1
|
|
4788
4823
|
},
|
|
4789
4824
|
{
|
|
4790
4825
|
"type": "string",
|
|
4791
|
-
"description": "
|
|
4826
|
+
"description": "Its name — \"Sphere 1\".",
|
|
4792
4827
|
"minLength": 1
|
|
4793
4828
|
}
|
|
4794
4829
|
],
|
|
4795
|
-
"description": "
|
|
4830
|
+
"description": "\"XY\", \"YZ\", \"XZ\", or an element with a direction."
|
|
4796
4831
|
},
|
|
4797
4832
|
"offset": {
|
|
4798
4833
|
"type": "number",
|
|
4799
|
-
"description": "
|
|
4834
|
+
"description": "Along its normal, mm: a coordinate plane’s coordinate, or from an element’s centre."
|
|
4800
4835
|
},
|
|
4801
4836
|
"flip": {
|
|
4802
4837
|
"type": "boolean",
|
|
4803
|
-
"description": "Take away the half
|
|
4838
|
+
"description": "Take away the far half instead."
|
|
4804
4839
|
}
|
|
4805
4840
|
},
|
|
4806
4841
|
"required": [
|
|
@@ -4809,7 +4844,7 @@
|
|
|
4809
4844
|
"additionalProperties": false
|
|
4810
4845
|
}
|
|
4811
4846
|
],
|
|
4812
|
-
"description": "The section view:
|
|
4847
|
+
"description": "The section view: cut open at a plane, the near half taken away, closed parts capped. Set after any turn."
|
|
4813
4848
|
}
|
|
4814
4849
|
},
|
|
4815
4850
|
"additionalProperties": false
|