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
Florian Festi
abed8c06ac
FingerHoles: use .saved_context()
2019-02-24 14:42:48 +01:00
Florian Festi
72617110cf
FingerHoleEdge: Use modern code and add tab support
2019-02-24 13:14:21 +01:00
Florian Festi
eb5f3008da
RoundedTriangleEdge: Add tabs
2019-02-24 12:16:47 +01:00
Florian Festi
9b1ce265bf
Make docstrings ready for autodoc
2019-02-13 09:01:20 +01:00
Florian Festi
2e5a19a40f
Python 2 compat fix
2019-01-12 18:42:44 +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
ba3cacbf93
RoundedTriangleEdge: Add outset setting
2019-01-12 00:07:22 +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
b7bd6306d1
Fix division by zero in FlexEdge
2018-11-05 21:38:49 +01:00
Florian Festi
60cb0eed87
CabinetHinge: Add style param with new value outside
2018-10-04 22:18:07 +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
cd0fcdcb96
Set a char for CrossingFingerHoleEdge tp avoid collision with the "e" edge.
2018-07-02 19:13:52 +02:00
Florian Festi
f99bf32c85
Add hinges and spacing params to CabinetHingeEdge
2018-05-08 23:55:09 +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
90ba9f8ee9
LidEdge: Fix duplicated option for spring
2018-03-05 20:10:55 +01:00
Florian Festi
78d35a92e0
Fix CrossingFingerHoleEdge
...
which relies on __call__() of the super class drawing a line
2018-02-12 22:04:20 +01:00
Florian Festi
4e034949d3
Fix tabs for straight edges (eE) with bed bolts
...
Add tabs param to bedBoltHole
2018-01-19 23:48:27 +01:00
Stefan Grosshauser
73e1821e71
enable bedbolts for Straight 'e' and OutSet edges 'E'
...
note that this mostly ignores that positioning bedbolts is done
in the BedBolt class for finger joints.
Coding style could be much improved.
2018-01-18 15:07:33 +01:00
Stefan Grosshauser
07f88cd8e5
make __call__() abstract for BaseEdge; and inherit OutSetEdge from Edge
2018-01-18 15:07:24 +01:00
Florian Festi
7bd2b9e452
HingeEdge: Add tabs to hinge disk
2017-12-20 18:25:55 +01:00
Florian Festi
e5bb6a5d7a
Add tabs to Boxes.edge() and most Edge classes
...
and Boxes.polyline()
Add to some parts of the Otto Bot
2017-12-15 16:45:32 +01:00
Florian Festi
f0dc89c617
Make play of ChestHinge a regular param
2017-12-09 16:54:10 +01:00
Florian Festi
9dfa95f45b
Fix ChestHinge
...
Add the play of the hinge to the width of the edge
Adjust IntegratedHingeBox
Fixes #45
2017-12-07 22:29:09 +01:00
Florian Festi
b7f877eacd
Fix bedbolts
...
BedBoltSettings need to become a subclass of Settings instead of a list
of values at some point.
2017-09-13 11:39:03 +02:00
Florian Festi
d4edafe2d9
Fix ChestHingeSetting
...
Got broken by 6756d16b67
2017-02-23 20:57:01 +01:00
Florian Festi
b440d1c767
Use BoolArg when creating arg parser for edges.Settings
2017-02-23 17:38:26 +01:00
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