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