Commit Graph

139 Commits

Author SHA1 Message Date
Florian Festi d782eb281c FingerJointEdges: Better deal with short edges
Shrink surroundingspaces when need to still fit at least one finger. If
even one regular finger won't fit use a small rectangular style finger.

This is a bit hacky as the same logic is copied in both
FingerJointEdge and FingerHoles
2022-09-30 19:28:01 +02:00
suks.ae bfaabc2619 Add HandleEdge 2022-09-24 08:36:00 +02:00
Florian Festi cd4949ccac Only draw snap finger joint for wide fingers
and use rectangular fingers if width is smaller than 1.9
2022-08-20 09:03:21 +02:00
Erik Snider a41ffd6905 Add option for finger joints on the base and lid of hinged chests 2022-08-18 00:08:20 +02:00
Florian Festi dcff72bb47 Fix barbs and spring finger joint types
broken in 13170f0306

Thanks to Tino Hager (https://github.com/tinohager) for reporting!

Resolves: #420
2022-08-13 11:43:02 +02:00
Florian Festi db1ca9e505 MountingEdge: Fix typo and default
for side to "back"
2022-07-28 22:26:55 +02:00
Florian Festi 13170f0306 FingerJoints: Move drawing fingers into function
so it can be reused by sub classes
2022-06-28 08:35:00 +02:00
Florian Festi c70eecd1d1 Convert given default values to proper type
for when converting Settings to parseargs to void the type changing by
careless new default values.
2022-06-28 08:35:00 +02:00
Florian Festi e414e73bf2 RoundedTriangleEdge: Reduce default height to 50
Avoid height of several generators becoming negative if
RoundedTriangleEdge is selceted with default values e.g. for
UniversalBox and TypeTray. These are only 100mm hight with outside
option being enabled.

Thanks to https://github.com/SuksAE, https://github.com/HaSHsss and
https://github.com/Arcturuss for pushing this issue.

Resolves: #406
Resolves: #305
2022-06-20 08:10:07 +02:00
Florian Festi 362dd54e09 Move Slatwall classes to walledges 2022-06-10 23:01:54 +02:00
Florian Festi c289758749 CabinetHingeEdge: Fix spurious 270° corner
Resolves: #404 - Issue not found
2022-06-06 19:58:00 +02:00
suks.ae 20f45224fb Add MountingEdge
and add it to top_edge.
2022-05-27 14:53:40 +02:00
SuksAE ece304bf1f
Add labels to some generators 2022-05-14 10:35:58 +02:00
Florian Festi a7afc8b1b6 Add stackable top edge with finger holes 2022-05-04 22:19:35 +02:00
Guillaume Collic b9dbe1d2e8 chore: small description error 2022-03-30 23:18:46 +02:00
Florian Festi f1f829d5fb FingerJoints: Add "snap" style 2022-03-27 22:09:32 +02:00
Florian Festi be0aec17cf FingerJoints: Add "barb" style 2022-03-27 22:09:32 +02:00
Florian Festi ec6f784442 HingeSettings: Check axle for valid values 2022-03-21 12:10:12 +01:00
Florian Festi 7eca5a6c05 Slatwall Edges: Redimentary DIN rail support
Added type parameter to SlatwallSettings
2022-02-11 19:17:40 +01:00
Florian Festi a364f603a8 Add extra_length to Finger Joint Settings
to allow extending the finger joints so burn marks can be ground off.

Thanks to all who have been pushing for this feature!

Resolves: #270
2022-01-16 15:18:11 +01:00
Florian Festi b7b74ab27f Settings: Add "multiple of thickness"
where appropriate. Before that not indication on what the numbers
actually mean were given.
2022-01-07 22:22:03 +01:00
Florian Festi 5810314331 DoveTailEdge: Fix edge without dove tails 2022-01-05 18:29:09 +01:00
Marcin Zukowski 2538f2fef3 Add optional "finger hold" to the sliding lid, present if "hole_width" > 0.
Also:
* add comments for the sliding lid parameters
* move groove-cutting logic to helper methods

Example usage:
scripts/boxes UniversalBox --bottom_edge=F --top_edge=L --Lid_spring=none --Lid_style=springs --x=100.0 --y=100.0 --h=100.0 --reference=0 --thickness=3.0 --Lid_hole_width=20
2021-06-12 11:46:37 +02:00
Florian Festi bdca0f1422 New StackableFeet edge without finger holes
first use of non ASCII edge char - what can you do...
2021-05-15 15:45:25 +02:00
Florian Festi b132569219 SlatWallSettings: Add hook_depth setting to fit into other slot styles
Some are not as deep as the ones this was originally created for
2021-04-18 18:27:44 +02:00
Florian Festi 29183ed7ed SlatWalls: Make pitch of the wall adjustable
Resolves: #312
2021-04-17 11:44:47 +02:00
Florian Festi 632a96676a Fix typo in RoundedTriangleFingerHolesEdge 2020-11-11 00:35:22 +01:00
Florian Festi 47d3600016 Add RoundedTriangleFingerHolesEdge (T) 2020-11-09 19:15:55 +01:00
Marcin Zukowski dfc2f075d9 Adding Grooved Edge (z, Z), example use in UnevenHeightBox 2020-09-29 20:40:18 +02:00
Florian Festi e35447e536 Fix FlexEdge to use separate path for the flex cut
to allow continous outlines for parts.

Resolves: #242
2020-09-15 17:44:58 +02:00
Florian Festi a0c04d10ca Add description to ClickSettings 2020-08-04 23:42:12 +02:00
Florian Festi 7c004e2d2c New primitive: Boxes.step()
Outset a line by a given margin - negative values for insetting
2020-02-28 17:46:44 +01:00
Florian Festi dd0f2d748c ChestHingeSettings: check pin_height for minimal size 2020-02-01 14:27:17 +01:00
Florian Festi 0f3eb5b21a StackableSettings: check angle for invalid values 2020-02-01 14:16:26 +01:00
Florian Festi 8cb5a8e042 Check values of flex settings 2019-12-14 13:09:43 +01:00
Florian Festi fe9555a79f checkValues 2019-12-14 13:09:43 +01:00
Florian Festi 83b5363bc8 StackableEdge: Fix margin for upper (S) variant 2019-11-04 17:05:18 +01:00
Florian Festi cfbcbb065c Clarify doc string for FingerJointSettings.play 2019-10-19 12:03:57 +02:00
Florian Festi 13ecfc9914 Support springs for finger joints (FingerJointSettings.style)
Resolves: #177
2019-10-11 22:32:57 +02:00
Florian Festi 9db79243f8 Make Slide-on Lid with pin easier to insert
Make slot half a thickness wider and round the corners

Resolves: #156

Thanks to Matthijs Kooijman for suggesting this change!
2019-08-17 00:05:13 +02:00
Matthijs Kooijman 8ecf04cbe8 Fix handling of space in LidSideRight/Left
Previously, the extra space was added above the first pin and below the
(optional) second pin. This would cause the lid to misalign with the
holes in the back wall, making it harder to close the lid.

With this commit, the extra space is divided evenly above and below the
nominal position of the pin.

For this to work, the startwidth (or endwidth, depending on the side) is
slightly adjusted (since the start of the first pin slot is actually
generated by the adjacent edge). This moves the starting point, so the
location of the spring hole is adjusted to compensate for that.
2019-07-27 13:30:06 +02:00
Matthijs Kooijman 3bd4dc9907 Fix spring hole offsets by burn in LidSideRight/Left 2019-07-27 13:30:06 +02:00
Matthijs Kooijman 4691a65a29 Let LidSideRight/Left respect edge_width
This allows modifying the height of the wall that extends above the lid.

The box back wall (with holes) would already support edge_width, so this
makes it supported on all three walls where needed.
2019-07-27 13:30:06 +02:00
Matthijs Kooijman db1da4ec12 Fix hole positions offset by burn in FingerHoleEdge
When rendering the FingerHoleEdge, the current position would be
corrected for burn (e.g. it would be on the center of the laser path,
rather than the actual edge of the final part). However, the FingerHoles
class (or actually the rectangularHole method called by it) that draws
the actual holes already corrects for burn, which caused the hole
position to be offset by the burn value.

This offset was particularly problematic when making a sliding lid,
since the holes would not align perfectly with the lid, making it hard
to close the lid. With this change, the sliding slots in the side walls
and the holes in the back wall align perfectly (though only when the lid
settings have zero play, which is a separate problem).

This commit fixes FingerHoleEdge (and its subclass LidHoleEdge), but
there might be other users of the FingerHole class (usually indirectly
through boxes.fingerHolesAt) that still have the same problem.
2019-07-27 13:30:06 +02:00
Matthijs Kooijman eeb2c344d5 Clarify where l and L edges should be used 2019-07-27 13:30:06 +02:00
Florian Festi db706fc939 SlatWall edges: Make bottom hook selectable, various fixes 2019-06-21 21:36:28 +02:00
Florian Festi 5cef906a9a Add SlatWallHoleEdge (dD) classes
Similar to FigerHolesEdge (h)
2019-06-21 18:47:29 +02:00
Florian Festi aadf5ceafc Add Edge types, example and UIGroup for slat wall compatible boxes 2019-06-13 19:00:32 +02:00
Florian Festi 7aec26e893 New .polygonWall() part
Similar to .polyline() but with (f) edges on the outside
.polygonWalls draws the surrounding walls
2019-03-24 21:50:36 +01:00
Florian Festi cbb000f12e DoveTailJoint: remove no longer needed ctx.translate 2019-02-24 14:45:57 +01:00