Commit Graph

577 Commits

Author SHA1 Message Date
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
Marko Luther ca1a3575d0 forward holesSettings to hexHolesRectangle from within rectangularWall 2019-07-21 01:21:55 +02:00
Rotzbua c06b95d2d0 link: http -> https 2019-07-20 00:23:29 +02:00
Florian Festi 0a55e9ca6b Optimize SVG paths
Resolves #63
2019-07-19 21:49:55 +02:00
Florian Festi a38254667c Remove no longer needed line in _template.py 2019-07-18 20:55:07 +02:00
Florian Festi 17d7cd80ab Don't show generators in modules starting with underscore (templates) 2019-07-12 00:47:09 +02:00
Florian Festi 11174f2ecc New generator SlatwallDrillBox 2019-07-12 00:43:06 +02:00
Florian Festi 88e99a5726 New generator: FlexBox5
Resolves #147
2019-07-12 00:24:50 +02:00
Florian Festi e6f431ab15 New generator: MakitaPowerSupply 2019-07-07 16:26:29 +02:00
Florian Festi fff74cf382 Add metadata as a xml comment
Resolves #66
2019-07-07 13:43:04 +02:00
Florian Festi a19debf1bd Rename remaining Slatwall generators from Sw* to Slatwall* 2019-07-04 22:59:32 +02:00
Florian Festi 573b630adc New generator: SlatwallPlaneHolder 2019-07-04 22:39:34 +02:00
Florian Festi 31d46088c2 Move drawing to origin for SVGs 2019-07-04 17:52:28 +02:00
Florian Festi 635a42a25e Use eTree to caclulate the eytend of the drawing
Also check symbols (text character) now
2019-07-04 17:52:28 +02:00
Florian Festi d162c769b4 Use built in eTree implementation instead of lxml 2019-07-04 17:52:08 +02:00
Florian Festi 4a9cdc8d8e Switch to eTree as a xml library (instead of minidom) 2019-07-04 17:48:53 +02:00
Stefan Grosshauser 443c8a1c38 properly rewrite svg viewPort using minidom for xml
This avoids raising the 'Not enough space for size' exception.
2019-07-04 17:48:53 +02:00
Florian Festi abdab6866a New generator: StorageRack - Box with rails to slide other boxes in 2019-06-30 20:53:42 +02:00
Florian Festi 2f7603b4b4 New generator: SlatWallWrenchHolder 2019-06-30 20:53:42 +02:00
Florian Festi 0105957c05 New generator: SlatWallChiselHolder 2019-06-30 17:19:02 +02:00
Florian Festi 138dffbf2a New generator: SlatWallCaliperHolder 2019-06-30 15:48:09 +02:00
Florian Festi be8aed394a New generator: Slatwall PlaneHolder 2019-06-30 15:18:11 +02:00
Florian Festi 09df973d69 New generator: SlatwallConsole - an outset and angled plate to mount stuff to 2019-06-22 00:07:23 +02:00
Florian Festi 810c3dbe3e New generator: SwTypeTray - a tray to hang at a slat wall 2019-06-22 00:05:57 +02:00
Florian Festi f1ce996aae New generator: SwPliersHolder - a bar to hang pliers on 2019-06-22 00:04:30 +02:00
Florian Festi 6c85ae7ea2 Add trapezoidSideWall() that supports radius param for additional strength 2019-06-21 23:16:59 +02:00
Florian Festi 6a809e17e7 Move trapezoidWall() from UnevenHeightBox to Boxes class 2019-06-21 21:37:57 +02:00
Florian Festi 01ca56fdce Support all different section syntaxes (sx, sy, ...) side by side 2019-06-21 21:37:57 +02:00
Florian Festi db706fc939 SlatWall edges: Make bottom hook selectable, various fixes 2019-06-21 21:36:28 +02:00
Florian Festi 1e35a3b9ed New generator: SwSlottedHolder
A tool holder for slat wall
2019-06-21 21:22:10 +02:00
Florian Festi 5cef906a9a Add SlatWallHoleEdge (dD) classes
Similar to FigerHolesEdge (h)
2019-06-21 18:47:29 +02:00
Florian Festi 9415a6864f Add boxes/generators/_swtemplate.py as a starting point for Slat Wall boxes 2019-06-13 19:02:02 +02:00
Florian Festi aadf5ceafc Add Edge types, example and UIGroup for slat wall compatible boxes 2019-06-13 19:00:32 +02:00
chrysn 753422fa46 New generator DiscRack
A rack for storing disk-shaped objects vertically next to each other
2019-06-01 13:09:01 +02:00
Germain Lemasson e8e248994b Add a StorageSelf generator. This is a shelf for storing TypeTray boxes.
It is based on TypeTray generator. The sh parameter replace the sx parameter.
It is not a subclasse of TypeTray in order to have the top and bottom at
the right place.
2019-06-01 12:52:34 +02:00
Florian Festi a6ca723759 Mirror holes on the other walls
to have them match up. Otherwise boxes with non symetric top edges don't fit
together.

Fixes #141
2019-05-11 17:18:10 +02:00
Florian Festi 46157b2030 Add .mirrorX() and .mirrorY() wrappers
These are especially useful for warpping callbacks.
2019-05-11 17:17:11 +02:00
Florian Festi 93c2093ef3 AllEdges: Fix spacing and add edegs around the corner
to make it more clear which direction the edges are pointing.

Related #132
2019-04-14 18:17:09 +02:00
Florian Festi f22be6f6d5 Fix polygonWalls for inner corners 2019-04-14 18:17:09 +02:00
Florian Festi 0b781ce7ef Add turtle param to polygonWall
to allow using it as turtle graphic command instead of a part
2019-04-14 18:17:09 +02:00
Florian Festi dc11929258 Fix _polygonWallExtend for corners with negative angles 2019-04-14 18:17:09 +02:00
chrysn 95dba0dee7 box: raise NotImplementedError
NotImplemented is a sentinel for comparisons; encountering this as an
exception would result in a meta-error.
2019-04-10 17:56:12 +02:00
Florian Festi ce8576d39e New generator: HeartBox 2019-03-24 21:52:26 +01: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 4f4d947253 .corner(): Fix tabs for small arcs 2019-03-24 21:50:11 +01:00
Florian Festi f178215f20 .corner(): Also accept (angle, radius) tuples 2019-03-24 21:50:11 +01:00
Florian Festi c09ee50fbd New generator: NotesHolder 2019-03-23 12:36:21 +01:00
Florian Festi 8bacd1f766 UniversalBox: Fix missing lids for various top_edges
Call got refactored away

Resolves: #121
2019-02-27 22:58:05 +01:00