Commit Graph

732 Commits

Author SHA1 Message Date
Florian Festi c6c2e203f2 OttoLegs: Make ankle bolt diameter configurable 2017-03-11 18:22:41 +01:00
Florian Festi 271bed0308 OttoLegs: wall for better fixating the servos 2017-03-11 18:22:41 +01:00
Florian Festi 6bc695a418 OttoLegs: Add second leg 2017-03-11 18:22:41 +01:00
Florian Festi e316877d06 OttoLegs: Make room for cables 2017-03-11 18:22:41 +01:00
Florian Festi db4e878bb4 OttoLegs: Legs for Otto LC 2017-03-11 18:22:41 +01:00
Florian Festi 121e2107fb Import lxml locally to avoid hard dependency
The code is used in the Inkscape plugin only.
2017-03-10 23:00:41 +01:00
Florian Festi 4ab1dcc323 RoundedBox: Fix description 2017-03-06 22:24:05 +01:00
Florian Festi eecbceda11 Rename Box2 -> UniversalBox 2017-03-06 22:24:05 +01:00
Florian Festi 47f3037e23 rename Box3 -> OpenBox 2017-03-06 22:24:05 +01:00
Florian Festi 5026c2bc03 Rename Box5 -> HingeBox 2017-03-06 22:24:05 +01:00
Florian Festi e5b19978dd Rename Box4 -> IntegratedHingeBox 2017-03-06 22:24:05 +01:00
Florian Festi 75b7724255 Rename Box -> ClosedBox 2017-03-06 22:24:05 +01:00
Florian Festi 5956182328 Parts.ringSegment() 2017-03-05 12:52:44 +01:00
Florian Festi 5e33d057fc UBox: Limit radius to possible values and merge flex if radii touch 2017-03-04 15:29:28 +01:00
Florian Festi a0d992f43a Stop printing random stuff on stdout 2017-02-26 17:02:16 +01:00
Florian Festi 41bc4d028f Use sys.stdout.buffer to be able to write bytes (for Python 3 compat) 2017-02-25 19:59:53 +01:00
Florian Festi cb8ebefeb1 Fix Servo.choices() and use it in robotarm 2017-02-25 19:59:16 +01:00
Florian Festi 174b20fc11 Fix main 2017-02-25 19:40:24 +01:00
Florian Festi a81ba48d45 Take viewBox and size of SVG documents into account when merging them 2017-02-25 16:10:28 +01:00
Florian Festi ce87babfdd RoundedBox: Fix hole size
Size calculation was wrong but compensated the broken size adjustment with
"outside" set.
2017-02-25 15:52:51 +01:00
Florian Festi 490d089a83 Planetary: Python2 fix. // doesn't allow floats in Python 2 2017-02-25 11:24:58 +01:00
Florian Festi d4edafe2d9 Fix ChestHingeSetting
Got broken by 6756d16b67
2017-02-23 20:57:01 +01:00
Florian Festi e0a4d06c43 Hackish way to make scriptsboxes to work with Inkscape. 2017-02-23 17:38:26 +01:00
Florian Festi ff7ee22885 Add svgutil.svgMerge() allwing to add generated box into anoterh svg
Implemetation has still many short comings. E.g. assumes units and layout of
document passed in. Also assumes to be merged document to be generated by
boxes.py.
2017-02-23 17:38:26 +01:00
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
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
Florian Festi 8ce1c926cd Add diameter() and getProfiles() (class) methods 2016-07-13 19:55:04 +02:00
Florian Festi bc50f3aeda Fix GT2_2mm pulleys 2016-07-13 19:25:44 +02:00
Florian Festi 01312788bb Make Pulley a part with callback and move params 2016-07-13 17:41:51 +02:00
Florian Festi 9cdb2e8dc4 Translate code from openscad to Boxes.py 2016-07-13 17:41:51 +02:00
Florian Festi 9a7a291efc Turn teeth data into valid Python 2016-07-13 17:41:51 +02:00
Florian Festi cc5fd1d651 Rename as Python module 2016-07-13 17:41:51 +02:00
Florian Festi 90835b6493 Add pulley scad file 2016-07-13 17:41:51 +02:00
Florian Festi 3abf95d665 Add callback and move param to regular gears 2016-07-13 17:41:44 +02:00
Florian Festi a2a2695c03 Support single callback that do not get any number 2016-07-13 17:38:50 +02:00
Florian Festi 4dd61691d2 Remove no longer needed code 2016-07-13 17:38:50 +02:00
Florian Festi 8eea323718 Add gears to Boxes class 2016-07-13 17:37:57 +02:00
Florian Festi 2a849e7af6 Enable support for rack gears 2016-07-13 17:37:50 +02:00
Florian Festi 0b963f30a1 Fix units to mm 2016-07-13 17:31:36 +02:00
Florian Festi c0a9d42abd Cleanups and outer circle for inner gears 2016-07-13 17:31:35 +02:00
Florian Festi c6b4fcc588 Centercross and pitchcircle 2016-07-13 17:31:35 +02:00
Florian Festi b86146fe1c Make generate_spokes a method and port it to boxes 2016-07-13 17:31:32 +02:00
Florian Festi ff8117b8ba Add burn correction to the gears 2016-07-13 17:30:23 +02:00
Florian Festi 3af1a11fbc Draw lines instead of creating svg for the teeth 2016-07-12 16:55:12 +02:00
Florian Festi 56bd463b94 Gears: use argparse for argument handling instead of the Inkscape classes 2016-07-12 16:55:12 +02:00
Florian Festi ab05372bcc Fix indentiation 2016-07-12 16:55:12 +02:00
Florian Festi 1fcb6c67b1 Add gear generator plugin for inkscape as a base for own generator
This file is borrowed from https://github.com/jnweiger/inkscape-gears-dev
2016-07-12 16:55:12 +02:00
Florian Festi 33a1333ad9 Add FlexTest2 for new 2D flex pattern 2016-07-12 16:54:44 +02:00
Florian Festi f33f74ab3f Add 2D flex pattern 2016-07-12 16:54:44 +02:00
Marius Bergmann 6c82bb9e32 Use cairocffi instead of cairo - if available
cairocffi is available from pip, which makes setup much easier.
2016-07-12 16:54:07 +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 f3892b11b4 Fix typo 2016-07-09 23:15:10 +02:00
Florian Festi 3f97d7ad77 Add outside parameter to some generators 2016-07-09 23:10:43 +02:00
Florian Festi 261a6999f4 Add outside parameter that includes the walls into the mesurements 2016-07-09 23:05:07 +02:00
Florian Festi 70d46dd06a Flexbox4: Limit radius to sane values 2016-07-09 10:55:42 +02:00
Florian Festi 281c80b4e9 flexbox4: Be more generous when merging flex on top 2016-07-09 10:55:42 +02:00
Florian Festi ea6f45a24b flexbox2: Be more generous when merging flex on top 2016-07-09 10:55:42 +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 8f0dc0330e Merge flex if rounded edges meet at top and bottom 2016-07-09 10:55:42 +02:00
Florian Festi f65bafbcac Flexbox2: Limit radius to sane values 2016-07-09 10:55:42 +02:00
Florian Festi 2043ee6d8a Flexbox: Limit radius to sane values 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 46f1e1d440 Change chars for custom edge from gG to aA
Free g for upcoming grip edge
2016-06-30 13:59:13 +02:00
Florian Festi f3062a106f Adjust description of box2 2016-06-30 11:50:01 +02:00
Florian Festi c7dcaa40a2 Fix typo 2016-06-30 11:40:42 +02:00
Florian Festi 19dceeaf78 Add support for split lid to box2 (select top edge with two hinges) 2016-06-30 11:14:26 +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 79b39fa0c0 Add option for a hinged lid to box2
Select edge with hinge as top edge to get the lid generated
2016-06-30 10:32:41 +02:00
Florian Festi 60d465c83a Add edges for hinges 2016-06-30 10:32:41 +02:00
Florian Festi a1c6652552 Use a more robust way to replace the size and viewport in the svg
Increase maximum size of canvas to 10000mm squared.
2016-06-29 14:07:51 +02:00
Florian Festi 9f4e115c9a Support formats via pstoedit 2016-06-29 13:58:26 +02:00
Florian Festi a1ab401be4 Remove old svg rewrite code that has alread moved to svgutil.py 2016-06-23 16:12:58 +02:00
Florian Festi 3d60aa096b Fix default matrix used when parsing svg path without transform attribute 2016-06-22 23:10:26 +02:00
Florian Festi 1c0ec91fe1 Fix parsing for integer numbers 2016-06-22 23:09:16 +02:00
Florian Festi 8be789b134 Add flexbox4 to module list 2016-06-22 23:07:46 +02:00
Florian Festi 43c34e6a42 Fix start of viewport to x=0
as we do not have the place to write a different value anyway.
This fixes the scaling in x direction: gh#7
2016-06-22 10:47:47 +02:00
Florian Festi 200f473747 Fix wrong variable access 2016-06-22 10:22:07 +02:00
Florian Festi 9a0d91afcd Use new name space for the argument parser to avoid non given args to linger
in the webserver
2016-06-21 22:08:31 +02:00
Florian Festi 6299e5202d box2: Add chest like lid 2016-06-21 21:53:24 +02:00
Florian Festi 3c5b3147f4 Fix boolean params in web interface by switching to action=store, type=bool
instead of using action=store_true
2016-06-21 21:53:24 +02:00
Florian Festi b5d74c2151 Make holes blue colored 2016-06-21 19:07:32 +02:00
Florian Festi 142469cc47 Use rectangularHole for FingerHoles 2016-06-21 11:25:17 +02:00
Florian Festi 6688957a72 New flexbox 2016-06-14 20:36:26 +02:00
Florian Festi de3629eb96 Add new file rebased away during cleanup of previous patchset 2016-06-13 18:57:04 +02:00
Florian Festi 0ba0c19af2 Detect size of drawing and set svg viewport accordingly
Remove width and height parameter from Boxes.open()
Code for detecting the size ignores text. Until this is fixed you need
to surround text by lines of some sort.
2016-06-07 20:24:46 +02:00
Florian Festi 1425d730f5 Add support for (angle, radius) tuples as param of polyline 2016-05-25 19:29:35 +02:00
Florian Festi 6b1d1d94d1 One more super() fix 2016-05-22 12:37:02 +02:00
Florian Festi 87582ac535 Fix flextest 2016-05-20 21:33:22 +02:00
Florian Festi 6e9b70b248 Use super properly
Restore Python2 compatibility
2016-05-20 20:32:40 +02:00
Florian Festi d61567d8f1 box2: Add optional click on top 2016-05-03 23:14:08 +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 f148421a39 Add edge choices to argparser 2016-04-26 20:17:01 +02:00
Florian Festi b0fd80e188 Fix FingerJointEdgeCounterPart() width 2016-04-26 12:19:43 +02:00
Florian Festi e3673df408 Fix surroundingWall to work with Edegs with non zero .(start|end)width()
Add Boxes.edgeCorner() to join to Edges with the proper width correction
and use it in rectangluarWall() and surroundingWall()
2016-04-26 11:54:37 +02:00
Florian Festi 3086485a25 traylayout: set size of canvas 2016-04-19 09:49:58 +02:00
Florian Festi dad830d775 Remove unused helper methods 2016-04-19 09:36:14 +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 ff1dc830e3 traylayout: fix cuts in inner corners of the floor plate 2016-04-18 17:42:29 +02:00
Florian Festi b0a2ce8b22 Use local vars instead of calling len() 2016-04-18 17:41:26 +02:00
Florian Festi 3c56abf047 traylayout: Use straight edges on walls with no floor underneeth
Still need to move it over to use E in stead of e
2016-04-17 18:08:09 +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 b4f4369faa Add argparse type to handle edges
Switch over bottom_edge and top_edge args
Support this type in web UI
Refactor creating the table row out of the different UI inputs
2016-04-10 22:51:57 +02:00
Florian Festi 1115683449 Add separating comments 2016-04-10 22:51:25 +02:00
Florian Festi 5c20ecef12 Fix typos in docs 2016-04-09 20:54:05 +02:00
Florian Festi 68d3ed59f8 Add back callback 4 for surroundingWall when the y sides are zero 2016-04-09 20:52:48 +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 7048681f3e Add params for top and bottom edges of box2 2016-04-09 11:47:12 +02:00
Florian Festi 6cf7af75c6 Fix bedbolts in box2 2016-04-06 20:00:19 +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 d2e1297875 Fix typo 2016-04-02 21:15:05 +02:00
Florian Festi 0399bafe1b Remove the Edges instances form the Boxes name space.
Move over all generators to use Boxes.edges.
2016-04-02 20:52:27 +02:00
Florian Festi 6a6336c002 Fix finger setting messup 2016-04-02 20:29:09 +02:00
Florian Festi b99a381b4f Fix doc string to be used in UI 2016-04-02 18:02:00 +02:00
Florian Festi 25be6dbc94 Add CLI params for basic finger joint settings
Change generators over to set defaults instead of overwriting the settings
2016-04-02 17:39:26 +02:00
Florian Festi a3ceb74024 Remove left over print 2016-03-30 21:11:42 +02:00
Florian Festi 9322467c7b Use stretch setting in surroundingWall() 2016-03-30 21:09:19 +02:00
Florian Festi f82bba9682 Add left and right param to surroundingWall() 2016-03-30 20:55:55 +02:00
Florian Festi 15cbc7d285 Fix Boxes.hole() 2016-03-30 20:52:21 +02:00
Florian Festi e32a314c81 Add template for writing generators 2016-03-29 22:10:54 +02:00
Florian Festi 77773573fb Ommit zero length sides in surroundingWall() 2016-03-29 21:29:57 +02:00
Florian Festi 27645cedbe Add dummy .render() method 2016-03-29 19:15:32 +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 34e06cace5 Use output param for generating layout file 2016-03-28 12:16:06 +02:00
Florian Festi 70bb1bf5af Move box generators into boxes.generators sub module 2016-03-25 22:30:07 +01:00
Florian Festi be6b02fe6f Moved edges out into their own submodule 2016-03-25 14:10:14 +01:00
Florian Festi 9513d2520f Make boxes a module 2016-03-25 14:10:14 +01:00
Florian Festi 7f8a3e7087 Add top level executable 2016-03-23 22:15:34 +01:00