designix 0.5.11 → 0.5.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +59 -0
- package/dist/index.js +5669 -0
- package/dist/index.js.map +1 -0
- package/package.json +6 -1
- package/.eslintignore +0 -17
- package/.eslintrc.cjs +0 -24
- package/.prettierignore +0 -15
- package/.prettierrc +0 -8
- package/export_svg/base.svg +0 -1
- package/export_svg/base_cut.svg +0 -1
- package/export_svg/base_hollow.svg +0 -1
- package/export_svg/base_top.svg +0 -1
- package/export_svg/calculation_of_initAngle2.svg +0 -1
- package/export_svg/circles.svg +0 -1
- package/export_svg/circles_amplitude-offset.svg +0 -1
- package/export_svg/circles_amplitude-scale.svg +0 -1
- package/export_svg/circles_angle.svg +0 -1
- package/export_svg/default_param_blank.svg +0 -1
- package/export_svg/dummy_pole_static.svg +0 -1
- package/export_svg/dummy_pole_static_face.svg +0 -1
- package/export_svg/gear_addendeum_dedendum_sizes.svg +0 -9
- package/export_svg/gear_addendum_and_dedendum.svg +0 -1
- package/export_svg/gear_adherence_replaced_by_teeth.svg +0 -1
- package/export_svg/gear_base_circle_for_involute.svg +0 -2
- package/export_svg/gear_base_left_circle_for_involute.svg +0 -2
- package/export_svg/gear_base_right_circle_for_involute.svg +0 -2
- package/export_svg/gear_inter_axis_maximum_distance.svg +0 -1
- package/export_svg/gear_inter_axis_minimum_distance.svg +0 -1
- package/export_svg/gear_large_base_radius.svg +0 -5
- package/export_svg/gear_module_and_tooth_thickness.svg +0 -3
- package/export_svg/gear_optimum_base_radius.svg +0 -5
- package/export_svg/gear_optimum_base_radius_with_longer_inter_axis.svg +0 -5
- package/export_svg/gear_right_left_base_circles.svg +0 -1
- package/export_svg/gear_small_base_radius.svg +0 -5
- package/export_svg/gear_wheel_circles.svg +0 -2
- package/export_svg/gears.svg +0 -71
- package/export_svg/gears_motion_transmission_via_adherence.svg +0 -1
- package/export_svg/heliostat.svg +0 -1
- package/export_svg/heliostat2_face_sizing.svg +0 -1
- package/export_svg/heliostat2_side_sizing.svg +0 -1
- package/export_svg/heliostat_face_sizing.svg +0 -1
- package/export_svg/heliostat_overview.svg +0 -1
- package/export_svg/heliostat_side.svg +0 -1
- package/export_svg/heliostat_side_sizing.svg +0 -1
- package/export_svg/involute_of_circle.svg +0 -19
- package/export_svg/involute_of_circle_R0.svg +0 -1
- package/export_svg/involute_of_circle_Ri1_u0.svg +0 -1
- package/export_svg/involute_of_circle_Ri2_u2.svg +0 -1
- package/export_svg/left_side_angle_kitchen.svg +0 -1
- package/export_svg/negative_involute_of_circle_R0.svg +0 -1
- package/export_svg/point_c_position_and_speed_negative.svg +0 -1
- package/export_svg/point_c_position_and_speed_positive.svg +0 -1
- package/export_svg/pole_rotor.svg +0 -1
- package/export_svg/pole_rotor_cut.svg +0 -1
- package/export_svg/pole_rotor_ends.svg +0 -1
- package/export_svg/pole_stator.svg +0 -3
- package/export_svg/pole_stator_E2.svg +0 -3
- package/export_svg/pole_stator_bottom.svg +0 -1
- package/export_svg/pole_stator_cut.svg +0 -1
- package/export_svg/pole_stator_face.svg +0 -1
- package/export_svg/pole_stator_right.svg +0 -1
- package/export_svg/rake.svg +0 -1
- package/export_svg/rake_door.svg +0 -1
- package/export_svg/rake_face.svg +0 -1
- package/export_svg/rake_side.svg +0 -1
- package/export_svg/rake_side_stopper.svg +0 -1
- package/export_svg/rake_top.svg +0 -1
- package/export_svg/rake_top_stopper.svg +0 -1
- package/export_svg/rectangle.svg +0 -1
- package/export_svg/rectangle_height.svg +0 -1
- package/export_svg/rectangle_width.svg +0 -1
- package/export_svg/right_side_angle_kitchen.svg +0 -1
- package/export_svg/rod.svg +0 -1
- package/export_svg/rod_cut.svg +0 -1
- package/export_svg/rod_plate.svg +0 -1
- package/export_svg/rod_top.svg +0 -1
- package/export_svg/spider.svg +0 -1
- package/export_svg/spider_lateral.svg +0 -1
- package/export_svg/spider_profile.svg +0 -1
- package/export_svg/surface.svg +0 -3
- package/export_svg/surface_crenel.svg +0 -1
- package/export_svg/surface_extremities.svg +0 -2
- package/export_svg/surface_lz.svg +0 -1
- package/export_svg/surface_main.svg +0 -1
- package/export_svg/surface_power.svg +0 -2
- package/export_svg/surface_space_evolution.svg +0 -1
- package/export_svg/surface_space_shape.svg +0 -1
- package/export_svg/swing.svg +0 -1
- package/export_svg/swing_face.svg +0 -1
- package/export_svg/swing_side.svg +0 -1
- package/export_svg/swing_top.svg +0 -1
- package/export_svg/swing_with_rod.svg +0 -1
- package/export_svg/trapeze.svg +0 -1
- package/export_svg/trapeze_rod.svg +0 -1
- package/export_svg/trapeze_side.svg +0 -1
- package/export_svg/trapeze_top.svg +0 -1
- package/export_svg/verify_contour_1.svg +0 -1
- package/export_svg/verify_contour_1_l1.svg +0 -1
- package/export_svg/verify_contour_1_r1.svg +0 -1
- package/export_svg/verify_line.svg +0 -1
- package/export_svg/verify_line_2_l1cx.svg +0 -1
- package/export_svg/verify_line_p1x.svg +0 -1
- package/export_svg/verify_point.svg +0 -1
- package/export_svg/verify_point_p1x.svg +0 -1
- package/export_svg/verify_vector_p1x.svg +0 -1
- package/src/dummy/circles.ts +0 -65
- package/src/dummy/pole_static.ts +0 -86
- package/src/dummy/rectangle.ts +0 -55
- package/src/dummy/svg/circles.svg +0 -288
- package/src/dummy/svg/circles_amplitude-offset.svg +0 -109
- package/src/dummy/svg/circles_amplitude-scale.svg +0 -122
- package/src/dummy/svg/circles_angle.svg +0 -110
- package/src/dummy/svg/dummy_pole_static.svg +0 -192
- package/src/dummy/svg/dummy_pole_static_face.svg +0 -176
- package/src/dummy/svg/rectangle.svg +0 -131
- package/src/dummy/svg/rectangle_height.svg +0 -82
- package/src/dummy/svg/rectangle_width.svg +0 -81
- package/src/gears/gearWheelProfile.test.ts +0 -25
- package/src/gears/gearWheelProfile.ts +0 -753
- package/src/gears/gear_wheel_wheel.ts +0 -335
- package/src/gears/involute.test.ts +0 -21
- package/src/gears/involute.ts +0 -113
- package/src/gears/simplified_gear_wheel.ts +0 -242
- package/src/gears/svg/calculation_of_initAngle2.svg +0 -376
- package/src/gears/svg/gear_addendeum_dedendum_sizes.svg +0 -471
- package/src/gears/svg/gear_addendum_and_dedendum.svg +0 -269
- package/src/gears/svg/gear_adherence_replaced_by_teeth.svg +0 -168
- package/src/gears/svg/gear_base_circle_for_involute.svg +0 -376
- package/src/gears/svg/gear_base_left_circle_for_involute.svg +0 -556
- package/src/gears/svg/gear_base_right_circle_for_involute.svg +0 -516
- package/src/gears/svg/gear_inter_axis_maximum_distance.svg +0 -218
- package/src/gears/svg/gear_inter_axis_minimum_distance.svg +0 -218
- package/src/gears/svg/gear_large_base_radius.svg +0 -199
- package/src/gears/svg/gear_module_and_tooth_thickness.svg +0 -319
- package/src/gears/svg/gear_optimum_base_radius.svg +0 -232
- package/src/gears/svg/gear_optimum_base_radius_with_longer_inter_axis.svg +0 -344
- package/src/gears/svg/gear_right_left_base_circles.svg +0 -295
- package/src/gears/svg/gear_small_base_radius.svg +0 -163
- package/src/gears/svg/gear_wheel_circles.svg +0 -348
- package/src/gears/svg/gears.svg +0 -4726
- package/src/gears/svg/gears_motion_transmission_via_adherence.svg +0 -178
- package/src/gears/svg/involute_of_circle.svg +0 -2745
- package/src/gears/svg/involute_of_circle_R0.svg +0 -334
- package/src/gears/svg/involute_of_circle_Ri1_u0.svg +0 -297
- package/src/gears/svg/involute_of_circle_Ri2_u2.svg +0 -386
- package/src/gears/svg/left_side_angle_kitchen.svg +0 -207
- package/src/gears/svg/negative_involute_of_circle_R0.svg +0 -381
- package/src/gears/svg/point_c_position_and_speed_negative.svg +0 -343
- package/src/gears/svg/point_c_position_and_speed_positive.svg +0 -339
- package/src/gears/svg/right_side_angle_kitchen.svg +0 -201
- package/src/gears/wheelElements.test.ts +0 -13
- package/src/gears/wheelElements.ts +0 -176
- package/src/geometrix_verification/svg/verify_contour_1.svg +0 -320
- package/src/geometrix_verification/svg/verify_contour_1_l1.svg +0 -102
- package/src/geometrix_verification/svg/verify_contour_1_r1.svg +0 -170
- package/src/geometrix_verification/svg/verify_line.svg +0 -845
- package/src/geometrix_verification/svg/verify_line_2_l1cx.svg +0 -274
- package/src/geometrix_verification/svg/verify_line_p1x.svg +0 -261
- package/src/geometrix_verification/svg/verify_point.svg +0 -350
- package/src/geometrix_verification/svg/verify_point_p1x.svg +0 -258
- package/src/geometrix_verification/svg/verify_vector_p1x.svg +0 -282
- package/src/geometrix_verification/verify_contour_1.ts +0 -94
- package/src/geometrix_verification/verify_contour_2.ts +0 -267
- package/src/geometrix_verification/verify_contour_3.ts +0 -409
- package/src/geometrix_verification/verify_contour_4.ts +0 -91
- package/src/geometrix_verification/verify_exports_1.ts +0 -95
- package/src/geometrix_verification/verify_line.ts +0 -76
- package/src/geometrix_verification/verify_line_2.ts +0 -76
- package/src/geometrix_verification/verify_line_3.ts +0 -64
- package/src/geometrix_verification/verify_point.ts +0 -62
- package/src/geometrix_verification/verify_point_2.ts +0 -66
- package/src/geometrix_verification/verify_vector.ts +0 -70
- package/src/heliostat/base.ts +0 -254
- package/src/heliostat/heliostat.ts +0 -317
- package/src/heliostat/heliostat_2.ts +0 -284
- package/src/heliostat/pole_rotor.ts +0 -165
- package/src/heliostat/pole_static.ts +0 -275
- package/src/heliostat/rake.ts +0 -486
- package/src/heliostat/rake_stopper.ts +0 -409
- package/src/heliostat/rod.ts +0 -200
- package/src/heliostat/spider.ts +0 -238
- package/src/heliostat/surface.ts +0 -320
- package/src/heliostat/svg/base.svg +0 -1367
- package/src/heliostat/svg/base_cut.svg +0 -459
- package/src/heliostat/svg/base_hollow.svg +0 -469
- package/src/heliostat/svg/base_top.svg +0 -338
- package/src/heliostat/svg/heliostat.svg +0 -8013
- package/src/heliostat/svg/heliostat2_face_sizing.svg +0 -1386
- package/src/heliostat/svg/heliostat2_side_sizing.svg +0 -984
- package/src/heliostat/svg/heliostat_face_sizing.svg +0 -1448
- package/src/heliostat/svg/heliostat_overview.svg +0 -1552
- package/src/heliostat/svg/heliostat_side.svg +0 -1470
- package/src/heliostat/svg/heliostat_side_sizing.svg +0 -1128
- package/src/heliostat/svg/pole_rotor.svg +0 -592
- package/src/heliostat/svg/pole_rotor_cut.svg +0 -287
- package/src/heliostat/svg/pole_rotor_ends.svg +0 -336
- package/src/heliostat/svg/pole_stator.svg +0 -1945
- package/src/heliostat/svg/pole_stator_E2.svg +0 -410
- package/src/heliostat/svg/pole_stator_bottom.svg +0 -330
- package/src/heliostat/svg/pole_stator_cut.svg +0 -465
- package/src/heliostat/svg/pole_stator_face.svg +0 -457
- package/src/heliostat/svg/pole_stator_right.svg +0 -357
- package/src/heliostat/svg/rake.svg +0 -4691
- package/src/heliostat/svg/rake_door.svg +0 -617
- package/src/heliostat/svg/rake_face.svg +0 -1211
- package/src/heliostat/svg/rake_side.svg +0 -809
- package/src/heliostat/svg/rake_side_stopper.svg +0 -596
- package/src/heliostat/svg/rake_top.svg +0 -514
- package/src/heliostat/svg/rake_top_stopper.svg +0 -565
- package/src/heliostat/svg/rod.svg +0 -1314
- package/src/heliostat/svg/rod_cut.svg +0 -265
- package/src/heliostat/svg/rod_plate.svg +0 -409
- package/src/heliostat/svg/rod_top.svg +0 -577
- package/src/heliostat/svg/spider.svg +0 -693
- package/src/heliostat/svg/spider_lateral.svg +0 -222
- package/src/heliostat/svg/spider_profile.svg +0 -429
- package/src/heliostat/svg/surface.svg +0 -3577
- package/src/heliostat/svg/surface_crenel.svg +0 -1335
- package/src/heliostat/svg/surface_extremities.svg +0 -510
- package/src/heliostat/svg/surface_lz.svg +0 -182
- package/src/heliostat/svg/surface_main.svg +0 -366
- package/src/heliostat/svg/surface_power.svg +0 -331
- package/src/heliostat/svg/surface_space_evolution.svg +0 -210
- package/src/heliostat/svg/surface_space_shape.svg +0 -98
- package/src/heliostat/svg/swing.svg +0 -3310
- package/src/heliostat/svg/swing_face.svg +0 -902
- package/src/heliostat/svg/swing_side.svg +0 -574
- package/src/heliostat/svg/swing_top.svg +0 -923
- package/src/heliostat/svg/swing_with_rod.svg +0 -547
- package/src/heliostat/svg/trapeze.svg +0 -1711
- package/src/heliostat/svg/trapeze_rod.svg +0 -122
- package/src/heliostat/svg/trapeze_side.svg +0 -361
- package/src/heliostat/svg/trapeze_top.svg +0 -1057
- package/src/heliostat/swing.ts +0 -246
- package/src/heliostat/trapeze.ts +0 -510
- package/src/index.ts +0 -33
- package/src/svg/default_param_blank.svg +0 -40
- package/tsconfig.json +0 -13
- package/vitest.config.ts +0 -7
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
-
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
-
|
|
4
|
-
<svg
|
|
5
|
-
width="221.74434"
|
|
6
|
-
height="254.70496"
|
|
7
|
-
viewBox="0 0 58.669856 67.390682"
|
|
8
|
-
version="1.1"
|
|
9
|
-
id="svg5"
|
|
10
|
-
inkscape:version="1.2.2 (1:1.2.2+202305151914+b0a8486541)"
|
|
11
|
-
sodipodi:docname="involute_of_circle.svg"
|
|
12
|
-
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
13
|
-
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
14
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
15
|
-
xmlns:svg="http://www.w3.org/2000/svg">
|
|
16
|
-
<sodipodi:namedview
|
|
17
|
-
id="namedview7"
|
|
18
|
-
pagecolor="#ffffff"
|
|
19
|
-
bordercolor="#666666"
|
|
20
|
-
borderopacity="1.0"
|
|
21
|
-
inkscape:showpageshadow="2"
|
|
22
|
-
inkscape:pageopacity="0.0"
|
|
23
|
-
inkscape:pagecheckerboard="0"
|
|
24
|
-
inkscape:deskcolor="#d1d1d1"
|
|
25
|
-
inkscape:document-units="px"
|
|
26
|
-
showgrid="false"
|
|
27
|
-
inkscape:zoom="1"
|
|
28
|
-
inkscape:cx="546.5"
|
|
29
|
-
inkscape:cy="2742.5"
|
|
30
|
-
inkscape:window-width="1366"
|
|
31
|
-
inkscape:window-height="836"
|
|
32
|
-
inkscape:window-x="0"
|
|
33
|
-
inkscape:window-y="0"
|
|
34
|
-
inkscape:window-maximized="1"
|
|
35
|
-
inkscape:current-layer="layer1" />
|
|
36
|
-
<defs
|
|
37
|
-
id="defs2">
|
|
38
|
-
<rect
|
|
39
|
-
x="129.105"
|
|
40
|
-
y="3243.9546"
|
|
41
|
-
width="257.10513"
|
|
42
|
-
height="29.938791"
|
|
43
|
-
id="rect3139" />
|
|
44
|
-
<rect
|
|
45
|
-
x="261.25525"
|
|
46
|
-
y="3152.5127"
|
|
47
|
-
width="59.789192"
|
|
48
|
-
height="20.682873"
|
|
49
|
-
id="rect3037" />
|
|
50
|
-
<rect
|
|
51
|
-
x="225.55602"
|
|
52
|
-
y="3188.9314"
|
|
53
|
-
width="71.829346"
|
|
54
|
-
height="27.439058"
|
|
55
|
-
id="rect2929" />
|
|
56
|
-
<rect
|
|
57
|
-
x="228.46289"
|
|
58
|
-
y="3183.7266"
|
|
59
|
-
width="73.394531"
|
|
60
|
-
height="25.300781"
|
|
61
|
-
id="rect1891" />
|
|
62
|
-
<rect
|
|
63
|
-
x="188.03516"
|
|
64
|
-
y="3206.2598"
|
|
65
|
-
width="75.541016"
|
|
66
|
-
height="32.636719"
|
|
67
|
-
id="rect1733" />
|
|
68
|
-
<rect
|
|
69
|
-
x="317.10938"
|
|
70
|
-
y="3176.2305"
|
|
71
|
-
width="120.82227"
|
|
72
|
-
height="40.15625"
|
|
73
|
-
id="rect852" />
|
|
74
|
-
<marker
|
|
75
|
-
style="overflow:visible"
|
|
76
|
-
id="marker1720"
|
|
77
|
-
refX="0"
|
|
78
|
-
refY="0"
|
|
79
|
-
orient="auto-start-reverse"
|
|
80
|
-
inkscape:stockid="Arrow1L"
|
|
81
|
-
markerWidth="8.75"
|
|
82
|
-
markerHeight="5"
|
|
83
|
-
viewBox="0 0 8.75 5"
|
|
84
|
-
inkscape:isstock="true"
|
|
85
|
-
inkscape:collect="always"
|
|
86
|
-
preserveAspectRatio="xMidYMid">
|
|
87
|
-
<path
|
|
88
|
-
style="fill:context-stroke;fill-rule:evenodd;stroke:none"
|
|
89
|
-
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
|
90
|
-
id="path1718"
|
|
91
|
-
transform="scale(-0.5)" />
|
|
92
|
-
</marker>
|
|
93
|
-
</defs>
|
|
94
|
-
<g
|
|
95
|
-
inkscape:label="Layer 1"
|
|
96
|
-
inkscape:groupmode="layer"
|
|
97
|
-
id="layer1"
|
|
98
|
-
transform="translate(-32.014804,-796.24786)">
|
|
99
|
-
<rect
|
|
100
|
-
style="fill:#ffffff;stroke:#ffffff;stroke-width:0.264583"
|
|
101
|
-
id="rect3291"
|
|
102
|
-
width="58.405277"
|
|
103
|
-
height="67.126099"
|
|
104
|
-
x="32.147095"
|
|
105
|
-
y="796.38019" />
|
|
106
|
-
<path
|
|
107
|
-
style="fill:none;stroke:#808080;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
108
|
-
d="M 34.42477,854.01297 H 60.546175"
|
|
109
|
-
id="path582" />
|
|
110
|
-
<path
|
|
111
|
-
style="fill:none;stroke:#dd55ff;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
112
|
-
d="M 34.42477,854.01297 88.964529,809.61464"
|
|
113
|
-
id="path584"
|
|
114
|
-
sodipodi:nodetypes="cc" />
|
|
115
|
-
<path
|
|
116
|
-
style="fill:none;stroke:#ff0066;stroke-width:0.264582px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
117
|
-
d="m 34.482791,854.03294 4.84458,-38.19638"
|
|
118
|
-
id="path694" />
|
|
119
|
-
<path
|
|
120
|
-
style="fill:none;stroke:#afdde9;stroke-width:0.529167;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
121
|
-
d="m 54.296426,826.03588 c 0,0 1.512231,-4.07388 1.681551,-6.21255 0.208938,-2.63909 -0.368483,-5.29268 -0.842841,-7.89718 -0.374781,-2.05776 -0.708199,-4.17074 -1.576649,-6.07354 -0.648458,-1.42079 -2.654618,-3.86074 -2.654618,-3.86074"
|
|
122
|
-
id="path747"
|
|
123
|
-
sodipodi:nodetypes="caaac" />
|
|
124
|
-
<path
|
|
125
|
-
style="fill:none;stroke:#0066ff;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
126
|
-
d="m 51.561697,829.691 11.8608,-16.92577"
|
|
127
|
-
id="path696" />
|
|
128
|
-
<path
|
|
129
|
-
style="fill:none;stroke:#ff8080;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
130
|
-
d="m 49.393828,823.44991 8.067977,-16.75627"
|
|
131
|
-
id="path745" />
|
|
132
|
-
<text
|
|
133
|
-
xml:space="preserve"
|
|
134
|
-
transform="matrix(0.26458333,0,0,0.26458333,-36.578645,-43.321386)"
|
|
135
|
-
id="text850"
|
|
136
|
-
style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect852)"><tspan
|
|
137
|
-
x="317.10938"
|
|
138
|
-
y="3189.2071"
|
|
139
|
-
id="tspan4396">right profile</tspan></text>
|
|
140
|
-
<path
|
|
141
|
-
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1720)"
|
|
142
|
-
d="m 45.452788,854.01039 c 0,0 0.178801,-2.3053 -0.143913,-3.38893 -0.276277,-0.9277 -1.484146,-2.49598 -1.484146,-2.49598"
|
|
143
|
-
id="path856"
|
|
144
|
-
sodipodi:nodetypes="cac" />
|
|
145
|
-
<text
|
|
146
|
-
xml:space="preserve"
|
|
147
|
-
transform="matrix(0.26458333,0,0,0.26458333,-3.295406,-0.61856689)"
|
|
148
|
-
id="text1731"
|
|
149
|
-
style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1733)"><tspan
|
|
150
|
-
x="188.03516"
|
|
151
|
-
y="3219.2364"
|
|
152
|
-
id="tspan4398">acc</tspan></text>
|
|
153
|
-
<path
|
|
154
|
-
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1720)"
|
|
155
|
-
d="m 45.892149,844.36183 c 0,0 -1.673127,-3.05278 -3.061688,-3.994 -1.335003,-0.90492 -4.657079,-1.31208 -4.657079,-1.31208"
|
|
156
|
-
id="path1883"
|
|
157
|
-
sodipodi:nodetypes="cac" />
|
|
158
|
-
<text
|
|
159
|
-
xml:space="preserve"
|
|
160
|
-
transform="matrix(0.26458333,0,0,0.26458333,-19.598287,-6.8026854)"
|
|
161
|
-
id="text1889"
|
|
162
|
-
style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1891)"><tspan
|
|
163
|
-
x="228.46289"
|
|
164
|
-
y="3196.7032"
|
|
165
|
-
id="tspan4400">apr</tspan></text>
|
|
166
|
-
<path
|
|
167
|
-
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1720)"
|
|
168
|
-
d="m 38.288101,825.5682 c 0,0 4.714101,-0.38575 6.984589,0.13126 1.883663,0.42892 5.270479,2.41071 5.270479,2.41071"
|
|
169
|
-
id="path2909"
|
|
170
|
-
sodipodi:nodetypes="cac" />
|
|
171
|
-
<text
|
|
172
|
-
xml:space="preserve"
|
|
173
|
-
transform="matrix(0.26458333,0,0,0.26458333,-16.334814,-18.156005)"
|
|
174
|
-
id="text2927"
|
|
175
|
-
style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect2929)"><tspan
|
|
176
|
-
x="225.55664"
|
|
177
|
-
y="3201.9082"
|
|
178
|
-
id="tspan4402">u</tspan></text>
|
|
179
|
-
<path
|
|
180
|
-
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1720)"
|
|
181
|
-
d="m 60.942307,816.08185 c 0,0 -1.093943,-2.04351 -1.947987,-2.78987 -0.654539,-0.57201 -2.318878,-1.19305 -2.318878,-1.19305"
|
|
182
|
-
id="path3029"
|
|
183
|
-
sodipodi:nodetypes="cac" />
|
|
184
|
-
<text
|
|
185
|
-
xml:space="preserve"
|
|
186
|
-
transform="matrix(0.26458333,0,0,0.26458333,-10.923128,-26.069636)"
|
|
187
|
-
id="text3035"
|
|
188
|
-
style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect3037)"><tspan
|
|
189
|
-
x="261.25586"
|
|
190
|
-
y="3165.4883"
|
|
191
|
-
id="tspan4404">rup</tspan></text>
|
|
192
|
-
<text
|
|
193
|
-
xml:space="preserve"
|
|
194
|
-
transform="scale(0.26458333)"
|
|
195
|
-
id="text3137"
|
|
196
|
-
style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect3139)"><tspan
|
|
197
|
-
x="129.10547"
|
|
198
|
-
y="3256.9317"
|
|
199
|
-
id="tspan4406">right side angle kitchen</tspan></text>
|
|
200
|
-
</g>
|
|
201
|
-
</svg>
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, expectTypeOf } from 'vitest';
|
|
2
|
-
//import type { tContour } from 'geometrix';
|
|
3
|
-
import * as welem from './wheelElements';
|
|
4
|
-
|
|
5
|
-
describe('wheelElements module', () => {
|
|
6
|
-
it('axisTorque', () => {
|
|
7
|
-
expectTypeOf(welem.axisTorque(0, 0, 10, 2, 4, 3, 1, 1, 0)).toBeObject();
|
|
8
|
-
});
|
|
9
|
-
it('hollowStraight', () => {
|
|
10
|
-
expect(welem.hollowStraightArea(0, 0, 20, 40, 1, 3, 1)).toBeCloseTo(65);
|
|
11
|
-
expectTypeOf(welem.hollowStraight(0, 0, 40, 20, 1, 3, 1, 0)).toBeArray();
|
|
12
|
-
});
|
|
13
|
-
});
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
// wheelElements.ts
|
|
2
|
-
|
|
3
|
-
import type { tContour } from 'geometrix';
|
|
4
|
-
import { contour, contourCircle, point, ffix } from 'geometrix';
|
|
5
|
-
|
|
6
|
-
function axisTorque(
|
|
7
|
-
cx: number,
|
|
8
|
-
cy: number,
|
|
9
|
-
axisRadius: number,
|
|
10
|
-
ribNb: number,
|
|
11
|
-
ribWidth: number,
|
|
12
|
-
ribHeight: number,
|
|
13
|
-
ribRound1: number,
|
|
14
|
-
ribRound2: number,
|
|
15
|
-
initAngle: number
|
|
16
|
-
): tContour {
|
|
17
|
-
let rCtr: tContour = contourCircle(cx, cy, axisRadius);
|
|
18
|
-
if (ribNb > 0) {
|
|
19
|
-
if (ribWidth > 2 * axisRadius) {
|
|
20
|
-
throw `err383: axisTorque ribWidth ${ffix(ribWidth)} larger than 2x axisRadius ${ffix(
|
|
21
|
-
axisRadius
|
|
22
|
-
)}`;
|
|
23
|
-
}
|
|
24
|
-
const aRibW2 = Math.asin(ribWidth / (2 * axisRadius));
|
|
25
|
-
const aPeriod = (2 * Math.PI) / ribNb;
|
|
26
|
-
if (aPeriod - 2.5 * aRibW2 < 0) {
|
|
27
|
-
throw `err384: axisTorque ribWidth ${ffix(ribWidth)} or ribNb ${ribNb} are too large`;
|
|
28
|
-
}
|
|
29
|
-
if (ribRound1 > ribWidth / 2) {
|
|
30
|
-
throw `err385: axisTorque ribRound1 ${ffix(
|
|
31
|
-
ribRound1
|
|
32
|
-
)} too large compare to ribWidth ${ffix(ribWidth)}`;
|
|
33
|
-
}
|
|
34
|
-
if (ribRound1 + ribRound2 > ribHeight) {
|
|
35
|
-
throw `err386: axisTorque ribRound12 ${ffix(ribRound1)} ${ffix(
|
|
36
|
-
ribRound2
|
|
37
|
-
)} too large compare to ribHeight ${ffix(ribWidth)}`;
|
|
38
|
-
}
|
|
39
|
-
const arcLarge = aPeriod - 2 * aRibW2 > Math.PI ? true : false;
|
|
40
|
-
const pt0 = point(cx, cy);
|
|
41
|
-
const pt0z = pt0.translatePolar(initAngle, axisRadius + ribHeight);
|
|
42
|
-
const pt0b = pt0z.translatePolar(initAngle + Math.PI / 2, ribWidth / 2);
|
|
43
|
-
rCtr = contour(pt0b.cx, pt0b.cy);
|
|
44
|
-
for (let i = 0; i < ribNb; i++) {
|
|
45
|
-
const ribDir1 = initAngle + i * aPeriod;
|
|
46
|
-
const ribDir2 = ribDir1 + aPeriod;
|
|
47
|
-
const pt2 = pt0.translatePolar(ribDir1 + aRibW2, axisRadius);
|
|
48
|
-
const pt3 = pt0.translatePolar(ribDir2 - aRibW2, axisRadius);
|
|
49
|
-
const pt1z = pt0.translatePolar(ribDir1, axisRadius + ribHeight);
|
|
50
|
-
const pt1 = pt1z.translatePolar(ribDir1 + Math.PI / 2, ribWidth / 2);
|
|
51
|
-
const pt4z = pt0.translatePolar(ribDir2, axisRadius + ribHeight);
|
|
52
|
-
const pt4 = pt4z.translatePolar(ribDir2 - Math.PI / 2, ribWidth / 2);
|
|
53
|
-
rCtr.addSegStrokeA(pt1.cx, pt1.cy).addCornerRounded(ribRound1);
|
|
54
|
-
rCtr.addSegStrokeA(pt2.cx, pt2.cy).addCornerRounded(ribRound2);
|
|
55
|
-
rCtr.addPointA(pt3.cx, pt3.cy)
|
|
56
|
-
.addSegArc(axisRadius, arcLarge, true)
|
|
57
|
-
.addCornerRounded(ribRound2);
|
|
58
|
-
rCtr.addSegStrokeA(pt4.cx, pt4.cy).addCornerRounded(ribRound1);
|
|
59
|
-
}
|
|
60
|
-
rCtr.closeSegStroke();
|
|
61
|
-
}
|
|
62
|
-
return rCtr;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function hollowStraight(
|
|
66
|
-
cx: number,
|
|
67
|
-
cy: number,
|
|
68
|
-
hollowExt: number,
|
|
69
|
-
hollowInt: number,
|
|
70
|
-
spokeNb: number,
|
|
71
|
-
spokeWidth: number,
|
|
72
|
-
spokeRound: number,
|
|
73
|
-
initAngle: number
|
|
74
|
-
): tContour[] {
|
|
75
|
-
const aPeriod = (2 * Math.PI) / spokeNb;
|
|
76
|
-
const aW2Int = Math.asin(spokeWidth / (2 * hollowInt));
|
|
77
|
-
const aW2Ext = Math.asin(spokeWidth / (2 * hollowExt));
|
|
78
|
-
if (spokeWidth > 2 * hollowInt) {
|
|
79
|
-
throw `err905: hollowStraight spokeWidth ${ffix(spokeWidth)} too large for hollowInt ${ffix(
|
|
80
|
-
hollowInt
|
|
81
|
-
)}`;
|
|
82
|
-
}
|
|
83
|
-
if (hollowExt - hollowInt < 2.1 * spokeRound) {
|
|
84
|
-
throw `err906: hollowStraight hollowExt ${ffix(hollowExt)}, hollowInt ${ffix(
|
|
85
|
-
hollowInt
|
|
86
|
-
)} and spokeRound ${ffix(spokeRound)} do not fit`;
|
|
87
|
-
}
|
|
88
|
-
// the formula of the following condition is approximate
|
|
89
|
-
if (aPeriod - 2 * aW2Ext < 2.5 * Math.asin(spokeRound / hollowExt)) {
|
|
90
|
-
throw `err907: hollowStraight spokeNb ${spokeNb}, spokeWidth ${ffix(
|
|
91
|
-
spokeWidth
|
|
92
|
-
)} or spokeRound ${ffix(spokeRound)} are too large`;
|
|
93
|
-
}
|
|
94
|
-
const dist5 = spokeWidth / (2 * Math.sin(aPeriod / 2));
|
|
95
|
-
const triangle = aPeriod - 2 * aW2Int < 2.1 * Math.asin(spokeRound / hollowInt) ? true : false;
|
|
96
|
-
const arcLarge = aPeriod - 2 * aW2Ext > Math.PI ? true : false;
|
|
97
|
-
//console.log(`dbg908: triangle ${triangle}`);
|
|
98
|
-
const pt0 = point(cx, cy);
|
|
99
|
-
const rACtr: tContour[] = [];
|
|
100
|
-
for (let i = 0; i < spokeNb; i++) {
|
|
101
|
-
const aSpoke1 = initAngle + i * aPeriod;
|
|
102
|
-
const aSpoke2 = aSpoke1 + aPeriod;
|
|
103
|
-
const aSpoke5 = aSpoke1 + aPeriod / 2;
|
|
104
|
-
const pt1 = pt0.translatePolar(aSpoke1 + aW2Ext, hollowExt);
|
|
105
|
-
const pt2 = pt0.translatePolar(aSpoke2 - aW2Ext, hollowExt);
|
|
106
|
-
const pt3 = pt0.translatePolar(aSpoke2 - aW2Int, hollowInt);
|
|
107
|
-
const pt4 = pt0.translatePolar(aSpoke1 + aW2Int, hollowInt);
|
|
108
|
-
const pt5 = pt0.translatePolar(aSpoke5, dist5);
|
|
109
|
-
const ctr = contour(pt1.cx, pt1.cy);
|
|
110
|
-
ctr.addCornerRounded(spokeRound);
|
|
111
|
-
ctr.addPointA(pt2.cx, pt2.cy)
|
|
112
|
-
.addSegArc(hollowExt, arcLarge, true)
|
|
113
|
-
.addCornerRounded(spokeRound);
|
|
114
|
-
if (triangle) {
|
|
115
|
-
ctr.addSegStrokeA(pt5.cx, pt5.cy).addCornerRounded(spokeRound);
|
|
116
|
-
} else {
|
|
117
|
-
ctr.addSegStrokeA(pt3.cx, pt3.cy).addCornerRounded(spokeRound);
|
|
118
|
-
ctr.addPointA(pt4.cx, pt4.cy)
|
|
119
|
-
.addSegArc(hollowInt, arcLarge, false)
|
|
120
|
-
.addCornerRounded(spokeRound);
|
|
121
|
-
}
|
|
122
|
-
ctr.closeSegStroke();
|
|
123
|
-
rACtr.push(ctr);
|
|
124
|
-
}
|
|
125
|
-
return rACtr;
|
|
126
|
-
}
|
|
127
|
-
function hollowStraightArea(
|
|
128
|
-
cx: number,
|
|
129
|
-
cy: number,
|
|
130
|
-
hollowExt: number,
|
|
131
|
-
hollowInt: number,
|
|
132
|
-
spokeNb: number,
|
|
133
|
-
spokeWidth: number,
|
|
134
|
-
spokeRound: number
|
|
135
|
-
): number {
|
|
136
|
-
const rArea = cx + cy + hollowExt + hollowInt + spokeNb + spokeWidth + spokeRound;
|
|
137
|
-
return rArea;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
function axisProfile(
|
|
141
|
-
wheelHeight: number,
|
|
142
|
-
wheelMidExtra: number,
|
|
143
|
-
wheelAxisLength: number,
|
|
144
|
-
wheelAxisRadius: number,
|
|
145
|
-
wheelMidRadius: number,
|
|
146
|
-
wheelRadius: number,
|
|
147
|
-
wheelAxisExtRound: number,
|
|
148
|
-
wheelAxisIntRound: number,
|
|
149
|
-
wheelExtraRound: number,
|
|
150
|
-
rightNLeft: boolean
|
|
151
|
-
): tContour {
|
|
152
|
-
const rln = rightNLeft ? 1 : -1;
|
|
153
|
-
const wheelHeightHalf = wheelHeight / 2;
|
|
154
|
-
const wheelHalfLength = wheelHeightHalf + wheelMidExtra;
|
|
155
|
-
const axisHalfLength = wheelHalfLength + wheelAxisLength;
|
|
156
|
-
const rCtr = contour(0, -axisHalfLength);
|
|
157
|
-
rCtr.addSegStrokeA(rln * wheelAxisRadius, -axisHalfLength)
|
|
158
|
-
.addCornerRounded(wheelAxisExtRound)
|
|
159
|
-
.addSegStrokeA(rln * wheelAxisRadius, -wheelHalfLength)
|
|
160
|
-
.addCornerRounded(wheelAxisIntRound)
|
|
161
|
-
.addSegStrokeA(rln * wheelMidRadius, -wheelHalfLength)
|
|
162
|
-
.addSegStrokeA(rln * wheelRadius, -wheelHeightHalf)
|
|
163
|
-
.addCornerRounded(wheelExtraRound)
|
|
164
|
-
.addSegStrokeA(rln * wheelRadius, wheelHeightHalf)
|
|
165
|
-
.addCornerRounded(wheelExtraRound)
|
|
166
|
-
.addSegStrokeA(rln * wheelMidRadius, wheelHalfLength)
|
|
167
|
-
.addSegStrokeA(rln * wheelAxisRadius, wheelHalfLength)
|
|
168
|
-
.addCornerRounded(wheelAxisIntRound)
|
|
169
|
-
.addSegStrokeA(rln * wheelAxisRadius, axisHalfLength)
|
|
170
|
-
.addCornerRounded(wheelAxisExtRound)
|
|
171
|
-
.addSegStrokeA(0, axisHalfLength)
|
|
172
|
-
.closeSegStroke();
|
|
173
|
-
return rCtr;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
export { axisTorque, hollowStraight, hollowStraightArea, axisProfile };
|