Commit Graph

560 Commits

Author SHA1 Message Date
Florian Festi 1724f67bdf Delete never to be finished printer generator
This should have become a 3D printer using strings in a delta configuration.
2019-02-07 22:43:04 +01:00
Florian Festi ded5addbe9 Remove no longer needed calls to ctx.stroke()
Boxes.move() take care of that nowadays
2019-02-07 22:43:04 +01:00
Florian Festi 80ab24dceb Fix format of doc strings 2019-02-07 17:42:41 +01:00
Wayne Wylupski c5d434105b Add svg_Ponoko output format
This is just regular SVG with Ponoko-specific line properties
Yes, the lines are too thin to be seen in a regular web browser.

Resolves: #112
2019-02-03 16:30:28 +01:00
Wayne Wylupski abacdd486e Implement proper color handling
Avoid accessing Boxes.ctx (the cairo context) all over the code.
Have named colors
2019-02-03 16:28:02 +01:00
Wayne Wylupski c573914bcd Add Boxes.saved_context() context manager
Avoid directly accessing Boxes.ctx (the cairo context) all over the place.
Also have a more modern API for returning to a previous spot.
2019-02-03 16:25:31 +01:00
Wayne Wylupski acb457be2a Add GPL copy right header 2019-02-02 18:05:04 +01:00
Florian Festi 2e5a19a40f Python 2 compat fix 2019-01-12 18:42:44 +01:00
Florian Festi 6f4e94577b New generator: RectangularWall 2019-01-12 15:28:17 +01:00
Florian Festi dac6b3ac3d Fix Edge descriptions
Add descriptions for edges that don't have their own class

Make ChestHingeFront sub class of Edge as BaseEdge no longer draws anything
2019-01-12 15:28:17 +01:00
Florian Festi 1739d11af5 Doc string for GearSettings 2019-01-12 15:28:17 +01:00
Florian Festi d0356a12a3 Add parameters to addTopEdgeSettings() for changed defaults 2019-01-12 00:07:37 +01:00
Florian Festi ba3cacbf93 RoundedTriangleEdge: Add outset setting 2019-01-12 00:07:22 +01:00
Florian Festi 2747d9719a Add RoundedTriangleEdge to top_edges 2019-01-12 00:00:55 +01:00
Florian Festi 31fd0024ee Add RoundedTriangleEdge t
Based on the Caddy generator by bobm123 in the PR #14
(https://github.com/florianfesti/boxes/pull/14)

Edge will be added to the TypeTray generator to achieve similar results as Caddy

Co-authored-by: bobm123 <bobm123@gmail.com>
2019-01-11 23:56:28 +01:00
Florian Festi 64fb498e6e UniversalBox: Use a more robust way of placing the pieces
No longer rely on all side walls having the same height
2019-01-11 19:41:02 +01:00
Florian Festi 97e7e3b68f TypeTray: Swap vertical edge types to match the layout of the UniversalBox 2019-01-11 19:41:02 +01:00
Florian Festi 5c70515f01 TypeTray: Add lids matching top_edge 2019-01-10 22:27:36 +01:00
Florian Festi 371097aa89 PaintStorage: Make grip hole smaller and more rounded
Fixes #108
2019-01-10 22:09:45 +01:00
Florian Festi c0a782b745 TypeTray: Add support for all top_edges 2019-01-03 11:13:27 +01:00
Florian Festi c2615d4b38 TypeTray: rearrange parts 2018-12-27 17:19:10 +01:00
Florian Festi 73050d4969 Make .continueDirection() more private 2018-12-22 17:23:33 +01:00
Florian Festi 2df63b6ec8 ShutterBox: Add style with two rounded corners
Move generator to FlexBox category
2018-12-19 18:04:34 +01:00
Florian Festi 879b3149bb New generator: ShutterBox
A box with a rolling shutter made out of flex
2018-12-13 18:39:01 +01:00
Florian Festi 4a79c37e71 CardBox: Add gripping ledge to the lid 2018-12-11 19:33:52 +01:00
Florian Festi 4d2592fecf Add e edge to bottom_edge selection 2018-12-08 18:22:13 +01:00
Florian Festi fd956d1f08 rectangularHole(): clamp corner radius to available space 2018-12-08 12:42:36 +01:00
Florian Festi 8f03030c53 PaintStorage: Add carrying hole 2018-12-08 12:37:20 +01:00
Florian Festi 925c6ce6dc PaintStand: Fix previous change 2018-11-24 22:47:35 +01:00
Florian Festi 17e4eb8563 PaintStorage: Fix heights 2018-11-15 22:10:19 +01:00
Florian Festi ed6855d79c RoundedPlate: Call first callback only once
Remove left over call to .cc()
2018-11-09 21:01:00 +01:00
Florian Festi d85fa4e849 LaserClamp: Improve design
Extend bottom bracket and add hook
Use only one bottom bracket
Add finger ring to allow easier placement
Improve top hook
2018-11-05 22:08:23 +01:00
Florian Festi 0f999a89ad New generator: AllEdges showing all the standard edge types 2018-11-05 21:38:49 +01:00
Florian Festi b7bd6306d1 Fix division by zero in FlexEdge 2018-11-05 21:38:49 +01:00
Florian Festi fe89528e05 PaintStorage: Add support for hexagonal hole patterns 2018-10-29 18:16:16 +01:00
Florian Festi 36077e6cb0 PaintStorage: Optimize part placement 2018-10-29 15:44:18 +01:00
jens persson c28541a977 Add a generator for paintstand
A simple stackable paintstand, very much inspired by:
https://www.youtube.com/watch?v=6HJarJg1npk
2018-10-29 15:11:35 +01:00
jens persson e95f36a18a Parameterize Silverwarebox
Make the messurements selectable
2018-10-28 13:19:37 +01:00
Florian Festi 80288079af New generator: TwoPiece
Based on a generator with the same name by bobm123<bobm123@gmail.com>
2018-10-25 22:35:20 +02:00
Florian Festi 5b93c1228d CardBox: Add num param for the number of decks 2018-10-25 17:36:46 +02:00
Alexander Bulimov 5a13fbea8b Add DisplayCase generator 2018-10-24 21:28:54 +02:00
Florian Festi 2060293cf3 New generator: RoyalGame of Ur 2018-10-24 21:23:57 +02:00
Florian Festi 397cc81690 FlexBox3: Use .move()
Use .edgeCorner() instead of own implementation
2018-10-19 22:12:13 +02:00
Florian Festi f7c2d91e42 FlexBox2: Make latchsize configurable 2018-10-19 21:46:30 +02:00
Florian Festi 417a053ad3 FlexBox2: Use .move() 2018-10-19 21:45:26 +02:00
Florian Festi 4d76457d3a FlexBox: Make latchsize configurable 2018-10-19 21:35:11 +02:00
Florian Festi 791ef0fdca FlexBox: Use .move() 2018-10-19 21:33:52 +02:00
Florian Festi a9009732ac FlexBox4: Make latchsize configurable 2018-10-19 19:20:23 +02:00
Florian Festi 4ba18d87b7 FlexBox4: Modernize a bit and use .move() 2018-10-19 19:15:55 +02:00
Florian Festi a4b5af98e2 Add new "mirror" key word to the where parameter of Boxes.move() 2018-10-19 19:05:07 +02:00
Florian Festi c45b5cd30b Add debug rectangle for move commands 2018-10-19 18:58:29 +02:00
Florian Festi 1cf671ddd2 FlexBox4: Calculate length of flex after adjusting the radius 2018-10-19 10:02:16 +02:00
jens persson 716fd389e3 Add a box for storage of playingcards
The box have place for two stacks of cards with a divider between.
It have a slide in lid.
2018-10-09 16:55:34 +02:00
Florian Festi 14c6338713 New generator: LaserClamp 2018-10-06 22:55:46 +02:00
Florian Festi 60cb0eed87 CabinetHinge: Add style param with new value outside 2018-10-04 22:18:07 +02:00
Florian Festi b07983582e HingeBox: Add support for split lids 2018-09-30 15:31:16 +02:00
Florian Festi db16b16533 .rectangularWall(): Fix placement for hex holes enabled by holesMargin param 2018-09-13 09:23:56 +02:00
Florian Festi 9ad64a1764 Boxes.buildArgParser: Update doc string 2018-09-10 10:00:02 +02:00
Florian Festi 259834a983 ArgparseEdgeType: Add doc string 2018-09-10 10:00:02 +02:00
Florian Festi 84df48ba1d Add units (mm) to the tabs param description 2018-09-10 10:00:02 +02:00
Rotzbua 84ce484f93 [doc] add hint to disable reference 2018-09-08 15:33:09 +02:00
Florian Festi b8ff1b8cf6 TrayLayout: Make parsing a bit more robust
Ignore white space at the end of lines with horizontal walls
2018-08-27 16:55:00 +02:00
Florian Festi b4a95aca15 TrayLayout: Fix burn correction for bottom plate
All edges were missing the burn correction outset (aka kerf).
2018-08-27 15:13:31 +02:00
Florian Festi fc127237fd Fix placement of fingerHoles in CrossingFingerHoleEdge
which were too low by one burn
2018-08-27 15:12:17 +02:00
Florian Festi 0e8a718a1b Fix placement of debugging rectangel for FingerHoles
Not the outer border of the lines are exactly at the border of the matching
part
2018-08-27 15:10:50 +02:00
Florian Festi 3767598d5d Fix placement of rectangularHole() which was off by one burn 2018-08-27 15:09:17 +02:00
Florian Festi ec77d6aa22 Doc strings for Parts methods 2018-08-23 23:28:24 +02:00
Florian Festi 897fc23029 Doc string for Boxes.flex2D() 2018-08-23 23:28:24 +02:00
Florian Festi 6c43f4a382 Doc string for Boxes.TX() 2018-08-23 23:28:20 +02:00
Florian Festi a99094b8d7 Doc string for Boxes.partsMatrix() 2018-08-23 23:27:35 +02:00
Florian Festi d360703cba TypeTray: Make bottom_edge parametric
This does not affect the inside walls
2018-08-16 20:49:12 +02:00
Florian Festi 46175dde11 Fix url params for checkboxes when re-opening an input form
Thanks to Rotzbua for pointing the issue out!
2018-08-16 08:54:52 +02:00
Florian Festi 8563818925 Hook: Boxify and parametrize generator 2018-08-14 14:01:59 +02:00
Marius Bergmann 2831b41d21 Add wall hook generator 2018-08-14 11:55:31 +02:00
Florian Festi f83ca31a0a RoundedBox: Add wallpieces param 2018-08-06 19:46:48 +02:00
Florian Festi af7f29c51f Add (wall)pieces param to roundedPlate() and surroundingWall() 2018-08-06 19:46:23 +02:00
Florian Festi 7c8ae621f7 CloseBox: Put bed blots at the right places
Keep them still disabled, though.
2018-07-25 16:34:58 +02:00
Florian Festi 05c41be4d1 Remove or comment debugging outputs 2018-07-24 20:36:13 +02:00
Florian Festi cd0fcdcb96 Set a char for CrossingFingerHoleEdge tp avoid collision with the "e" edge. 2018-07-02 19:13:52 +02:00
Florian Festi 44bce898e0 UniversalBox: Add alternative "lid" for f and F top_edges:
A rim leaving the box open
2018-07-02 19:07:26 +02:00
Florian Festi 2c7f9f4dc0 UniversalBox: Add f and F as possible top_edge types 2018-07-02 19:07:26 +02:00
Florian Festi 37a798e91e Add top "lid" for F edge 2018-07-02 19:07:25 +02:00
Sebastian Reichel 8b172cbddd Add 10" rack box derived from 19" rack box 2018-06-27 21:48:35 +02:00
Sebastian Reichel d75ea78196 Add support for specifying font color/size 2018-06-27 21:48:35 +02:00
Florian Festi 6538c92910 OrganPipe: Offer multiple units for the pressure given 2018-05-18 14:12:30 +02:00
Florian Festi 924372f79d Use a minimal line width (0.05mm) even for very small burn values
to keep the lines visible in these cases.
2018-05-17 11:27:58 +02:00
Florian Festi 1d0aa05e9a OrganPipe: Use unicode for Py 2 compat 2018-05-12 17:14:02 +02:00
Florian Festi d9e8930e31 OrganPipe: Add encoding 2018-05-12 17:11:26 +02:00
Florian Festi 4798c24815 New generator: Organ pipe
Still untested
2018-05-12 17:06:10 +02:00
Florian Festi f99bf32c85 Add hinges and spacing params to CabinetHingeEdge 2018-05-08 23:55:09 +02:00
Florian Festi 2828a85725 Add flatHole() for shafts that are flattened on both sides. 2018-05-05 19:08:37 +02:00
Florian Festi 50b9bc9ffb TypeTray: Fix finger holes in bottom which had been mirrored in x direction 2018-04-25 23:36:32 +02:00
Florian Festi 616bf42239 RegularBox: Fix top edge for "angled hole" top 2018-04-25 22:02:52 +02:00
Florian Festi d3c922d289 RegularBox: Use FingerJointSettings for vertical edges, too
Fixes #65
2018-04-25 22:02:24 +02:00
Florian Festi 73438fb614 Fix .__getattr__ of Settings class so it can be passed to copy.copy() 2018-04-25 21:52:51 +02:00
Florian Festi 879ae1af68 DisplayShelf: Do not render front wall if set to zero 2018-04-15 19:43:31 +02:00
Florian Festi ebe02e2be5 DisplayShelf: Use better defaults 2018-04-15 19:43:31 +02:00
Florian Festi 65358c9fad Add hint to outside param to nominally inner sizes 2018-04-05 22:55:23 +02:00
Florian Festi b2c54310b6 UnevenHeightBox: Fix lid
Looks like it is difficult to come up with a really non symmectrical test case.
Thanks to Mekol for pointing this out!

Related #60
2018-03-17 21:04:24 +01:00
Florian Festi fa44eb27cf UneveHeigthBox: Minor tweaks 2018-03-17 17:32:21 +01:00