Commit Graph

1092 Commits

Author SHA1 Message Date
caleb crome ede8546167 Create a gridfinity base and holding tray 2023-01-08 11:47:54 +01:00
Florian Festi a01bc11cb7 polygonWall: Fix margin calculation
by tracing the outline of the edge margins.

Fixes 1875742b8d
2023-01-04 13:30:14 +01:00
Rotzbua 9cb581a6ad
Fix misspelled variables (#484)
Co-authored-by: Florian Festi <florian@festi.info>
2023-01-02 16:23:24 +01:00
Rotzbua 5fae61bd0d Fix typos and docstrings 2023-01-02 16:15:13 +01:00
Florian Festi 4d41b2ddb1 FingerHolesEdge: Add bottom_lip parameter
to support boxes that stack on top of each other like milk crates
2023-01-02 13:00:07 +01:00
Florian Festi b5d10334d0 StackableEdge: Add bottom_stabilizers parameter
to generate strips to be glued to the inside of bottom edges
2023-01-02 13:00:07 +01:00
Rotzbua 9d6f535e01 Fix typing errors 2023-01-01 18:10:42 +01:00
Florian Festi 1875742b8d polygonWall: Take all edge type into account
when calculating the extent of the polygon. This is a less than ideal,
worst case estimate. Should be replaced by something a bit smarter that
only looks at the current edge and the space it needs.
2023-01-01 15:26:07 +01:00
ranthalion 420550b2c4 DisplayShelf: Implement back and slope 2023-01-01 15:14:44 +01:00
Rotzbua ad38bb1eaf Auto optimize imports
* Remove unused
* Rearrange imports (module > partial > project)
2022-12-31 20:33:49 +01:00
Rotzbua 20032e50be Remove outdated imports 2022-12-31 20:33:49 +01:00
Rotzbua 508dd0f030 Change SVG encoding
Change from default 'us-ascii' to universal 'utf-8'.
2022-12-30 16:44:05 +01:00
Rotzbua 1d6efb5371 Fix comparison with None and equality operator 2022-12-29 12:02:33 +01:00
Rotzbua 4ffad120b5 Remove unnecessary backslash 2022-12-29 12:02:33 +01:00
Rotzbua 03879258e8 Remove trailing semicolon 2022-12-29 12:02:33 +01:00
Rotzbua 5f9f704869 Remove deprecated `cElementTree`
Deprecated since version 3.3: The xml.etree.cElementTree module is deprecated.
2022-12-29 12:02:33 +01:00
Rotzbua 2e98f0fee0 Remove Python 2.7 coding hint 2022-12-29 12:02:33 +01:00
Alex Shargalin 6162383de1 Update edges.py 2022-12-25 18:08:59 +01:00
Florian Festi 9729ca6d0f HingeBox: Add assembly instructions
Resolves: #442
2022-12-25 16:48:00 +01:00
Florian Festi 7a0dd3ebdf flangedWall: Fix placement of finger holes
for walls with other width than t
2022-12-21 22:38:06 +01:00
Florian Festi 814405f0be DisplayShelf: Fix shelf placement for negative angles
Resolves: #463
2022-12-06 20:12:02 +01:00
ranthalion fe28b7454e Add edges to polygonWall 2022-12-06 18:12:21 +01:00
Florian Festi a69b1da78f Whitespace cleanup 2022-12-06 18:12:21 +01:00
Florian Festi 6ab0cef413 Use straight edge for slots SlottedEdge
Used the connecting edge due to an aliasing issue. This broke as the
FingerJointEdge now places fingers even for smaller lengths.

Thanks to Nic Jansma (https://github.com/nicjansma) for reporting!

Resolves: #452
2022-11-12 09:17:56 +01:00
Florian Festi 0c87b43b52 FrenchCleats: Make top and bottom section small
enough to not have finger holes in them. With the new changes to
FingerJoints fingers can now fit into much smaller edges and here that
only weakens the connection between left and right of the edge.
2022-10-02 11:29:07 +02:00
Florian Festi c4b0971d03 topEdges: Give better names to variables 2022-10-01 13:35:51 +02:00
Florian Festi 3a06aa1d62 DocText for topEdges 2022-10-01 13:35:51 +02:00
Florian Festi a7fb562306 TypeTray: Rename top edge variables
to something more meaningful
2022-10-01 13:35:51 +02:00
Florian Festi 6109c6570a TypeTray: Add labels and move grip hole to front 2022-10-01 13:35:51 +02:00
Florian Festi 9dd211d792 DividerTray: Add dividers with asymetric tabs
Related: #438
2022-10-01 10:56:24 +02:00
Florian Festi 77b1e1b4ce DividerTray: Close last corner of the dividers
There was just one corner missing.

Related: #438
2022-10-01 10:20:45 +02:00
suks.ae 9c253a3525 New generator: HalfBox
Configurable half of a box which can be: a bookend, a hanging shelf, an angle clamping jig, ...

ready for pull request
2022-09-30 19:28:01 +02:00
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 93a4cad4f4 fixed edge ordering for topEdges() function 2022-09-24 08:36:00 +02:00
suks.ae f57ba7fdb8 fixed labels 2022-09-24 08:36:00 +02:00
suks.ae 2086eac5e6 DividerTray, Typetray: Add handle parameter 2022-09-24 08:36:00 +02:00
suks.ae bfaabc2619 Add HandleEdge 2022-09-24 08:36:00 +02:00
Florian Festi 4401a096ec New generator: BreadBox
Related: #431
2022-09-23 21:09:35 +02:00
Florian Festi 41ecd619cc DividerTray: Add dividers with half width tabs
This allows having dividers side by side.

Resolves: #436
2022-09-23 17:06:13 +02:00
Florian Festi 55e56d963c KeyPad: Add description
pointing to different material thickness for the top layer(s)

Related: #435
2022-09-22 20:04:56 +02:00
Florian Festi 4008c2b967 SlatWallEdges: Add parameters for hook heights
and make lengths and margin dependent of the parameters

Related: #434
2022-09-22 19:44:06 +02:00
Florian Festi 93a4fad7a1 Planetary2: Move to Unstable as it is not yet working properly
The middle gear set can't fulfill the planetary gear set condition
(ring = sun + 2 * planets)
May have more issues.

Resolves: #417
2022-09-18 01:18:49 +02:00
Electro707 33ede5eef7 New generator: CoinDisplay
Resolves: #426
2022-09-18 00:58:00 +02:00
Florian Festi 1593331194 SlatWallSettings: Add hook_distance parameter
Resolves: #434
2022-09-18 00:47:25 +02:00
funkonaut 691f3f440e Add aria labels to inputs
to make them accessible for screen reader users.

Assign ids to the tds containing the setting name and description and
then use them as the label via the aria-labeledby attribute.
2022-09-08 09:00:04 +02:00
suks.ae 43bd7d12d3 New generator: CanStorage
A dispenser for cylindrical objects like cans or batteries.
2022-09-08 08:41:08 +02:00
Tino Hager 4483e483f7 Fix white space in boxes/extents.py
now that we mess up the history anyway.
2022-09-06 18:54:44 +02:00
Tino Hager 7f1249cb67 Create .gitattributes
And set Pyhton and text files to Unix style end of lines (lf)
Convert boxes/extents.py which was still on DOS style new lines.
2022-09-06 18:52:06 +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
Florian Festi 87cf8fedbf DiceBox: Add image and move to Boxes group
Related: #419
2022-08-19 23:28:41 +02:00
Erik Snider 9e6c0ab604 Add dicebox generator 2022-08-18 00:08:20 +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
Erik Snider 3572feab41 Update regularPolygonHole to support rounded corners 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 59a6ea549d LaptopStand: Improve part placement
and add support for move parameter
2022-08-12 16:00:09 +02:00
Daniel 46032482b8 Laptop-stand: create generator 2022-08-12 16:00:09 +02:00
Florian Festi d6faf5be3e rectangularWall: Fix placement for ignore_widths 6
we need to move for the edge margin every time. Otherwise the edge will
stick out.
2022-08-08 21:50:47 +02:00
suks.ae 00ab597773 DividerTray: Add Labels 2022-08-04 22:05:07 +02:00
Florian Festi 99cc13b367 New generator: RegularStarBox
Box made from two regular polygon pieces that go together to form a star.
2022-08-03 20:44:52 +02:00
suks.ae 9cadd12635 changed font color to ETCHING,
changed font size to depend on tile size
2022-07-31 16:27:13 +02:00
Florian Festi 05fc5aab32 New Generator: CardHolder
Resolves: #279
2022-07-31 00:28:13 +02:00
Florian Festi fc64f03eed WallDrillBox: Move to WallMounted group
Force manually to fix inheritance mess
2022-07-30 20:11:21 +02:00
Florian Festi d1bb098540 WallEdges: French Cleats
Resolves: #366
2022-07-30 18:24:00 +02:00
Florian Festi be68061b17 DrillBox: Extend finger joints on sides to whole height 2022-07-28 22:33:33 +02:00
Florian Festi 8076566616 DrillBox: Add support for top_edge parameter
with limited selection of edge types (compared to UniversalBox)

Resolves: #416
2022-07-28 22:27:48 +02:00
Florian Festi db1ca9e505 MountingEdge: Fix typo and default
for side to "back"
2022-07-28 22:26:55 +02:00
Florian Festi fef38c0b27 Remove HexHoles generator
as it is superseeded by the HolePattern generator which does more and
does better.
2022-07-24 10:57:56 +02:00
Florian Festi a83497758c New generator: HolePattern
using the new fillHoles function.

Resolves: #31
Related: #400
2022-07-24 10:55:11 +02:00
suks.ae e4c8566ce6 New generator: FillTest
for debugging only - just to have consistent test cases for runtime measurements
2022-07-23 09:56:25 +02:00
suks.ae 5169343be7 Add fillHoles() function
to fill a polygon with a hole pattern
2022-07-23 09:53:11 +02:00
suks.ae 3793a2bb09 Add regularPolygonHole()
to be used by fillHoles
2022-07-23 09:44:20 +02:00
Florian Festi 4a5aee7ad7 BirdHouse: Fix the gable walls
Looks like edgeCorner() still doesn't work properly with angles < 90°.
Avoid issue by switching to f edges that don't need width adjustments.

Also make the roof wider

Related: #414
2022-07-19 09:27:17 +02:00
Florian Festi 20ab2a1bed flangedWall: Do inger holes for h edge
if there is a flange at that side
2022-07-19 09:25:17 +02:00
Florian Festi 0938d12aa0 BirdHouse: Fix collision between roof and sides
and hole sizes in the fronts
2022-07-19 00:22:03 +02:00
Florian Festi 777e79afc1 New generator: BirdHouse
Still untested
2022-07-18 22:30:53 +02:00
Florian Festi 574f72e6e4 DividerTray: Fix height if "outside" and "bottom" is selected
Thanks to https://github.com/nialabert for reporting!

Resolves: #413
2022-07-12 22:13:19 +02:00
HaSHsss bf84ee1e73 Create slidingdrawer.py 2022-07-09 21:32:30 +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 fd30b8b0b7 Only merge paths with the same color and width
Related: #353
2022-06-28 08:35:00 +02:00
Florian Festi 73a46460ee Platonic: Add image of Icosahedron
Thanks to https://github.com/YodaMaster18 for the image!

Resolves: #409
2022-06-26 16:46:41 +02:00
Florian Festi 277e0f2c38 Rename WallMountedBox to _WallMountedBox
as it is an abstract class and should not appear in the list of generators.

Thanks to https://github.com/HaSHsss for reporting!

Resolves: #408
2022-06-22 22:50:57 +02:00
Florian Festi ad056de77f OttoSoles: Make soles a little bit larger by default 2022-06-22 22:42:31 +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 52ec9af104 WallDrillBox: Fix inheritance mess 2022-06-10 23:32:32 +02:00
Florian Festi 17e527484f DinRailBox: Move to WallMounted group
and improve placement and labels
2022-06-10 23:10:04 +02:00
Florian Festi 0a32f8ed07 WallEdges: Improve char placement 2022-06-10 23:01:54 +02:00
Florian Festi 7d7e0a5c9f Move all Slatwall generators to new WallEdges infrastructure
Add "plain" and "plain reenforced" wall styles with straight back
2022-06-10 23:01:54 +02:00
Florian Festi 362dd54e09 Move Slatwall classes to walledges 2022-06-10 23:01:54 +02:00
Florian Festi bfa327d83a Don't try to add closed loops to other paths
This is too slow for hole patterns and the holes can't be added anywhere
anyway.
2022-06-07 08:51:25 +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 2f59c6191b fixed debug rectangle to be painted with ANNOTATIONS color 2022-06-05 22:37:00 +02:00
suks.ae ce032e323f reworked color handling to improve mapping with Lightburn layers 2022-06-05 12:18:51 +02:00
Florian Festi b864cfcd56 Fix MagazineFile for e as top_edge 2022-05-27 22:58:17 +02:00
suks.ae af8a30287e Add burn value to reference text 2022-05-27 15:16:50 +02:00
suks.ae ec0d24efd2 Fix svg text alignment for "middle"
See https://stackoverflow.com/questions/19212498/firefox-support-for-alignment-baseline-property/21373135#21373135
2022-05-27 15:05:37 +02:00
Florian Festi 4a339a31db White space in comments 2022-05-27 14:53:40 +02:00
Florian Festi ee9fb4d7fe TrafficLight: Add label 2022-05-27 14:53:40 +02:00
suks.ae 7f67bae793 MagazineFile: Add MountingEdge 2022-05-27 14:53:40 +02:00
suks.ae 20f45224fb Add MountingEdge
and add it to top_edge.
2022-05-27 14:53:40 +02:00
Florian Festi e6ef17c070 Quote -- everywhere in the SVG/XML comment
by adding spaces inbetween. Double replace to deal with multiple dashes
in as row. Otherwise a space would be added only every second gap due to
overlapping replacements.
2022-05-15 16:06:24 +02:00
SuksAE 363b474b46
Add parameter "hole_dD" to .buildArgParser() 2022-05-15 10:23:14 +02:00
SuksAE 1bb4b8c0c3
Added pear shaped mounting hole drawing function (#392)
and add them to BinTray and TrafficLight
Add labels to the parts of these generators
Add doc strings to all hole types
2022-05-15 07:55:53 +02:00
SuksAE ece304bf1f
Add labels to some generators 2022-05-14 10:35:58 +02:00
Florian Festi c998509a7e RectangularWall: Add new stackable edges
bottom without finger holes and top with
2022-05-08 12:21:28 +02:00
Florian Festi aafc99b4a1 StorageShelf, TypeTray: Add stackable edge
with finger holes as top_edge
2022-05-08 12:20:29 +02:00
Florian Festi 50072a18b7 Add stackable edge with finger holes to top_edge
standard parameter and support it in drawLid()
2022-05-08 12:18:15 +02:00
Florian Festi e61cbe10b8 StorageRack: Add support for stackable top edges 2022-05-04 22:20:31 +02:00
Florian Festi a7afc8b1b6 Add stackable top edge with finger holes 2022-05-04 22:19:35 +02:00
Florian Festi b4d8641fc0 TwoPiece: Add some help and another picture
Thanks to https://github.com/Day0Dreamer for the image.

Related: #140
2022-04-30 17:47:29 +02:00
Florian Festi ccb2627e8f DrillStand: Add pictures
including assembling instructions.

Thanks to https://github.com/IgnorantOneTwo for providing the images!

Related: #140
2022-04-30 17:01:17 +02:00
suks.ae 7485e47e42 added group support to lbrn2 output 2022-04-19 21:57:58 +02:00
suks.ae 3d7986f130 updated list of used edge characters in documentation
added reserved chars for generator use
changed generator template to reserved char
2022-04-19 21:57:58 +02:00
Florian Festi 17009eed85 WallCaliperHolder: Fix back plate 2022-04-12 21:57:59 +02:00
Florian Festi 403361ff7c SpicesRack: Remove debugging code 2022-04-12 21:57:59 +02:00
Florian Festi 76384165cd Use Python 3 style super()
which is simpler and less fragile.
2022-04-09 20:45:31 +02:00
Florian Festi 94935d96bd BottleTag: Better parameter names 2022-03-30 23:37:53 +02:00
Shaun 6b6a5fd860 Initial commit of Bottle Tag generator 2022-03-30 23:30:47 +02:00
Florian Festi 84797abc35 DividerTray: Improve Settings descriptions 2022-03-30 23:27:29 +02:00
Guillaume Collic b9dbe1d2e8 chore: small description error 2022-03-30 23:18:46 +02:00
Guillaume Collic 17eb073c81 feat: DividerTray use Settings 2022-03-30 23:18:46 +02:00
suks.ae e8e75765b9 fixed error generating an empty path list 2022-03-30 08:08:52 +02:00
suks.ae cf99c93400 lbrn2 output: Suppress output of empty text fields 2022-03-28 21:43:48 +02:00
Florian Festi 70c49afb57 Don't render empty part labels 2022-03-28 21:42:06 +02:00
Guillaume Collic 3d2a4819ac feat: DividerTray make the play optional 2022-03-27 22:43:49 +02:00
Guillaume Collic 95e5c26b4d refactor: DividerTray add notches in wall by default 2022-03-27 22:21:38 +02:00
Guillaume Collic 6cffe5e6a8 refactor: DividerTray obsolete lines 2022-03-27 22:21:38 +02:00
Florian Festi d062a1e9aa Use elif 2022-03-27 22:09:39 +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
suks.ae e8b88e53f1 add Lightburn .lbrn2 file format support 2022-03-27 22:02:44 +02:00
Florian Festi 1362364c33 HingeBox: Remove debugging code 2022-03-27 11:30:31 +02:00
Florian Festi 67bd25016b DividerTray: Add a bit of play to the dividers
Especially the divider over the whole width can use some play for the
slots to avoid them clamping onto the walls.

Related: #374
2022-03-21 17:53:30 +01:00
Florian Festi 3bf4be5e1d DividerTray: Add divider across full width
Resolves: #374
2022-03-21 17:46:43 +01:00
Florian Festi b68aa5bb0f DividerTray: Add description
Related: #374
2022-03-21 17:23:29 +01:00
Florian Festi ec6f784442 HingeSettings: Check axle for valid values 2022-03-21 12:10:12 +01:00
Florian Festi a7063011b5 Add inner_corner default setting
to allow removing the loops in inner corners

Related: #294
2022-03-20 19:04:27 +01:00
Florian Festi b12fded50d Remove backslash from description
as it trips up gettext.

Also update language files.

Resolves: #371
2022-03-12 18:24:11 +01:00
Florian Festi ea4036b3d4 ArgparseEdgeType: Re-enable Inkscape format
Got dropped in ecf14540f5 while moving to
Inkscape 1.0.

Related: #369
2022-02-18 10:46:11 +01:00
Florian Festi 529574fb5d Dispenser: Fix sideedges parameter
Looks like both the ArgparseEdgeType machinery and the inx conversion
should be more robust...

Thanks to https://github.com/lucky62 for reporting!

Resolves: #369
2022-02-16 17:16:36 +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 b8c8a9ec8d Fix pstoedit for non Unix OSs
Resolves: #362
2022-02-07 18:06:20 +01:00
Florian Festi 048bb11b09 BinTray: Fix settings for finger joints on 45° angles
Previously a new settings object was created and settings in the UI were
ignored. Now the settings are copied over.

Resolves: #364
Thanks to https://github.com/leyton01 for reporting!
2022-02-06 17:35:15 +01:00
Florian Festi 685f364290 New generator: Dispenser
Related: #278
2022-01-28 22:56:05 +01:00
Florian Festi 633be86ea0 New generator: JointPanel
Create pieces larger than your laser cutter by joining them with Dove Tails
2022-01-28 17:05:58 +01:00
Florian Festi 750b33a8ce SlatwallDrillbox: longer side skirts 2022-01-27 22:53:23 +01:00
Florian Festi e072226aad DrillStand: pass edges param to sidewall
Use sidewall() in SlatwallDrillbox, too
2022-01-27 22:53:23 +01:00
Florian Festi 6e2e29e6ff SlatwallDrillBox: Use finger holes to fix bottom in place
Otherwise all the weight of the drills is just held up by glue
2022-01-27 22:53:23 +01:00
Florian Festi b190a11cb4 DrillStand: Use finger holes to fix bottom in place
Otherwise all the weight of the drills is just held up by glue
2022-01-23 16:24:24 +01:00
Florian Festi 28d7dc16b9 SlatwallDrillbox: Base on DrillStand to reduce copied code 2022-01-23 16:23:49 +01:00