Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plugins/reverse/guides/scan-to-cad.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ Build as the model guide's §2 says; what the scan adds:
- **Freeform thin shell** (covers, lamp housings, fairings, bezels). Two took 35 min and a three-copy hack to make hollow; the third shelled at 3.4 mm in 29 s from analytic pieces. Choose the route to the thickness before building.
- **A decomposition that shells** (the scooter cover, 81 % of the outer skin within ±0.4): the plan as a drafted prism, ∩ (a torus ∪ a fitted B-spline slab), ∩ a visor extrusion, − a rim wedge. The shroud tube is a circle revolved about a far axis, carrying bow and tilt in one; the wing top a `surface` thickened 45 mm down and mirrored; the concave shoulder round goes on the torus ∪ slab union **before** the intersection with the plan prism — on the final body its chain ran on into the plan rounds and failed.
- **Form from the outer skin only:** `skin: "outer"` (and `within` to leave the rim out) on every section fit, stack and sketch `fit`; the inner skin carries ribs and bosses — a form fitted on it came out R321 for R587. Compare with `skin: "outer"` until the model is hollow.
- **Thickness, one of three:** (a) **one skin, trimmed, then thickened.** Fit the outer skin oversize: a Patch network's sheet, a `surface` (region by query, `fit.robust`, `expandPct` past every edge) or a sheet. Trim the sheet to the part: `boolean { op: "intersect", body: <sheet>, tool: <outline prism> }` keeps what lies inside the prism (`cut`, what lies outside) — the prism stays a body, for the next sheet — and `split { body: <sheet>, tools: [<sheets or solids>], keep: "scan" }` drops what has no scan behind it (a lip's overshoot past its tip, a sheet's run past another sheet). Then `thicken { sheet, thickness, side }`. It names a face that bends tighter than the wall, and answers the wall reached along the sheet's edge. Trimmed first, the wall's ends stand square to it and round further than a slab cut at a slant. Cut after the thicken (the prism through the slab), the ends run along the cut: take that where the scan's edge runs along the pull. (b) Outer and inner skins both fitted, then `split { body: <block>, tools: [outer, inner], keep: "between" }` — the wall follows the part, no offset. Skins that meet inside the body are refused in a second, saying where: model one skin and thicken it. (c) Inner lofts through inset stations — stations in one call: fit station 1 ("Wing 1") with `fit: { skin: "outer", within, accept: { sigmas: 2, kinds: ["tangent"] } }`, close it with a line across the wall ends at least 2 × the wall below the base (`reverse_sketch_edit`), then one `loft { name: "Wing", sections: [{ sketch: "Wing 1" }, <planes>…], fit: { like: "Wing 1", skin: "outer", within }, inner: 2.4, ruled: false }` — `inner` and `inset.by` take the wall as a number, not a parameter's name. Read each of `stations` (`fit` residuals, `reversed`); cut "Wing inner" from the outer after the joins and the mirror; edit stations later with `reverse_feature_update { features }`. One inner twin alone: a sketch with `inset: { by: 2.4, of: "Wing 1" }`. `like` maps pieces at the same [u, v]: parallel planes, or radial ones — not tilted planes that are not parallel.
- **Thickness, one of three:** (a) **one skin, trimmed, then thickened.** Fit the outer skin oversize: a Patch network's sheet, a `surface` (region by query, `fit.robust`, `expandPct` past every edge) or a sheet. Trim the sheet to the part: `boolean { op: "intersect", body: <sheet>, tool: <outline prism> }` keeps what lies inside the prism (`cut`, what lies outside) — the prism stays a body, for the next sheet — and `split { body: <sheet>, tools: [<sheets or solids>], keep: "scan" }` drops what has no scan behind it (a lip's overshoot past its tip, a sheet's run past another sheet). Then `thicken { sheet, thickness, side }`. It names a face that bends tighter than the wall, and answers the wall reached along the sheet's edge. Trimmed first, the wall's ends stand square to it and round further than a slab cut at a slant. Cut after the thicken (the prism through the slab), the ends run along the cut: take that where the scan's edge runs along the pull. (b) Outer and inner skins both fitted, then `split { body: <block>, tools: [outer, inner], keep: "between" }` — the wall follows the part, no offset. Skins that meet inside the body are refused in a second, saying where: model one skin and thicken it. (c) Inner lofts through inset stations — stations in one call: fit station 1 ("Wing 1") with `fit: { skin: "outer", within, accept: { sigmas: 2, kinds: ["tangent"] } }`, close it with a line across the wall ends at least 2 × the wall below the base (`reverse_sketch_edit`), then one `loft { name: "Wing", sections: [{ sketch: "Wing 1" }, <planes>…], fit: { like: "Wing 1", skin: "outer", within }, inner: 2.4, ruled: false }` — `inner` and `inset.by` take the wall as a number; drive it from a parameter instead with `exprs: { inner: "<name>" }` on the loft (moves every inner station's `inset` together) or `exprs: { inset: "<name>" }` on one inset sketch — each is taken again from its station when the parameter changes. Read each of `stations` (`fit` residuals, `reversed`); cut "Wing inner" from the outer after the joins and the mirror; edit stations later with `reverse_feature_update { features }`. One inner twin alone: a sketch with `inset: { by: 2.4, of: "Wing 1" }`. `like` maps pieces at the same [u, v]: parallel planes, or radial ones — not tilted planes that are not parallel.
- **A skin that turns** (a flange into a curled lip, a cover into its skirt) is two sheets, each fitted along its own direction:
1. Split each by the other, `keep: "scan"`.
2. Join them: `boolean { op: "join", body: A, tool: B }` sews two sheets into one.
Expand Down
Loading