Commit Graph

161 Commits

Author SHA1 Message Date
Florian Festi 6756d16b67 Use .settings.thickness in edges instead of global value 2017-02-18 19:05:21 +01:00
Florian Festi 94c727cc30 Add CabinetHingeEdge 2017-02-11 18:15:44 +01:00
Florian Festi f1b8d68d65 Fix bedbolts for finger holes 2017-02-11 18:15:34 +01:00
Florian Festi 544c40a0d3 Add Chest Hinge edge classes 2017-02-06 22:35:26 +01:00
Florian Festi 2fa07190ff Fix finger joint setting defaults
space and width got mixed up in 8d754c3855
2017-02-05 16:30:37 +01:00
christopher 8d754c3855 Use default finger/width settings of 2.0 for every box 2017-01-30 10:12:27 +01:00
Florian Festi b2b0ccd6f1 Fix FingerJoints with angles != 90 degrees
Fix margins
Fix amount of recess for spaces
2016-12-14 22:07:36 +01:00
Florian Festi be6de6a793 Support FingerJoints with less than 90 degrees.
This means bending angle < 90. The actual angle is bigger than 90
2016-11-28 21:11:38 +01:00
Florian Festi 6f0a4cae86 Use polyline() for FingerJointEdge 2016-11-28 21:11:38 +01:00
Florian Festi aa5fa73c8a Add edgeObjects() method to Settings to create Edge objects 2016-11-28 21:11:38 +01:00
Florian Festi f30221d265 Fix .margin() for CompondEdge 2016-11-26 13:40:27 +01:00
Florian Festi a0be85764a Use FingerJointSettings.height as margin of Finger Joints 2016-11-17 21:39:32 +01:00
Florian Festi 69ac52aaab Slide-on Edge: Add optional springs that hold the lid in place
Fix pin length to two thicknesses
2016-11-12 17:50:29 +01:00
Florian Festi 43c0178d14 Make fingers for slide-on lid bigger by defaut 2016-11-12 17:01:44 +01:00
Florian Festi 7baafebaea Remove debug print 2016-11-01 23:46:25 +01:00
Florian Festi d980c6b95f Add minimal doc strings to Settings 2016-11-01 23:46:25 +01:00
Florian Festi c3e2470e8d Rename style values to something more meaningful 2016-11-01 23:46:25 +01:00
Florian Festi 2ace15475a Check types in Settings class and support choices 2016-11-01 23:46:25 +01:00
Florian Festi 699fb920bc Make Hinges more robut against invalid style arguments 2016-11-01 14:04:35 +01:00
Florian Festi fd3a333cb0 Allow passing new default values to Boxes.addSettingsArgs() 2016-11-01 14:04:35 +01:00
Florian Festi c816de811b Beautify doc strings of edge settings and sort argument entries 2016-10-31 22:16:51 +01:00
Florian Festi 3a0df10866 Create arguments from edge settings starting with FingerJointSettings 2016-10-31 22:13:09 +01:00
Florian Festi 9095c3934f Return to original point after drawing finger holes 2016-10-30 20:20:56 +01:00
Florian Festi 33d11487de Add edges for a sliding lid
Add to top_edges and support in Box2
2016-10-30 20:17:13 +01:00
Florian Festi 2494aeb3ae Add play param for FingerJoints 2016-10-30 19:48:59 +01:00
Florian Festi 7203320e70 Move finger calculation into FingerJointBase class 2016-10-30 19:48:59 +01:00
Florian Festi dc045eefe2 Remove no longer needed local vars 2016-10-30 19:48:59 +01:00
Florian Festi 4f3883374d Fix position of finger holes 2016-10-15 20:57:36 +02:00
Florian Festi 3ce2115365 Add RackEdge 2016-10-12 22:52:35 +02:00
schinken 93af56ff9c Code Reformat #1 2016-08-17 15:07:41 +02:00
Florian Festi 4cf33dae50 Move spacing out of the Edge margin() and into Boxes.move()
Also move ctx.save() and restoreinto Boxes.move().
Adjust (hopefully) all places using it.
2016-07-27 22:19:32 +02:00
Marius Bergmann 4b487014d0 Fix project for use within virtualenv
- Use /usr/bin/env to determine path to python3 instead of a hard-coded
  path, so that virtualenv stubs work properly.
- Change package name to 'boxes' ('boxes.py' did not work within
  virtualenv).
2016-07-12 13:13:03 +02:00
Florian Festi 325ae8a134 Make flex centered
Leave one space before and after the first/last cut.
Resolves https://github.com/florianfesti/boxes/issues/11
2016-07-09 10:55:42 +02:00
Florian Festi 20e55ed1c9 Remove left over debug print 2016-07-08 22:17:37 +02:00
Florian Festi fcda87d48a Make A style hinges parametrical 2016-07-08 19:51:36 +02:00
Florian Festi 401ef597d8 Make axle disk out of the hinge hole
Remove no longer needed .parts() method
2016-07-06 23:07:44 +02:00
Florian Festi d392f290e7 Move Boxes.fingerHoleEdgeWidth to FingerJointSettings 2016-07-03 16:42:21 +02:00
Florian Festi 28183257d6 Add optional gripping edges at the side of lids
And use it for double lid in box2
2016-07-03 16:00:25 +02:00
Florian Festi a7f0e97012 Add GrippingEdge
Still needs to replace Boxes.grip()
2016-06-30 14:25:29 +02:00
Florian Festi a032067c5b Add edge with two hinges to top edge param and edge descriptions 2016-06-30 11:12:51 +02:00
Florian Festi 60d465c83a Add edges for hinges 2016-06-30 10:32:41 +02:00
Florian Festi 142469cc47 Use rectangularHole for FingerHoles 2016-06-21 11:25:17 +02:00
Florian Festi 6b1d1d94d1 One more super() fix 2016-05-22 12:37:02 +02:00
Florian Festi 6e9b70b248 Use super properly
Restore Python2 compatibility
2016-05-20 20:32:40 +02:00
Florian Festi 5250fc768f New Edge type to clip on sides
Still untested due to lackof laser cutter
2016-05-03 23:02:50 +02:00
Florian Festi c462b1fc4b Make width of other side of DoveTailJoint width 0
This way the dove tails are completely in the inner space. This also makes it
easier to build surrounding walls as the dove tail joint doesn't need extra
space.
2016-04-26 21:52:41 +02:00
Florian Festi b0fd80e188 Fix FingerJointEdgeCounterPart() width 2016-04-26 12:19:43 +02:00
Florian Festi b22ee1f760 Replace Edge.width() with .startwidth() and .endwidth()
to allow changes in the with of the edge. This is currently needed for the
CompoundEdge but may be used by future edges, too.
2016-04-19 09:33:33 +02:00
Florian Festi 2ec1cb287c More fixups...
Turns out BaseEdge.startAngle and BaseEdge.endAngle are already used - sortof
2016-04-17 18:04:23 +02:00
Florian Festi ae0687d7f1 Fix rebase mixup 2016-04-17 17:43:16 +02:00
Florian Festi 00706ff3f6 Move description into Edge classes
Add boxes.edges.getDescriptions()
2016-04-17 16:37:29 +02:00
Florian Festi a6fd8da8f1 Add an abstract BaseEdge class 2016-04-17 16:35:13 +02:00
Florian Festi 8cd295328c Use FingerHoles instance for drawing finger holes
Various places used Boxes.fingerHolesAt which did use the default setting. This way it was not possible to have multiple finger hole settings active at the same times for finger holes.

Now all parts that draw finger holes do no longer have FingerJointSettings but instead have an instance of FingerHoles. Boxes.fingerHolesAt also is an instance
of FingerHoles joining a setting with all the other default finger joint classes.
2016-04-09 16:18:05 +02:00
Florian Festi 223f078726 Add StackableEdge class 2016-04-09 15:44:27 +02:00
Florian Festi 311fef45bd Mark sections dealing with different Edge types 2016-04-09 14:29:09 +02:00
Florian Festi ee8bd1f02b Save thickness in Settings instances 2016-04-09 14:29:09 +02:00
Florian Festi fa0181311e Add to the documentation
Move content of API.txt into the docs
Rename TODO.txt and add it to the docs
2016-04-06 17:52:51 +02:00
Florian Festi 9322467c7b Use stretch setting in surroundingWall() 2016-03-30 21:09:19 +02:00
Florian Festi cd598d541e Add encoding 2016-03-29 19:15:13 +02:00
Florian Festi 09871be797 Add minimal doc strings 2016-03-28 18:35:32 +02:00
Florian Festi be6b02fe6f Moved edges out into their own submodule 2016-03-25 14:10:14 +01:00