Commit Graph

308 Commits

Author SHA1 Message Date
Florian Festi 39e74e67ba Add scripts/boxes2inkscape for generating inx files from box generators
Code for handling traylayout still missing.
2017-02-23 17:38:26 +01:00
Florian Festi a93e280477 Make reference a separate path object
Avoid it being merged with teh first par tof the drawing
2017-02-23 17:38:26 +01:00
Florian Festi e23d8034c5 Make BoolArg accept upper and lower case values 2017-02-23 17:38:26 +01:00
Florian Festi b440d1c767 Use BoolArg when creating arg parser for edges.Settings 2017-02-23 17:38:26 +01:00
Florian Festi 1b3f9dbc3a Robotarm: Generator for servo powered robot arm segments 2017-02-22 22:33:22 +01:00
Florian Festi 40d53ac1ba Robot parts: Initial commit 2017-02-22 22:33:22 +01:00
Florian Festi 1bed3f2a39 rectangularWall() fix positioning with ignore_widths
containing parts of the lower left corner.
2017-02-22 20:01:29 +01:00
Florian Festi 3cad4f27af Add tangent() function 2017-02-22 20:01:28 +01:00
Florian Festi d2774f151d Lamp: fix no longer valid default in setting 2017-02-18 19:13:57 +01:00
Florian Festi cc577956a4 Flexbox3: Fix radius of lid
May still be off a bit. But I can't see why...
2017-02-18 19:06:10 +01:00
Florian Festi 117ace3233 FlexBox3: Fix finger joints of lid 2017-02-18 19:06:10 +01:00
Florian Festi 1f9342b678 Castle: Make available in UI and adjust to current code base 2017-02-18 19:06:10 +01:00
Florian Festi 6756d16b67 Use .settings.thickness in edges instead of global value 2017-02-18 19:05:21 +01:00
Florian Festi 561eb0034c Add "Unstable" UIGroup 2017-02-15 15:55:01 +01:00
Florian Festi d3c76f2b9e Put box generator into groups and adjust the menu web page accordingly 2017-02-13 17:31:58 +01:00
Florian Festi 5a0f3d42ea Add UIGroup class and instances for structuring the box generators 2017-02-13 17:31:02 +01:00
Florian Festi c820c1b77d Move lid code from boxes/generators/box2.py to boxes/lids.py
Rename the classes to no longer show up in the list of generators
2017-02-12 23:18:37 +01:00
Florian Festi 0739fd0b94 Exclude Boxes classes starting with _ in getAllBoxGenerators()
Exclude mix-in classes that are not supposed to be used on their own
2017-02-12 22:20:32 +01:00
Florian Festi 399e5b468f New generator: UBox - a box with rounded corner at the bottom 2017-02-12 15:00:17 +01:00
Florian Festi b59de950c0 Box2: Refactor lid generation out of the Box2 class 2017-02-12 15:00:17 +01:00
Florian Festi dd6c5560f9 Support chars es edge parameters in Boxes.edgeCorner() 2017-02-12 15:00:17 +01:00
Florian Festi a7d0dda9f8 New generator: Box5 box with lid attached with cabinet hinges 2017-02-11 18:15:44 +01:00
Florian Festi 305986dad8 Add cabinet hinge to top_edge and support it in Box2 2017-02-11 18:15:44 +01:00
Florian Festi 94c727cc30 Add CabinetHingeEdge 2017-02-11 18:15:44 +01:00
Florian Festi fb5398b30d PoleHook: Initial commit 2017-02-11 18:15:34 +01:00
Florian Festi f1b8d68d65 Fix bedbolts for finger holes 2017-02-11 18:15:34 +01:00
Florian Festi 250131e152 Fix previous fix *sigh* 2017-02-09 18:47:20 +01:00
Florian Festi 3e3ed3b0dd Add finger joint settings again
Got removed accidentially in 8d754c
2017-02-09 00:02:41 +01:00
Florian Festi da6dcb4c68 Box4: Use ignore_widths to get finger joints on the whole length of all edges 2017-02-07 20:18:48 +01:00
Florian Festi 3daa9a846a Add ignore_widths param for rectangularWall()
It does not pass the width of edges to edgeCorner but instead lengthen the
neighboring edge. The widths are numbered from 0 to 7 starting with the
horizontal part of the lower right corner.
2017-02-07 18:56:07 +01:00
Florian Festi 1e6893d0b1 Box4: Box with boxy lid and built-in hinge 2017-02-06 22:36:11 +01:00
Florian Festi 544c40a0d3 Add Chest Hinge edge classes 2017-02-06 22:35:26 +01:00
Florian Festi 70574056d6 Fixes for rectangularTriangle 2017-02-05 21:02:46 +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
Florian Festi f982918205 Add r param to rectangularTriangle() 2017-02-04 15:01:16 +01:00
Florian Festi 07661b1eae Formats: Generate tempfile in same directory to ensure rename works. 2017-02-04 15:01:16 +01:00
christopher 8d754c3855 Use default finger/width settings of 2.0 for every box 2017-01-30 10:12:27 +01:00
christopher c36d819e10 Change defaults 2017-01-30 09:37:10 +01:00
Florian Festi 17e2b55fcf Box2: Add flat lid
Make chestlid param a general lid param
2017-01-24 22:49:25 +01:00
Florian Festi 28ad1c6dc3 RoundedBox: Add top param for top opening and lid 2017-01-21 13:54:58 +01:00
Florian Festi 6ef950816e Add edge parameter to Boxes.roundedPlate 2017-01-21 13:54:58 +01:00
Florian Festi a8241b2118 New generator: RoundedBox
Still very basic. Needs top parameter similar to AngledBox
2017-01-19 21:36:43 +01:00
Florian Festi fa4fd943ca New generator: DisplayShelf - a shelf with forward slanted floors 2017-01-14 23:13:22 +01:00
Florian Festi 8514ede2c3 AngledBox: Fix fingers on top of walls for "angled hole" 2017-01-08 18:56:05 +01:00
Florian Festi 7b5614659a New generator: AngledBox 2017-01-08 17:25:36 +01:00
Florian Festi 8dc13440ee Fix boolean params. Not passing 0, None, False or off works for setting them to False
Thanks to chrisjshull for pointing out how to fix this in the web UI.
Fixes #19
2017-01-08 17:25:36 +01:00
Florian Festi 13cdb35954 Make RegularPolygonWall a path of its own 2016-12-17 11:37:11 +01:00
Florian Festi 0cbd713718 RegularBox: Fix outside parameter 2016-12-17 11:36:26 +01:00
Florian Festi 0dc6aef5d4 RegularBox: Add angled hole top style 2016-12-17 11:24:47 +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 6298c80527 RegularBox: Fix angled lid 2016-12-14 21:02:49 +01:00
Florian Festi a5fd1775e0 New generator: RegularBox 2016-12-13 22:58:56 +01:00
Florian Festi cbe32cc5a7 Code for Regular Polygons
* Boxes.regularPolygon for calculation
 * Boxes.regularPolygonAt for simple polygon
 * Boxes.regularPolygonWall

Also fix edgeCorner() for angles != 90 degrees
2016-12-13 22:58:10 +01:00
Florian Festi 75adf0b15f TrafficLight: Add support for horizontal layout of lights 2016-11-30 21:45:17 +01:00
Florian Festi f133e2aa12 TrafficLight: Add windows to be cut from transparent (and colored) material 2016-11-30 18:31:44 +01:00
Florian Festi 16e93ca086 TrafficLight: Fix edge type for front panels 2016-11-30 11:29:55 +01:00
Florian Festi 23cf0eaa3a TrafficLight: Add param for number of lights 2016-11-29 23:43:01 +01:00
Florian Festi 273174fae8 New generator: TrafficLight 2016-11-29 23:42:17 +01:00
Florian Festi aa4c0fd1d4 Add FingerJoints to the bottom of the front plates 2016-11-28 21:11:38 +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 0fc6527150 BinTray: Switch slots between vertical and horizontal walls
to better support the floors.

Also fix margin of BinFront edge class(es)
2016-11-13 11:58:07 +01:00
Florian Festi c39b33ad14 New BinTray generator 2016-11-13 00:40:55 +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 a8af428941 Manually use multiple arcs to get more precise curves 2016-11-02 21:50:44 +01:00
Florian Festi fe79970cc3 Beautify web UI
Watch self.css
2016-11-01 23:46:25 +01:00
Florian Festi 0cde4a71e6 Add params for edge settings to all generators 2016-11-01 23:46:25 +01:00
Florian Festi 7baafebaea Remove debug print 2016-11-01 23:46:25 +01:00
Florian Festi 748d8b3888 Remove arguments for FingerJoints from default arguments 2016-11-01 23:46:25 +01:00
Florian Festi ec2a365598 Use arguments from default Setting classes when creating the default edges 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 5a721df82b Put arguments into groups and use them to display them in the web interface 2016-10-31 22:11:54 +01:00
Florian Festi 9095c3934f Return to original point after drawing finger holes 2016-10-30 20:20:56 +01:00
Florian Festi 44b55029a0 Do not break lines on empty callbacks
Boxes.cc() did move the coordinate system arround even if the callback is
None. This breaks the continuity of the border. If there is callback the
line is still broken.
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 9220bccb68 Clarify burn param 2016-10-20 20:07:23 +02:00
Florian Festi 4e632325e3 Arcade: Increase height of keyboard 2016-10-17 21:29:58 +02:00
Florian Festi 9b4a45a1d5 Arcade: Add width as a parameter
Fix movement of side
2016-10-17 21:16:02 +02:00
Florian Festi ff6ba3595d New Generator: Arcade - a desktop arcade cabinet 2016-10-17 21:12:12 +02:00
Florian Festi 4f3883374d Fix position of finger holes 2016-10-15 20:57:36 +02:00
Florian Festi 24a8588485 gears.py: allow zero spokes 2016-10-12 22:52:35 +02:00
Florian Festi 3ce2115365 Add RackEdge 2016-10-12 22:52:35 +02:00
Florian Festi fc36515fbd Properly center rack and make it a single line for negative base heights
Preparation for RackEdge
2016-10-12 22:52:35 +02:00
Florian Festi accb6eb45d gears.py: Support non closed line segments in drawPoints() 2016-10-12 22:52:35 +02:00
Florian Festi 33681db645 Add closed param to kerf()
Allow for non close line segments and handle ends correctly
2016-10-12 22:52:35 +02:00
Florian Festi de7a168377 vectors.py: Don't error out when normalizing zero length vectors 2016-10-12 22:52:34 +02:00
Florian Festi 83f0c813dd vectors.py: add circlepoint(r, a) 2016-10-02 20:48:22 +02:00