Skip to content

Port of #12651: laser-weld corner relief on the surfaces-first sheet model - #25

Draft
raykholo wants to merge 1 commit into
h0witzer:fix-6748-developfrom
raykholo:port/12651-laser-weld-relief
Draft

raykholo wants to merge 1 commit into
h0witzer:fix-6748-developfrom
raykholo:port/12651-laser-weld-relief

Conversation

@raykholo

Copy link
Copy Markdown

Port of tangency-labs#12651 (laser-weld corner relief, by admin.greg / @ocpistol-bec) onto the surfaces-first develop in tangency-labs#9245.

What it does

  • New corner relief shape laser_weld ("Laser weld" in the dialogs).
  • It closes the mitre seam tight, the same way Tear does, and cuts a round hole the size of corner_relief where the bends cross. The hole is centred at the seam root, where the bends' tangent lines meet on the shared panel. The corner can't tear as it bends, and the seam is left ready to weld.
  • If the hole would be smaller than MIN_RELIEF, the corner falls back to Tear and adds a note.
  • If the flanges aren't closed toward each other, it falls back to a notch and adds the note "a laser-weld corner needs its flanges closed toward each other".

How it differs from tangency-labs#12651's original V tabs

On tangency-labs#9245 every corner rip is already Lap::Miter { gap }. Mitre-cut tabs at the seam ends would therefore come out identical to Tear. What a weld corner adds is the hole at the root, which stops tearing. So this port is Tear's closed mitre seam plus a corner-relief-sized round hole. This matches the line for laser weld in your table: "the one to add, on the same corner code".

Enum touch across the three vendored crates

CornerRelief::Weld is added in:

  • solidcore/crates/solidcore-record/src/develop.rs (the record enum)
  • solidcore/crates/solidcore/src/develop/sheet.rs (the kernel enum)
  • solidcore/crates/solidcore-convert/src/develop.rs (the mappings both ways)

develop/layout.rs gains weld_cut: corner_cut returns it for Weld. The hole is centred at the crossing of the zones' shared-panel-side edges. Its two arcs meet inside the wedge between the zone ends.

Also touched

schema pattern, shape-list error strings, manage_rules help, dialog labels, pending locale strings (en, ar, de, he, ja, ko, vi, zh), book guide, skill reference, face names (Weld walls are named like Tear's).

Tests (buildq)

  • engine a_laser_weld_corner_closes_the_seam_and_holes_its_root: 1 passed. On the 90° alu tray with corner_relief 1 mm, it checks:
    • the DXF holes are r = 0.5 at (3,3), (117,3), (117,87) and (3,87)
    • the area each hole takes lies between the chord bound and πr²
    • the volume removed versus Tear equals twice the area taken, within 1e-3
    • the volume is above the notch case
    • unfold, refold and reopen keep the volume
  • engine tear / corner_reliefs / closed_corners / schema::sheet: 18 passed
  • doc corner_relief: 1 passed
  • ui-egui sheet: 71 passed
  • solidcore develop: 40 passed

Credit: admin.greg (@ocpistol-bec) for the laser-weld relief and the original PR.

A laser-weld corner closes the mitre seam tight, as Tear does, and
cuts a round hole the size of corner_relief where the bends cross,
centred at the seam root, so the corner does not tear as it bends and
the seam can be welded.

On the surfaces-first develop every corner rip is already a mitre
with a gap, so tangency-labs#12651's V tabs at the mitre ends would come out as
Tear. The hole at the root is what a weld corner adds.

- vendored solidcore: CornerRelief::Weld in solidcore-record,
  solidcore develop::sheet and the solidcore-convert mappings;
  layout's weld_cut places the hole.
- doc: ReliefShape::LaserWeld ("laser_weld"); settle falls back to
  Tear below MIN_RELIEF and to a notch with a note when the flanges
  are not closed toward each other.
- schema, command help, dialog labels, locales, book and skill docs.
- test: the hole centres, its area bounds and the volume identity
  against Tear on the 90 degree tray, kept through unfold/refold.

Idea and original PR by admin.greg (tangency-labs#12651).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant