Repository navigation
Conversation
…junction (tangency-labs#15357) Squash of the contract half of solidcraft PR tangency-labs#15357 by lychee888 (16 commits, FR-13), ported onto the surface-sheet model of tangency-labs#9245: the `relief` key of a segment (`{shape, width?, depth?}`), its parse and refusals in `sheet.flange`, the Flange dialog's relief choice, the pending format and locale files, the book chapter, the sheet metal skill, and the contract tests. The part of tangency-labs#15357 that edited the deleted flat model (`SheetBody`, `sheet_convert`, `flat_dxf`) and the tests that read it are not in this commit; they are rebuilt on the folded sheet's surfaces in the next commit. This commit alone does not compile: `cmd/sheet.rs` names `ReliefShape::JUNCTION`, which the next commit replaces with `JunctionShape`.
…flat follows (tangency-labs#15357) Rebuilds the build half of tangency-labs#15357 on the surface sheet instead of the deleted flat model. A segment's relief at a junction of a split edge (`SurfaceSheet::junctions`) is now: - straight / rectangular / obround: a `Cut` of the sheet on the panel the two bends stand on, `width` across the junction, centred, from `depth` before the deeper tangent line out to the nearer far edge. The flat, the folded body, the bend table and the DXF all derive from it. - tear: the junction's own slit (`SurfaceSheet::junction_tears`), started `depth` deeper and made whichever sides the two bends turn to. - refusals (depth past the parent panel, obround depth, notch wider than the narrower stretch, a notch or tear that would part the blank, one tear meeting another junction's cut) name the segment; nothing is clamped. New: `sheet_surface_junction.rs`, `JunctionShape`/`JunctionRelief` in sheet.rs, `relief` in the sheet.flange segment schema; `cmd/sheet.rs` now uses `JunctionShape` (the previous commit named `ReliefShape::JUNCTION`). Tests rebuilt on `surface_sheets` and `sheet.export_dxf` with closed-form values.
tangency-labs#15357 dropped a stretch panel's plain `shape` so `corners` could still close a relieved split edge's outer end against another edge's flange. That panel field is gone on the surfaces-first develop; this pins the behaviour it protected: the far corner's outline is the same with and without the junction relief, and the relief takes exactly its closed-form 2 x (pi + 13) of the flat.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Port of tangency-labs#15357 (edge-flange segment junction relief, by @lychee888) onto the surfaces-first develop in tangency-labs#9245.
What it does
relief: {shape, width?, depth?}.notch/straight,rectangular,obroundandtear.roundis refused, as in the original. The width and depth default to the rule'srelief_widthandrelief_depth.How it maps onto the surfaces
Cutacross the joint, on the panel both bends stand on. It is the relief width wide, centred on the junction, and runs fromdepthbefore the deeper tangent line out to the nearer far edge. The flat, the folded body, the bend table and the DXF all derive from that cut. There is no flat-to-3D bridge.SurfaceSheet::junction_tears, and the junction slit startsdepthdeeper. It also applies to same-side junctions.JunctionShape: the original addedstraightandobroundtoReliefShape, which would have leaked them into corner reliefs and rule parsing. This port uses its ownJunctionShapeinstead.Commits
ReliefShape::JUNCTION. The next commit replaces that name, so a squash merge is cleanest.sheet_surface_junction.rs,JunctionShapeandJunctionRelief, the wiring inSurfaceSheet, the schemarelief, and the tests moved ontosurface_sheets.drop_plain_shapeprotected this, and the panel field it touched no longer exists.Tests (buildq)
sheet: 438 passed, 5 failed. The 5 failures are the existing failures on fix-6748-develop (two convert tests, one dxf round-notch test, two face_names tests).sheet: 75 passed. engineschema::sheet: 14 passed. docsheet: 35 passed.Credit: @lychee888 for the feature and the original PR.