Commit Graph

188 Commits

Author SHA1 Message Date
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