Commit Graph

264 Commits

Author SHA1 Message Date
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
Florian Festi ad00d64b26 partsMatrix() 2016-10-02 20:48:22 +02:00
Florian Festi 586aeb7fb3 Allow finger joints as top edge
Add matching lid to Box2
2016-10-02 20:47:02 +02:00
Florian Festi 0764a3660f gears.p: More fixes for racks 2016-10-01 23:30:32 +02:00
Florian Festi bc1d9ce19e gears.py: fix rack with draw_guides=False 2016-10-01 22:35:32 +02:00
Florian Festi b0fb04762b Rotary: Make beam dimmensions parametric 2016-09-28 17:56:42 +02:00
Florian Festi 610a26736e Support drawing multiple rectangularTriangle(s) at once
Add support for setting diagonal edge type
2016-09-26 21:59:52 +02:00
Florian Festi cc42a8e165 Add rectangularTriangle() 2016-09-26 21:59:52 +02:00
Florian Festi 14acd07faf Fix latch length
Remove no longer needed burn correction
2016-09-26 21:59:52 +02:00
Florian Festi 09ce2bd78b Fix size virtual size of gear carrier 2016-09-26 21:59:52 +02:00
Florian Festi 46f40bdae6 Planetary: Fix description 2016-08-22 20:48:21 +02:00
schinken 93af56ff9c Code Reformat #1 2016-08-17 15:07:41 +02:00
Florian Festi af167295b8 Rotary: Fix spindle mechanism. Increase width of scissor lift to 70mm. 2016-08-05 22:59:35 +02:00
Florian Festi 828cd12d49 Rotary: Add knifethickness param and support variant for honey comb table 2016-08-05 22:59:35 +02:00
Florian Festi 072845be57 Rotary: Make some clearing space over the idle rollers 2016-08-05 22:59:22 +02:00
Florian Festi 77e39669e8 Rotary attachment for laser cutter - first steps 2016-08-05 22:58:39 +02:00
Florian Festi 36d6cd77c3 Fractal jigsaw puzzle. Alpha verion without splitting stuff into pieces. 2016-08-05 21:33:41 +02:00
Florian Festi db2b753446 Adjust media size for post script output 2016-08-03 22:20:13 +02:00
Florian Festi db38122125 Remove unnecessary moveTo() commands
.move() now leaves some space around parts
2016-08-03 22:20:13 +02:00
Florian Festi ea0b088356 Add reference length to allow checking the scaling 2016-07-31 18:28:57 +02:00
Florian Festi 419cccc7dd PlanetaryGear: add maxplanets and deltateeth params 2016-07-31 17:44:19 +02:00
Florian Festi 6dd482be9c Generate the list of generators automatically
Generate new traylayout class to make this work with the web interface
Minor fix to not error out in web interface for non existing doc string
2016-07-31 17:18:17 +02:00
Florian Festi b6d84b5c58 Mark generators which should not be shown in the web interface 2016-07-31 16:37:17 +02:00
Florian Festi 77ba187c70 Name generator classes properly 2016-07-31 14:15:06 +02:00
Florian Festi f8b4ef2162 Remove DemoBox from boxes.__init__.py 2016-07-31 13:08:34 +02:00
Florian Festi 776b0a2c27 Fix for extended function signature 2016-07-28 22:46:06 +02:00
Florian Festi 6b30c60602 Fix parts and add hole parameter
Fix move params
Remove debugging frames
2016-07-27 23:32:36 +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
Florian Festi 558b63f20d Fix size of base plate
Pass correct spoke_width
2016-07-25 23:37:12 +02:00
Florian Festi 1849bfd5ab New PlanetaryGear generator 2016-07-25 19:14:35 +02:00
Florian Festi 7aac41339c Add gearCarrier() 2016-07-25 18:59:50 +02:00
Florian Festi e3d552fe91 Allow passing a list of angles to generate_spokes() 2016-07-25 18:56:00 +02:00
Florian Festi 1472d250bc Draw spoke holes in correct direction (ccw) 2016-07-25 18:56:00 +02:00
Florian Festi 2117bfbc15 Do not error out if drawing does into the negative x direction
... unless there is not enough place for the viewport.
2016-07-25 18:56:00 +02:00
Florian Festi c23b42a369 Fix size calculation for ring gears 2016-07-25 18:56:00 +02:00
Florian Festi 354063068a Fix parts.disc() 2016-07-25 18:52:48 +02:00
Florian Festi 21948ade3b Add ai, pdf output formats, tweak dxf and plt 2016-07-23 21:56:10 +02:00
Florian Festi 284857d94a Fix typo 2016-07-22 00:18:32 +02:00
Florian Festi 575f41beff Add param for gears 2016-07-19 19:37:21 +02:00
Florian Festi ed8ab9a364 Fix width of gearbox to make space for two big gears 2016-07-19 19:37:21 +02:00
Florian Festi a7728d8e32 New GearBox generator 2016-07-16 15:32:06 +02:00
Florian Festi 113783ce32 Add method fro getting sizes of the gears 2016-07-16 15:26:46 +02:00
Florian Festi a344211a09 Add Parts class to collect stand alone parts like knobs 2016-07-15 18:32:37 +02:00
Florian Festi d6bd708db5 Python2 compat fix 2016-07-13 20:10:13 +02:00
Florian Festi 5201138390 Add Pulley generator 2016-07-13 20:04:57 +02:00