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