-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhyperboloid.inx
76 lines (64 loc) · 2.73 KB
/
hyperboloid.inx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?xml version="1.0" encoding="UTF-8"?>
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
<_name>Hyperboloid Templates</_name>
<id>org.lauj.inkscape_sliceforms_hyperboloid</id>
<dependency type="executable" location="extensions">hyperboloid.py</dependency>
<param name="tab" type="notebook">
<page name="options" gui-text="Options">
<param name="units" gui-text="Units" type="optiongroup">
<option value="mm">mm</option>
<option value="cm">cm</option>
<option value="in">in</option>
</param>
<param name="outer_edge_radius" type="float" precision="2"
min="0.1" max="10000"
gui-text="Outer edge radius (top and bottom, widest points)">60</param>
<param name="outer_waist_radius" type="float" precision="2"
min="0.1" max="10000"
gui-text="Outer waist radius (middle, narrowest point)">30</param>
<param name="inner_radius" type="float" precision="2"
min="0.1" max="10000"
gui-text="Inner radius (middle, narrowest point)">20</param>
<param name="height" type="float" precision="2"
min="0.1" max="10000"
gui-text="Height">60</param>
<param name="num_slices" type="int"
min="1" max="1000" gui-text="Number of slices in each direction">18</param>
<param name="material_thickness" type="float" precision="2"
min="0.1" max="5" gui-text="Thickness of material">.25</param>
<param name="material_width" type="float" precision="2"
min="0.1" max="10000" gui-text="Width of material">203</param>
</page>
<page name="help" gui-text="Help">
<param name="help_text" type="description"
xml:space="preserve">Generate sliceform templates for a hyperboloid of one sheet.
Recommended settings:
outer edge radius: 60 mm
outer waist radius: 30 mm
inner radius: 19.74 mm
height: 60 mm
slices: 18
(60° corners)
outer edge radius: 59.55 mm
outer waist radius: 35 mm
inner radius: 25.80 mm
height: 59.55 mm
slices: 20
(72° corners)
"corners" are where slices meet at the model's outer edge.
For N° corners, set outer_edge_radius to outer_waist_radius / sin(N° / 2). To make the slices end at each corner, 360 must by evenly divisible by N°, and the number of slices must be evenly divisible by (360 / N°).
Setting the height to (1.25 * outer_edge_radius) works well.
There is no assembly video for this model, but the process is similar to the cylinder model: https://www.youtube.com/watch?v=QfBc0fR64EQ
</param>
</page>
</param>
<effect>
<object-type>all</object-type>
<effects-menu>
<submenu _name="Sliceforms" />
</effects-menu>
</effect>
<script>
<command reldir="inx" interpreter="python">hyperboloid.py</command>
</script>
</inkscape-extension>