Commit Graph

1072 Commits

Author SHA1 Message Date
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
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 c4038696f1 BayonetBox: Minor punktuation fix 2022-01-11 09:09:32 +01:00
Florian Festi 9f4657cc64 RegularBox: Improve defaults and docs
Reduce surroundingspaces as it is likely that fingers won't fit for
small boxes or one with many sides.

Also add proper description instead of inheriting the one from bayonet
box directly.
2022-01-11 09:07:09 +01:00
Florian Festi d29c8f7138 Consistent units for standard parameters 2022-01-09 16:20:58 +01:00
Florian Festi e28976d5e3 Add doc link for tabs param 2022-01-07 22:22:03 +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 72a111a100 Shorten parameter descriptions to fit in one line
The additional information is now available via help link to the user
documentation.
2022-01-07 22:22:03 +01:00
Florian Festi 83fc970d7c New generator: ABox
A simple box that is easier to use for beginners than the UniversalBox

Related: #356
2022-01-07 22:22:03 +01:00
Florian Festi 0b3a0506d7 CardBox: Further improve description 2022-01-05 21:34:15 +01:00
Florian Festi 4544bc3009 RoundedBox: Add Dove Tail Settings 2022-01-05 18:29:29 +01:00
Florian Festi 5810314331 DoveTailEdge: Fix edge without dove tails 2022-01-05 18:29:09 +01:00
Florian Festi 260633d9cd PaperBox: Format description properly 2022-01-03 15:23:26 +01:00
Florian Festi 9b0c842522 Fix docstring formatting 2022-01-03 13:42:40 +01:00
Florian Festi acf4e81159 Add links to documentation to web UI
for some of the parameters
2022-01-03 13:30:43 +01:00
Florian Festi 4ba1768d29 Treat all parameter descriptions as markdown
in the web UI
2022-01-03 13:29:12 +01:00
Florian Festi d5654137a4 RoundedBox: Allow arbirtary horizontal layers
by changing h param to sh.

Also surroundingWallPiece to get the dimmensions of each section in the
surrounding wall.

Resolves: #339

Thanks to Florin Furdi for the idea!
2022-01-02 13:48:32 +01:00
Florian Festi ff6a2b955a CardBox: Put lid pieces together
to make it easier to understand that goes together
2022-01-02 12:11:56 +01:00
Guillaume Collic 0c023f2e5f
Paperbox: Add second design better suited for smaller lids
Based on discussion in #351

Suggested by and co-developed by https://github.com/fuddl
2022-01-02 12:11:14 +01:00
Florian Festi fdc8618900 Cardbox: point to the right picture in description 2022-01-02 11:08:49 +01:00
Florian Festi 9a98a50506 DrillBox: Move to Tray group 2021-12-15 14:18:17 +01:00
Florian Festi bfe39861fa DrillBox: Make layers adjustable
Now one can have any number of layers at any height. This may make the
generator useful for other application with custom hole patters on
different height. It also allows deleteing holes for short drills on the
lower layers.

Thanks to https://github.com/KittyDreadful for suggesting this!

Related: #339
2021-12-15 14:18:17 +01:00
Florian Festi 9b0ebad0e7 DrillBox: Make bottom edge configurable 2021-12-15 14:18:17 +01:00
Florian Festi 68e0bae6a9 DrillBox: Set finger joint details as defaults
instead of hard coding them
2021-12-15 14:18:17 +01:00
iooner 866714ef7e Fix Typo 2021-12-14 22:20:56 +01:00
Florian Festi b11f9b0f1a BinTray: Fix finger holes in side walls
Pattern was mirrored before.

Resolves: #348

Thanks to https://github.com/Al0rin for reporting!
2021-12-04 18:52:31 +01:00
Florian Festi ee2baab396 flangedWall: Allow other edge types
for sides without flange. Support "e" edges for sides with flanges
(along with "E" and "F")

Resolves: #347
2021-12-04 16:02:25 +01:00
Florian Festi ad1be4c361 Fix placement of rectangularTriangle(s)
That was broken by fcefddca1e. Turns out
the the handling of self.spacing (distance between parts was not handled
properly.

Resolves: #346

Thanks to Guillaume Collic for reporting!
2021-12-01 23:37:02 +01:00
Florian Festi 8b791b32b6 TypeTray: Use h edge for sides if back_height is set
Better support pulling forces if tray is screwed to a wall.
2021-11-17 17:58:13 +01:00
Florian Festi a0f8fdd975 TypeTray: Fix front when back_height is set
Side edges did not fit into side walls.

Resolves: #336
Thanks to https://github.com/RestlessRabbits for reporting!
2021-11-17 17:58:13 +01:00
Florian Festi 4319b704dd DrillBox: Fix holes diameter
by removing radius vs diameter mixup

Resolves: #338
Thanks to https://github.com/KittyDreadful for reporting!
2021-11-08 14:06:24 +01:00
Mateusz Konieczny 62b30e3d88 fix some typos with codespell 2021-11-03 15:34:38 +01:00
Florian Festi 40e56bf26f TypeTray: Add back_height parameter
to allow mounting space similar to SlatwallTypeTray
2021-10-30 22:01:36 +02:00
Florian Festi c3faa8f5a8 Folder: Add settings tab for flex
Remove unused Fingerjoint Settings
2021-10-24 23:19:17 +02:00
Florian Festi fce7e08a1a Adjust line width in transform()
Pass scale param down the transform call tree.
This fixes the inner corners for the PS output which were seen as "too
big" when comparing with the wrong line width.

Resolves: #332
2021-10-09 13:59:24 +02:00
Florian Festi cbbe8c11cc Shutterbox: More pictures
Thanks to Taylor Williams (https://github.com/tzwilliams)!
2021-09-26 17:33:29 +02:00
Florian Festi d6c8d965c3 RoundedBox: More pictures
Thanks to Taylor Williams (https://github.com/tzwilliams)!
2021-09-26 17:04:18 +02:00
Florian Festi a2678de3e2 SilverwareBox: Fix edge of surrounding wall
and remove bogus arc holes at the corners
2021-09-21 23:02:47 +02:00
Florian Festi f6fa4967ab surroundingWall: Fix size calculation
Resolves: #297
2021-09-21 23:01:53 +02:00
Florian Festi fcefddca1e rectangularTriangle: Improve spacing 2021-09-21 22:52:10 +02:00
0xfab1 aad270e67e The Royal Game of Ur Images 2021-09-19 20:37:29 +02:00
Florian Festi eb84f0e0ac rectangularTriangle: Fix placement
Resolves: #308
2021-09-19 16:52:29 +02:00
Florian Festi 8030faadd6 rectangularTriangle: Fix outset edges in hypothenuse 2021-09-19 16:50:39 +02:00
Florian Festi cd604f0d53 CardBox: Fix height
Previously box was one thickness to low as the height of the lid was not
accounted for.

Thanks to hd (https://hackaday.io/hacker/1210037-hd) for pointing this
out!
2021-09-03 13:59:11 +02:00
Florian Festi 44cf852fac Openbox: Add edgetype parameter 2021-07-18 15:37:04 +02:00
Florian Festi 064cd71cd5 OpenBox: Remove unused bedbolt parameters 2021-07-18 15:37:04 +02:00
Florian Festi 2154245cde AngledBox: Render surrounding walls in order 2021-06-27 16:24:01 +02:00
jens persson a35674a736 Add labels to Cardbox
Added labels to CardBox
Also rearange some parts to make labels easier to read
2021-06-27 16:07:58 +02:00
jens persson c0eca5ea5f Add labels to boxes
Added labels to AngledBox, BasedBox, ClosedBox, Console2, DinRailBox,
DisplayCase and ElectronicsBox
2021-06-27 16:07:58 +02:00
Florian Festi 6238903237 Gears: Use proper metric module
with diameter / #teeth instead of circumference / #teeth.

Thanks to nialabert (https://github.com/nialabert) for pointing this
out!

Resolves: #260
2021-06-26 10:58:25 +02:00
Florian Festi 9cb038ef0a Quote cli in meta data to not contain line breaks
Resolves: #327
2021-06-25 22:13:13 +02:00
Florian Festi 3ff0df504b DoubleFlexDoorBox: Add picture
and move out of Unstable.

Thanks to Targor (https://github.com/targor) for the idea and image

Resolves: #322
2021-06-13 09:23:37 +02: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
jens persson 4df9c4aae9 Add labels to Ottobody
Using the label interface, render identifying labels on the Ottobody
2021-06-11 22:29:59 +02:00
jens persson 2d262dacdd Allow labeling of parts
Add a parameter label to rectangularWall(), flangedWall(),
rectangularTriangle(), trapezoidWall(),  trapezoidSideWall() that is rendered
in red to identify parts, it is not ment to be cut or etched.
Added --labels flag to enable/disable rendering of labels.

Resolves: #316
2021-06-11 22:29:23 +02:00
Florian Festi ef94daa006 Add mouseover images for most groups
Resolves: #253
2021-06-05 18:25:53 +02:00
jens persson 9a46882c8f Add color selection to all holes
All methods that uses the holeCol decorator now take a parameter color.
Added semantic symbols for colors.
2021-06-03 21:40:11 +02:00
jens persson c86ae75712 Parametrizise the drillbox 2021-06-03 21:40:11 +02:00
Florian Festi 22a50a6181 PhoneHolder: Fix edge of second side being reversed
The code switched sides for each edges draen reversed. Change that to
only reverse local variables and leave the edge objects unchanged.

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

Resolves: #324
2021-05-31 17:04:17 +02:00
Florian Festi b344229c95 Add metadata to PostScript output
as title, creator and further comments.
Unfortunately pstoedit does drop these when converting to other
formats. A pity.
2021-05-29 10:55:36 +02:00
Florian Festi be7115007d SlatwallPinRow: Make it actually work
Remove finger joints from pinplate as there are not matching holes.
Move finger holes on back plate to right place.
2021-05-24 22:16:59 +02:00
Florian Festi bdcad5ee27 New generator: SlattwallStairs
Renders a stair like structure that can house tools like screw drivers
if the proper holes or slots are added.
2021-05-23 13:00:52 +02:00
Florian Festi 538d5af99b New generator: DoubleFlexDoorBox
Still untested and missing a sample image
2021-05-22 14:10:16 +02:00
Norbert Szulc b0861bf937
Add platonic solid generator
Resolves: #254
2021-05-16 15:07:53 +02:00
jens persson 3a979bcfc6 Extend PaintStorage to make stackable drawers
Add an extra argument --drawer that changes it to a simple drawer

Co-authored-by: Florian Festi<florian@festi.info>
Resolves: #315
2021-05-16 14:58:18 +02:00
Florian Festi eec53625f7 New generator: SlatwalPinRow
Angled pins to hang stuff from.

Still untested.
2021-05-15 15:45:44 +02:00
Florian Festi 072ff9b032 New generator: DrillStand
A stand-alone (no pun intended) version of the SlatwallDrillBox
2021-05-15 15:45:25 +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
Guillaume Collic d478edd5d7 Add coffee capsule holder generator 2021-04-25 11:25:30 +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 41165731c9 DisplayShelf: Fix calculations for negative angle values 2021-04-02 16:11:11 +02:00
Guillaume Collic 97d85ff10e Add PhoneHolder 2021-03-22 22:45:55 +01:00
Mateusz Konieczny 3a3304de67 mention similar ones in burn test 2021-03-22 19:45:06 +01:00
Mateusz Konieczny 69bf15a682 serraded -> serrated typo 2021-03-22 19:41:33 +01:00
Mateusz Konieczny 9bdd5e4dda mentioned ClosedBox and BasedBox in each other descriptions 2021-03-20 21:26:54 +01:00
Mateusz Konieczny 23ee7b3eb2 copy closedbox description to basedbox description as applicable 2021-03-20 21:26:54 +01:00
Mateusz Konieczny 000ba92106 fix typo in description 2021-03-20 21:26:54 +01:00
Mateusz Konieczny e8fc07d33d increase play in two piece to 0.15
note: I am very inexperienced, this is based on a single test (with 0.05 and 0.15 box) and advice from local expert
both apply to plywood
2021-03-17 15:24:46 +01:00
Florian Festi 7355d0d612 TrayLayout: Give more descriptive parse errors
Also allow both X and now also x for removed floor
2021-03-15 13:50:35 +01:00
Florian Festi 7397e49b2b TrayLayout: Add description text
Resolves: #295
2021-03-15 13:50:35 +01:00
Mateusz Konieczny 21ca3d0b98 try to add explanation how burn test works
fixes #288
2021-03-02 14:12:42 +01:00
Guillaume Collic 3efd941ff1 Keyboard: 19.05 mm spacing is more standard than 19 2021-02-27 21:02:07 +01:00
Guillaume Collic 72c7fca53e Keyboard: clean and column callback spacing default value 2021-02-27 21:02:07 +01:00
Guillaume Collic 61b85a6aed Keyboard: add shared settings with new options 2021-02-27 21:02:07 +01:00
Guillaume Collic 0c89ad2b17 Keyboard: fix alignment in atreus21 and keypad 2021-02-27 21:02:07 +01:00
Guillaume Collic 0d4d4f308b Keyboard: move common code to mixin (atreus21, keypad) 2021-02-27 21:02:07 +01:00
Guillaume Collic ec8abee265 Atreus21: clean dead code and magic numbers 2021-02-27 21:02:07 +01:00
Mateusz Konieczny 44a9041427 attempt to make burn test description more newbieproof
fixes #284
2021-02-27 20:56:03 +01:00
Mateusz Konieczny 33917a6113 fix typo 2021-02-24 21:03:52 +01:00
Guillaume Collic d694bd3241 Fix DividerTray length with 'outside=false' 2021-02-14 10:20:16 +01:00
Guillaume Collic 9642b9aacc Add PaperBox 2021-01-28 13:59:47 +01:00
jomjol eea27ee74d Implementation of FlexSettings
Addding of FlexSettings to RoundedBox to adjust the flexibility setting for the corners
2020-12-29 22:29:27 +01:00
Florian Festi e6dccc4135 StorageRack: Add pictures
Thanks to https://github.com/impellerturn for providing the images!
2020-12-29 15:33:27 +01:00
Florian Festi 34260e1b01 Castle: Actually add description 2020-12-29 15:18:37 +01:00
Florian Festi 8613c64b32 Also scale line width
This in practise only affects PostScript and derived formats - basically
everything except SVG
2020-11-19 23:23:39 +01:00
Guillaume Collic b41a3114ca AgricolaInsert: better thickness range support 2020-11-16 22:46:43 +01:00
Florian Festi 632a96676a Fix typo in RoundedTriangleFingerHolesEdge 2020-11-11 00:35:22 +01:00
Florian Festi 7afe0329a2 MakitaPowerSupply: Dynamically calculate vent holes 2020-11-10 18:00:40 +01:00
Florian Festi 043f208213 AllEdges: Fix for new backend 2020-11-09 19:15:55 +01:00
Florian Festi 09b4de82de MakitaPowerSuppy: Replace hyphens parameter names 2020-11-09 19:15:55 +01:00
Florian Festi 47d3600016 Add RoundedTriangleFingerHolesEdge (T) 2020-11-09 19:15:55 +01:00
Florian Festi e5f88eda4c Fix typo 2020-11-09 19:15:48 +01:00
Florian Festi cdc89e3cde SilverwareBox: Add missing stroke() command 2020-10-20 17:00:15 +02:00
Florian Festi 2d64dcccdf Fix Context.curve_to
Didn't move to the end point properly in the new backend.
2020-10-20 17:00:15 +02:00
Florian Festi 90c783568f OttoBody: Fix issue with HexHoles that broke the generator
Thanks to https://github.com/ottobot42 for reporting.

Resolves: #250
2020-10-19 21:00:38 +02:00
Florian Festi adc3ec5210 Fix polygonWalls()
Not calling .stroke() now creates a error with the new backend.

Thanks to Michel27290 (https://hackaday.io/hacker/1123712) for reporting!
2020-10-16 11:38:30 +02:00
Florian Festi dabab1880f SpicesRack: Fix feet to support first level 2020-10-13 22:49:19 +02:00
Florian Festi 1dd567657e Fix use of roundedPlate in Display and LaserClamp
Thanks to Guillaume Collic (https://github.com/gcollic) for reporting!

Resolves: #248
2020-10-13 20:00:09 +02:00
Florian Festi 6dff8db710 Add alignment pins to BayonetBox
Also add a lower ring to the bayonet lid of the RegularBox limiting rotation
2020-10-13 16:07:31 +02:00
Florian Festi f74e86c38f BasedBox: Add description and point people to edge_width 2020-10-11 14:01:03 +02:00
Marcin Zukowski dfc2f075d9 Adding Grooved Edge (z, Z), example use in UnevenHeightBox 2020-09-29 20:40:18 +02:00
Guillaume Collic 2a55183e50 AgricolaInsert: optimize player box generation layout 2020-09-20 12:37:29 +02:00
Guillaume Collic 9e83c2ad9b Add AgricolaInsert box 2020-09-20 12:37:29 +02:00
Guillaume Collic 7495de72f7 DividerTray: refactor, and makes it easier to reuse 2020-09-20 12:37:29 +02:00
Guillaume Collic eba63d9acb Add option to do rectangular holes without centering them 2020-09-20 12:37:29 +02:00
Florian Festi 7fd4306664 Add h edge to top_edge parameter
Resolves: #244
2020-09-19 22:39:30 +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 3513cf88a8 Fix code closing paths to look at each section separately 2020-09-15 17:44:58 +02:00
Marcin Zukowski f058ce68fb Add --lid_height in UnevenHeightBox 2020-08-28 10:35:10 +02:00
Florian Festi 812b3ad59a regularPolygonWall: Fix size calculation 2020-08-16 15:02:56 +02:00
Ba-So d34d6ed987 fixed proper use of settings in paintbox.py 2020-08-15 09:47:40 +02:00
Ba-So f6e2773810 fixed bug where the option hexpattern=True would cause an error. 2020-08-14 12:30:21 +02:00
Guillaume Collic 676772ee64 Clarify rectangularHole x,y parameters (center) 2020-08-13 00:38:54 +02:00
Florian Festi a0c04d10ca Add description to ClickSettings 2020-08-04 23:42:12 +02:00
Florian Festi 0980270dcf RectangularWall: Fix list of available edge types
M -> N
2020-08-04 23:41:08 +02:00
Florian Festi d3fa5ec0d4 UniversalBox: Add vertical_edges parameter
to allow finger hole joints for more stability

Fixes: whining by wu
2020-08-04 21:52:25 +02:00
Florian Festi efe87c3e2e TwoPiece: Add hi parameter to allow for lower inner wall 2020-08-04 19:33:11 +02:00
Florian Festi bdc6a4c110 Add screwholes param to Boxes.NEMA() 2020-08-04 19:33:11 +02:00
Florian Festi 9bbca5419f New generator: NemaPattern 2020-08-04 19:33:11 +02:00
Florian Festi 4d2db03dc4 New generator: FanHole 2020-08-04 19:33:11 +02:00
Florian Festi 59564a58a7 Only add "unless outside selected" if "outside" param is present
Void confusing users if outside param is missing but still be mentioned in
the help text.
2020-08-04 19:33:11 +02:00
Florian Festi b8432e93af New generator HexHoles 2020-08-04 19:33:11 +02:00
Florian Festi e643e07b4d Add HexHolesSettings class
to get rid of the settings tuple and to support changing them in the UI

Related: #33
2020-08-04 19:33:11 +02:00
Florian Festi 415b133822 Add new Hole Patterns group 2020-08-04 19:33:10 +02:00
Florian Festi 3dc5aa997c Console: Fix for front_height == 0
Thanks to dougw (https://hackaday.io/hacker/885177-dougw) for pointing
this out!
2020-07-23 16:19:56 +02:00
Florian Festi 262d7804a4 Console and Console2: Add outside parameter
Also rename hi param to front_height in Console
2020-07-23 16:13:59 +02:00
Florian Festi 402c04568e DividerTray: Add Finger Joint Settings
Thanks to John Hildebrand https://hackaday.io/hacker/528106-john-hildebrand
for jointing out that they were missing!
2020-07-09 00:22:13 +02:00
Florian Festi 02a7299618 Fix text alignment attributes
Was broken for "left"
Resolves: #228
2020-07-04 23:56:37 +02:00
Florian Festi 2575cc39df Add support for a bayonet mount lid to the RegularBox
Adjust BayonetBox to make the pieces usable from outside
2020-06-23 21:47:08 +02:00
Florian Festi 604ea923af New generator: BasedBox 2020-06-22 19:57:18 +02:00
Florian Festi ea0c9480e1 TriangleLamp: Fix hole position in front 2020-06-16 22:56:01 +02:00
Florian Festi cd884c63bf AngledBox: Add bottom_edge parameter
Also fix bug with non matching finger joints between side walls and
miss alignment of the bottom and top pieces
2020-06-03 21:56:55 +02:00
Florian Festi ecaba08aa6 New generator: DinRailBox 2020-05-29 22:59:15 +02:00
Florian Festi c5a35bd3ec CardBox: Fix typo 2020-05-27 17:27:23 +02:00
Florian Festi baf996764c CardBox: Add building instructions
including a new picture of lid details by https://github.com/bwente
2020-05-26 18:07:17 +02:00
Stefan Schwarz c065e154be Generator for a split Atreus keyboard 2020-05-23 23:28:35 +02:00
Florian Festi 6cd6e1826e Close paths in SVG back end 2020-05-23 15:03:16 +02:00
Florian Festi 07e53868f6 Remove duplicated "f" option in top_edge parameter
Thanks to Zhong for pointing this out!
2020-05-22 13:32:43 +02:00
Florian Festi c978266906 DividerTray: Fix bottom edge for middle walls 2020-05-22 10:25:55 +02:00
Florian Festi 2fc59b48df Remove reference to cairo 2020-05-18 22:30:28 +02:00
Florian Festi 46b1e8684f Add estimate for extents of text
Fix adjustment of SVG coordinates
2020-05-18 22:30:28 +02:00
Florian Festi 95dc7f5731 Fix padding for SVG 2020-05-18 22:30:28 +02:00
Florian Festi 39e2b0cfc3 Split all arcs > 100° into smaller pieces
This is necessary to make the approximation with Bezier curves work
2020-05-18 22:30:28 +02:00
Florian Festi 3c94b4bf76 Don't try to draw arcs with an zero angle
Thanks to Bruno Ferrarese <https://github.com/bferrarese> for finding and
reporting this issue!
2020-05-18 22:30:28 +02:00
Florian Festi 6440bcb639 Get text working for both SVG and PS
Move coordiate translation to to finish() method
Use Latin1 encoding for text PS in output

Add Boxes.set_font() to support basic font styles:
 serif, sans-serif and monospaced
 in normal, bold, italic and both bold and italic
2020-05-18 22:30:28 +02:00
Florian Festi 492e7fb4dd SVGSurface: Use horizontal and vertial lines
instead for just regular lines. This saves one number per point involved.
2020-05-18 22:30:28 +02:00
Florian Festi 9e08691e15 Remove SVG and PS post processing code
Remove Extend class from svgutil
2020-05-18 22:30:28 +02:00
Florian Festi fddf78fcc3 Add metadata to the SVG files right away 2020-05-18 22:30:28 +02:00
Florian Festi 0594ee703d Replace svgwrite with xml.ElementTree 2020-05-18 22:30:28 +02:00
Thomas Kalka fd48e57f33 Implement new backend without cairo
by providing SVGSurface, PSSurface and Context classes

Disable post processing as we want to create proper files right away
2020-05-18 22:30:28 +02:00
Thomas Kalka da0e390789 do not start holes with the corner 2020-05-18 22:30:28 +02:00
Florian Festi 89805b4804 New generator: SideDoorHousing 2020-05-12 21:54:59 +02:00
Florian Festi 6091cf955f Comsole2: Move to Box group in the UI 2020-05-10 16:13:54 +02:00
Florian Festi 27264f8c08 New fingerHoleRectangle() function 2020-05-10 16:12:27 +02:00
Florian Festi 928be1620b UniversalBox: Change default for outset to True
for edge with hinge eye (i) top_edge
2020-05-05 22:03:20 +02:00
Florian Festi 1f2d35082d Console2: Properly name front_height parameter 2020-05-05 18:28:52 +02:00
Florian Festi 0acc9c2a38 Console2: Move back wall latch down
to reduce chance of it conflicting with the front panel
2020-05-05 18:13:03 +02:00
Florian Festi 05a7e02486 Console2: Images, descriptions and parameters for hatches
Add three new parameters: removable_backwall, removable_panel and glued_panel
that control which of the service hatches are present and how to attach
the front panel
2020-05-05 09:44:07 +02:00
Florian Festi 93273f2fc7 Console2: Improve and fix latches 2020-05-02 18:42:36 +02:00
Florian Festi 949c8d8324 Fix polygonWalls() for uneven number of walls and symetrical==True
For an uneven number of walls one needs to have two different edges
to be able to close the loop.
2020-05-02 00:43:33 +02:00
Florian Festi e2d716aeb8 Console2: Fix bottom edge for front and back 2020-05-01 23:49:05 +02:00
Florian Festi d45ccba307 New generator: Console2 2020-05-01 23:36:44 +02:00
Florian Festi 966a6c77cf Add "rotated" to possible move terms 2020-05-01 23:35:55 +02:00
Florian Festi 54d4b6bebd Console: Fix x, y confusion 2020-04-29 12:25:46 +02:00
Florian Festi 279b60abc8 New generator: Console 2020-04-28 22:25:47 +02:00
Florian Festi 9ea1d55a94 Add translate param 2020-04-20 16:30:33 +02:00
Stefan Schwarz 2f2256ec7d Keypad support for CPG151101S11 hotplug sockets 2020-04-13 20:11:44 +02:00
Florian Festi c4ca1b4dfa Also translate Edge descriptions in ArgparseEdgeType 2020-04-13 18:45:17 +02:00
Florian Festi f961cd533d KeyPad: Improve parameter descriptions 2020-04-13 13:53:38 +02:00
Florian Festi 195c68c28f
Rail holes dist (#213)
* added EurorackSkiff Generator

* fixed holes distribution
2020-03-05 23:09:03 +01:00
Stefan Schwarz 3a14e1796b Generator for keypads with mechanical switches 2020-03-04 20:24:47 +01:00
Florian Festi 0178a853c3 Add Inkscape style meta data to SVG output 2020-03-01 16:53:41 +01:00
Florian Festi 80edaf5ac4 New generator: BottleStack 2020-02-29 18:19:59 +01:00
Florian Festi 4c338e1c62 RoundedBox: Add edge_style parameter 2020-02-28 17:52:57 +01:00
Florian Festi 22450a6fe7 roundedPlate: Fix placement 2020-02-28 17:52:49 +01:00
Florian Festi 6476a51fc4 roundedPlate: Fix callback positioning 2020-02-28 17:52:49 +01:00
Florian Festi 223ac26122 roundedPlate: new extend_corners param 2020-02-28 17:52:18 +01:00
Florian Festi 26b33d62ff roundedPlate: Properly lookup edge 2020-02-28 17:46:44 +01: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
Erwin Jansen a0338a559f Add a bottom to the divider tray.
This add support for the generation of a bottom for the divider tray.
The bottom can be generated by passing the --bottom=True flag.

This makes it possible to generate ./static/samples/DividerTray.jpg
2020-02-26 21:00:26 +01:00
Florian Festi eeb1baf352 Gear: don't allow less than 2 teeth 2020-02-01 15:30:53 +01:00
Florian Festi 0394d418c1 dHole: Prevent division by zero 2020-02-01 15:30:18 +01:00
Florian Festi 7943fa2390 flex2D: Fix division by zero for too small patterns 2020-02-01 15:22:35 +01:00
Florian Festi ec9d911142 DividerTray: Use ValueError instead of assert to treat this as wrong user input 2020-02-01 15:17:18 +01:00
Florian Festi 069dd853aa BinTray: limit front parameter 2020-02-01 15:14:12 +01:00
Florian Festi 95f2fbeb82 corner(): Make more robust against division by zero 2020-02-01 15:03:49 +01:00
Florian Festi 2121228036 TrayLayout: Error out if tray is just a single wall 2020-02-01 14:51:38 +01:00
Florian Festi f8401aac75 rectangularRectangle: Make angle calculation more robust 2020-02-01 14:43:45 +01:00
Florian Festi 2a7e1e62d1 PaintStorage: Prevent division by zero 2020-02-01 14:31:24 +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 9706816fe4 gears: prevent division by zero 2020-02-01 13:59:30 +01:00
Stefan Reichhard 37bff9d358 fixed d3 diameter (mounting screw holes) 2020-01-22 16:11:18 +01:00
Florian Festi 1f3110c6fa New generator: TriangleLamp 2020-01-21 21:34:02 +01:00
Florian Festi 10e2085eef Remove Python 2 compat foo 2019-12-21 17:47:54 +01:00
Florian Festi 4d53bd17cc partsMatrix: support width=0 for all parts in one row 2019-12-16 20:07:30 +01:00
Florian Festi e2b87af2a4 UniversalBox: Add outside parameter
Fixes: #144
2019-12-14 19:13:40 +01:00
Florian Festi aba9631b00 Make joints of box sides go to the very bottom
for NotesHolder, TypeTray and UniversalBox.
The same should be done to many other boxes as soon as they get the
bottom_edge parameter

Resolves: #111
2019-12-14 14:18:38 +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 c5474e7488 DiscRack: Limit lower_factor and rear_factor to smaller than one 2019-12-14 12:23:08 +01:00
Florian Festi 024b574763 TrayLayout: Add default for layout param 2019-12-14 12:14:24 +01:00
Florian Festi 093e10a3ac AngledBox: Use FingerJointSettings for vertical edges, too 2019-12-06 23:37:22 +01:00
Florian Festi bd1db150c7 New geneator: SpicesRack 2019-11-29 19:58:27 +01:00
Florian Festi 182d222f01 Prevent not having any sections at all for argparseSections 2019-11-24 19:10:35 +01:00
Florian Festi d2d97b01c9 grip(): Prevent division by zero 2019-11-24 16:42:47 +01:00
Marius Bergmann 9f8b84b3f1 add parameters for banana socket and flipswitch diameters 2019-11-20 11:57:13 +01:00
Marius Bergmann 2c367562a9 remove commented code 2019-11-20 11:57:13 +01:00
Marius Bergmann 90fdf897a9 formatting: whitespace cleanup 2019-11-20 11:57:13 +01:00
Florian Festi c67d1f874c StorageShelf: Add retainer_hole_edge param
to allow strengthening the retainer walls by using an h edge.
Also use a h edge on the bottom retainer wall if selected as bottom_edge.
2019-11-09 23:32:12 +01:00