Compare commits
9 Commits
edefeee886
...
main
Author | SHA1 | Date | |
---|---|---|---|
9588b3fe8c | |||
f1c385f5dd | |||
8d1c96b3ee | |||
4e39e68a14 | |||
76809106ce | |||
5e18e5733c | |||
28f352e5f9 | |||
cbf18e926d | |||
7a7fbd1f4e |
BIN
openscad/foreign/parametric-helix_haystack-mod/haystack_logo.png
Normal file
BIN
openscad/foreign/parametric-helix_haystack-mod/haystack_logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
@@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
id="svg1"
|
||||||
|
width="501.33334"
|
||||||
|
height="178.66667"
|
||||||
|
viewBox="0 0 501.33334 178.66667"
|
||||||
|
sodipodi:docname="haystack_logo_final.svg"
|
||||||
|
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
showguides="true"
|
||||||
|
inkscape:zoom="3.2546641"
|
||||||
|
inkscape:cx="109.84236"
|
||||||
|
inkscape:cy="69.899687"
|
||||||
|
inkscape:window-width="5120"
|
||||||
|
inkscape:window-height="1372"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1">
|
||||||
|
<sodipodi:guide
|
||||||
|
position="154.87316,107.74798"
|
||||||
|
orientation="0,-1"
|
||||||
|
id="guide1"
|
||||||
|
inkscape:locked="false" />
|
||||||
|
<sodipodi:guide
|
||||||
|
position="408.0677,50.320605"
|
||||||
|
orientation="0,-1"
|
||||||
|
id="guide3"
|
||||||
|
inkscape:locked="false" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
inkscape:label="Image"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
style="fill:#000000"
|
||||||
|
d="m 125.31473,153.15745 c 0.32361,-24.84341 -1.74527,-36.06144 -15.89944,-59.045268 l -8.85996,-14.386967 7.07083,-9.514556 11.98249,18.707475 c 7.74992,12.099446 10.95559,19.597976 13.01655,26.841556 0,0 2.84053,10.88974 3.5787,16.45382 0.94049,7.08905 1.0643,21.42708 1.0643,21.42708 l -0.23925,21.48138 -12,-0.0257 z m 82.26852,-25.32179 c -6.79765,-2.22596 -13.88764,-8.07626 -13.88764,-8.07626 -0.0381,-0.0342 7.06667,-8.68224 7.06667,-8.68224 l 3.97035,2.82714 c 4.76565,3.39344 14.1229,5.58756 17.8505,4.92645 7.75546,-1.37545 11.77629,-9.95953 -6.04897,-13.2625 -8.90014,-1.64917 -18.51381,-7.201061 -20.27411,-13.076441 -1.91807,-6.401928 -0.98605,-10.686611 3.47881,-15.992791 4.2928,-5.101702 11.3218,-5.722837 18.4607,-5.622832 5.37668,0.07532 18.16272,6.300787 18.16272,6.300787 -1.16603,2.619741 -5.57525,9.875482 -5.52415,9.753794 l -5.18481,-2.64509 c -5.38579,-2.747624 -11.35893,-3.054762 -14.85768,-2.011576 -3.63087,1.08258 -4.75459,4.871973 -3.5225,7.684615 1.37813,3.146015 7.67926,3.591052 14.93801,6.045572 6.82697,2.308517 13.24941,4.392612 16.42394,10.862102 1.23243,2.51163 0.96349,9.02362 -0.96472,12.17885 -5.56569,9.10741 -17.21942,13.00406 -30.08712,8.79042 z m 166.0103,-21.46368 c -1.48309,-5.04618 -0.96418,-10.512542 0.0329,-13.776365 2.71295,-8.880641 8.85017,-17.298301 16.66143,-19.951358 10.42808,-3.541848 21.40674,-2.539274 30.4917,2.764525 l 4.96483,2.898471 -8.1308,9.863975 -4.81172,-3.265321 c -11.86273,-8.050262 -27.90952,0.261204 -26.96689,14.611162 1.02816,15.652231 18.50059,21.256421 27.6218,13.634681 l 3.94927,-3.30003 8.74709,8.96434 -3.70726,3.26268 c -7.06847,6.2208 -20.648,8.33008 -30.89871,4.70033 -5.42498,-1.92097 -14.3365,-8.0999 -17.95364,-20.40709 z M 1.6956149,99.640587 V 70.97392 h 6.666667 6.6666671 V 82.307253 93.640587 H 26.362282 37.695616 V 82.307253 70.97392 h 6.666667 6.666666 V 99.640587 128.30725 H 44.362283 37.695616 V 116.97392 105.64059 H 26.362282 15.028949 v 11.33333 11.33333 H 8.3622819 1.6956149 Z M 63.744232,123.30725 C 66.59586,106.25446 72.803233,91.979161 86.155074,71.7683 99.916134,50.938014 102.37972,46.387822 106.4375,34.307252 c 2.60391,-7.752186 3.60534,-13.490071 3.66513,-21.000001 l 0.0823,-10.3333329 h 5.75535 5.75536 V 13.360453 c 0,19.163686 -9.07772,38.383291 -27.068015,65.884254 -5.82228,8.900256 -7.72078,14.126075 -8.14179,14.284256 0,0 10.279841,0.111624 14.992315,0.111624 l 6.36555,11.794273 c -9.122675,0.28357 -18.252151,0.20573 -27.378076,0.20573 l -2.051657,6.90866 c -1.128409,3.79977 -2.231702,9.42558 -2.377543,10.69079 l -0.584097,5.06721 H 62.908115 Z m 87.284718,-5.92984 V 106.44756 L 140.36228,89.560489 C 134.49561,80.272597 129.6413,70.954628 129.6413,70.954628 c 3.02508,0.01727 3.48035,0.01929 14.21082,0.01929 l 6.52282,11.287817 c 3.58755,6.2083 6.78856,11.022071 7.11337,10.697268 4.54102,-6.974921 8.67985,-14.884864 12.95875,-22.024512 0,0 0.0136,-0.09172 14.09563,0.02395 -3.02169,6.848287 -7.33158,12.932566 -11.34972,19.234764 l -10.16402,15.885945 v 11.11405 11.11405 h -6 -6 z M 268.36228,105.64059 V 82.97392 h -8.66666 -8.66667 v -6 -6 h 24 24 v 6 6 h -8.66667 -8.66666 v 22.66667 22.66666 h -6.66667 -6.66667 z m 34.44941,22.64966 c 0,0 24.93638,-57.405468 24.88185,-57.405468 h 10.77302 l 25.05122,57.384868 -13.60161,0.0376 -4.40063,-11.8202 -25.49513,0.10667 -3.88035,11.71353 z m 30.04155,-42.965528 c -2.46505,6.333771 -4.90586,12.677133 -7.44293,18.982528 h 14.91306 c -2.51572,-6.317459 -5.04821,-12.628324 -7.47013,-18.982528 z M 443.02895,70.97392 h 12 l 0.1282,24.666667 23.20512,-24.68097 15.9444,0.0144 -22.50614,25.526067 c -0.008,-0.0046 6.09017,8.557266 12.1859,16.807266 l 11.08313,15 h -15.60774 l -17.09955,-23.8 -7.33334,6.96558 v 16.83432 h -12 z M 85.424934,47.905541 C 81.606985,36.351334 82.045145,35.705457 81.718464,29.562339 l -0.0228,-5.255087 h 6 6 l 0.0158,3.666666 c 0.009,2.016667 0.87911,6.910332 1.93423,10.874812 l 1.9184,7.208145 -8.445544,11.929437 -1.62963,-3.83456 z"
|
||||||
|
id="path1"
|
||||||
|
sodipodi:nodetypes="ssccssacccssccssssssccsssssssssssccsssccsssscccccccccccccccccccccccscsccccssscccssccsccsccssccsccccccccccccccccccccccccccccccccccccccccccccccccccccccccscccsc" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.6 KiB |
@@ -0,0 +1,97 @@
|
|||||||
|
// number of fragments | a higher fragment count will result in slower render times '20' is sufficient.
|
||||||
|
fn = 30; // [0:100]
|
||||||
|
// "sugar phosphate backbones" | part of helix_base module | if adjusted also consider adjusting 'post_distance_apart' or 'center_bridge_length'.
|
||||||
|
post_radius = 3.5; // [0:500]
|
||||||
|
post_hole_radius = 1.25; // [0:500]
|
||||||
|
// part of helix_base module | if adjusted also consider adjusting 'center_bridge_length'.
|
||||||
|
post_distance_apart = 15; // [0:500]
|
||||||
|
// "base pairs" length between "sugar phosphate backbones" | part of helix_base module | if adjusted also consider adjusting 'post_distance_apart'.
|
||||||
|
center_bridge_length = 24; // [0:500]
|
||||||
|
// part of helix_base module | thickness of "basepairs" in relevence to the the Y-axis of 'helix_base' before "linear_extrude" is implemented. further explanation is below.
|
||||||
|
center_bridge_width = .8; // [0:0.1:500]
|
||||||
|
// 'helix_height' adjusts the height of the linear_extruded 'helix_base' module | 'helix_height, helix_twists, helix_twists' all work hand in hand and should be experimented to fully understand the linear_extrude's nature.
|
||||||
|
helix_height = 120; // [0:500]
|
||||||
|
// 'helix_twists' adjusts the degree of twist in the linear_extruded 'helix_base' module.
|
||||||
|
helix_twists = 400; // [0:3600]
|
||||||
|
// 'helix_slices' adjusts the number of slices used in the linear_extruded 'helix_base' module | more slices = higher resolution and longer render times, less slices = the contrary | 200 is sufficient.
|
||||||
|
helix_slices = 600; // [0:500]
|
||||||
|
// this is fun try changing from 0-3 to scale 'helix_base' as it reaches its specified height in 'helix_height' | '1' = 1to1 scale, 0 = 1to0, 2 = 1to2 scale and so on in sequential order.
|
||||||
|
helix_scale = 1; // [0:10]
|
||||||
|
// the radius of the differenced circle that creates the spaces between each "base pair" | if adjusted you may also want to adjust 'center_bridge_length' and 'post_distance_apart'.
|
||||||
|
spacer_radius = 11.6; // [0:500]
|
||||||
|
// the height of the differenced circle changing this will result in a visual thickness change, in the Z-axis, of each "basepair".
|
||||||
|
spacer_height = 4; // [0:550]
|
||||||
|
// the point in the Z-axis at which the spacers will start appearing | 'spacer_start, spacer_increment_distance, and spacer_increment_height all work together to create the "base pairs/ bridges" that appear between each "sugar phosphate backbone/post".
|
||||||
|
spacer_start = 0; // [0:550]
|
||||||
|
// the distance between each spacer changing this will result in a visual thickness change, in the Z-axis, of each "basepair".
|
||||||
|
spacer_increment_distance = 6; // [0:500]
|
||||||
|
// the height to which the spacers ascend to and then stop being produced.
|
||||||
|
spacer_increment_height = helix_height; // [0:500]
|
||||||
|
// the radius of the circle where the standing platform is located at the base of the helix.
|
||||||
|
base_platform_radius = 30; // [0:500]
|
||||||
|
base_platform_inner_radius = 25;
|
||||||
|
// the height of the above said platform.
|
||||||
|
base_platform_height = 12; // [0:100]
|
||||||
|
// the controls the number of sides the platform has, 0 defaults to 'fn'. 3, 4, 5, 6 ...
|
||||||
|
base_platform_shape = 6; // [0:50]
|
||||||
|
|
||||||
|
usb_mount_hole_spacing = 15; // 19-(2*2) ?
|
||||||
|
usb_mount_hole_dia = 2.0; // ?
|
||||||
|
usb_height = 4.1;
|
||||||
|
usb_rectangular_width = 11+1; //presumeably this is 19-4-4 = 11 plus one for wiggle room. needs testing.
|
||||||
|
|
||||||
|
module helix_basic(){
|
||||||
|
translate([-post_distance_apart,0,0]){
|
||||||
|
difference(){
|
||||||
|
circle(post_radius,$fn = fn);
|
||||||
|
circle(post_hole_radius,$fn = fn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([post_distance_apart,0,0]){
|
||||||
|
difference(){
|
||||||
|
circle(post_radius, $fn = fn);
|
||||||
|
circle(post_hole_radius, $fn = fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
square([center_bridge_length,center_bridge_width],center = true);
|
||||||
|
}
|
||||||
|
// the basic 2D shape that the helix is extruded upon.
|
||||||
|
union(){
|
||||||
|
difference(){
|
||||||
|
linear_extrude(height = helix_height, twist = helix_twists, slices = helix_slices, scale = helix_scale){
|
||||||
|
helix_basic();
|
||||||
|
}
|
||||||
|
for (a = [ spacer_start : spacer_increment_distance : spacer_increment_height])
|
||||||
|
translate([0, 0, a]) {
|
||||||
|
linear_extrude(height = spacer_height, center = true){
|
||||||
|
circle(spacer_radius, $fn = fn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rotate([0,0,helix_twists+90+3*post_radius-0.5]){
|
||||||
|
translate([post_distance_apart,0,helix_height])scale([1,1,0.25])sphere(r = post_radius, $fn = fn);
|
||||||
|
translate([-post_distance_apart,0,helix_height])scale([1,1,0.25])sphere(r = post_radius, $fn = fn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([0,0,-base_platform_height/2])difference(){
|
||||||
|
hull(){ // base
|
||||||
|
translate([0,0,base_platform_height/3])cylinder(r = base_platform_radius-(base_platform_height/2), h = base_platform_height/3, center = true, $fn = base_platform_shape);
|
||||||
|
translate([0,0,-base_platform_height/4])cylinder(r = base_platform_radius, h = base_platform_height/2, center = true, $fn = base_platform_shape);
|
||||||
|
}
|
||||||
|
translate([post_distance_apart,0,(base_platform_height/2)-(base_platform_height/4)])cylinder(r1 = post_hole_radius*2, r2 = post_hole_radius, h = base_platform_height/2+0.2, center = true, $fn = fn);
|
||||||
|
translate([-post_distance_apart,0,(base_platform_height/2)-(base_platform_height/4)])cylinder(r1 = post_hole_radius*2, r2 = post_hole_radius, h = base_platform_height/2+0.2, center = true, $fn = fn);
|
||||||
|
translate([0,0,-base_platform_height/2+0.01])cylinder(r = base_platform_inner_radius, h = base_platform_height, center = true, $fn = base_platform_shape);
|
||||||
|
translate([0,0,-base_platform_height/2+1-0.01])cylinder(r = base_platform_inner_radius+2, h = 2, center = true, $fn = base_platform_shape);
|
||||||
|
// todo: add cutout through base for filament-leds, because they don't reach to the bottom!
|
||||||
|
// usb-module:
|
||||||
|
translate([0,base_platform_radius*0.75,- base_platform_height/6])rotate([90,0,0])cube([usb_rectangular_width,usb_height,15],center=true); //cylinder(d = usb_height, h = 10, center = true, $fn = fn);
|
||||||
|
translate([usb_mount_hole_spacing/2,base_platform_radius*0.75,- base_platform_height/6])rotate([90,0,0])cylinder(d = usb_mount_hole_dia, h = 10, center = true, $fn = base_platform_shape);
|
||||||
|
translate([-usb_mount_hole_spacing/2,base_platform_radius*0.75,- base_platform_height/6])rotate([90,0,0])cylinder(d = usb_mount_hole_dia, h = 10, center = true, $fn = base_platform_shape);
|
||||||
|
}
|
||||||
|
// baseplate with pry-hole:
|
||||||
|
translate([0,0,-15])difference(){
|
||||||
|
translate([0,0,(-base_platform_height/2+1-0.01)])cylinder(r = base_platform_inner_radius+2, h = 2-0.2, center = true, $fn = base_platform_shape);
|
||||||
|
for (x = [ base_platform_radius*0.75 , -base_platform_radius*0.75 ])translate([0,x,(-base_platform_height/2+1-0.01)])cube([10,2,2+0.01], center=true);
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,134 @@
|
|||||||
|
// number of fragments | a higher fragment count will result in slower render times '20' is sufficient.
|
||||||
|
fn = 30; // [0:100]
|
||||||
|
// "sugar phosphate backbones" | part of helix_base module | if adjusted also consider adjusting 'post_distance_apart' or 'center_bridge_length'.
|
||||||
|
post_radius = 5; // [0:500]
|
||||||
|
post_hole_radius = 1.75; // [0:500]
|
||||||
|
// part of helix_base module | if adjusted also consider adjusting 'center_bridge_length'.
|
||||||
|
post_distance_apart = 25; // [0:500]
|
||||||
|
// "base pairs" length between "sugar phosphate backbones" | part of helix_base module | if adjusted also consider adjusting 'post_distance_apart'.
|
||||||
|
center_bridge_length = 55; // [0:500]
|
||||||
|
// part of helix_base module | thickness of "basepairs" in relevence to the the Y-axis of 'helix_base' before "linear_extrude" is implemented. further explanation is below.
|
||||||
|
center_bridge_width = 1.6; // [0:0.1:500]
|
||||||
|
// 'helix_height' adjusts the height of the linear_extruded 'helix_base' module | 'helix_height, helix_twists, helix_twists' all work hand in hand and should be experimented to fully understand the linear_extrude's nature.
|
||||||
|
helix_height = 165; // [0:500]
|
||||||
|
// 'helix_twists' adjusts the degree of twist in the linear_extruded 'helix_base' module.
|
||||||
|
helix_twists = 400; // [0:3600]
|
||||||
|
// 'helix_slices' adjusts the number of slices used in the linear_extruded 'helix_base' module | more slices = higher resolution and longer render times, less slices = the contrary | 200 is sufficient.
|
||||||
|
helix_slices = 600; // [0:500]
|
||||||
|
// this is fun try changing from 0-3 to scale 'helix_base' as it reaches its specified height in 'helix_height' | '1' = 1to1 scale, 0 = 1to0, 2 = 1to2 scale and so on in sequential order.
|
||||||
|
helix_scale = 1; // [0:10]
|
||||||
|
// the radius of the differenced circle that creates the spaces between each "base pair" | if adjusted you may also want to adjust 'center_bridge_length' and 'post_distance_apart'.
|
||||||
|
spacer_radius = 20.25; // [0:500]
|
||||||
|
// the height of the differenced circle changing this will result in a visual thickness change, in the Z-axis, of each "basepair".
|
||||||
|
spacer_height = 6; // [0:550]
|
||||||
|
// the point in the Z-axis at which the spacers will start appearing | 'spacer_start, spacer_increment_distance, and spacer_increment_height all work together to create the "base pairs/ bridges" that appear between each "sugar phosphate backbone/post".
|
||||||
|
spacer_start = 0; // [0:550]
|
||||||
|
// the distance between each spacer changing this will result in a visual thickness change, in the Z-axis, of each "basepair".
|
||||||
|
spacer_increment_distance = 9; // [0:500]
|
||||||
|
// the height to which the spacers ascend to and then stop being produced.
|
||||||
|
spacer_increment_height = helix_height; // [0:500]
|
||||||
|
// the radius of the circle where the standing platform is located at the base of the helix.
|
||||||
|
base_platform_radius = 52.5; // [0:500]
|
||||||
|
base_platform_inner_radius = 47.5;
|
||||||
|
// the height of the above said platform.
|
||||||
|
base_platform_height = 20; // [0:100]
|
||||||
|
// the controls the number of sides the platform has, 0 defaults to 'fn'. 3, 4, 5, 6 ...
|
||||||
|
base_platform_shape = 6; // [0:50]
|
||||||
|
|
||||||
|
usb_mount_hole_spacing = 15; // 19-(2*2) ?
|
||||||
|
usb_mount_hole_dia = 2.0; // ?
|
||||||
|
usb_height = 4.1;
|
||||||
|
usb_rectangular_width = 11+1; //presumeably this is 19-4-4 = 11 plus one for wiggle room. needs testing.
|
||||||
|
text=true;
|
||||||
|
textdepth=2;
|
||||||
|
usb=false;
|
||||||
|
|
||||||
|
module logo(path,scale){
|
||||||
|
translate([0,0,0]){
|
||||||
|
scale([scale,scale,1]){
|
||||||
|
linear_extrude(textdepth){
|
||||||
|
import(path,center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module helix_basic(){
|
||||||
|
translate([-post_distance_apart,0,0]){
|
||||||
|
difference(){
|
||||||
|
circle(post_radius,$fn = fn);
|
||||||
|
if(usb){
|
||||||
|
circle(post_hole_radius,$fn = fn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([post_distance_apart,0,0]){
|
||||||
|
difference(){
|
||||||
|
circle(post_radius, $fn = fn);
|
||||||
|
if(usb){
|
||||||
|
circle(post_hole_radius, $fn = fn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
square([center_bridge_length,center_bridge_width],center = true);
|
||||||
|
}
|
||||||
|
// the basic 2D shape that the helix is extruded upon.
|
||||||
|
union(){
|
||||||
|
difference(){
|
||||||
|
linear_extrude(height = helix_height, twist = helix_twists, slices = helix_slices, scale = helix_scale){
|
||||||
|
helix_basic();
|
||||||
|
}
|
||||||
|
for (a = [ spacer_start : spacer_increment_distance : spacer_increment_height])
|
||||||
|
translate([0, 0, a]) {
|
||||||
|
linear_extrude(height = spacer_height, center = true){
|
||||||
|
circle(spacer_radius, $fn = fn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// elipsoids on top to cover up the led-holes:
|
||||||
|
rotate([0,0,helix_twists+90+2.1*post_radius-0.5]){
|
||||||
|
translate([post_distance_apart,0,helix_height])scale([1,1,0.25])sphere(r = post_radius, $fn = fn);
|
||||||
|
translate([-post_distance_apart,0,helix_height])scale([1,1,0.25])sphere(r = post_radius, $fn = fn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([0,0,-base_platform_height/2])difference(){
|
||||||
|
hull(){ // base
|
||||||
|
translate([0,0,base_platform_height/3])cylinder(r = base_platform_radius-(base_platform_height/2), h = base_platform_height/3, center = true, $fn = base_platform_shape);
|
||||||
|
translate([0,0,-base_platform_height/4])cylinder(r = base_platform_radius, h = base_platform_height/2, center = true, $fn = base_platform_shape);
|
||||||
|
}
|
||||||
|
if(usb){
|
||||||
|
translate([post_distance_apart,0,(base_platform_height/2)-(base_platform_height/4)])cylinder(r1 = post_hole_radius*2, r2 = post_hole_radius, h = base_platform_height/2+0.2, center = true, $fn = fn);
|
||||||
|
translate([-post_distance_apart,0,(base_platform_height/2)-(base_platform_height/4)])cylinder(r1 = post_hole_radius*2, r2 = post_hole_radius, h = base_platform_height/2+0.2, center = true, $fn = fn);
|
||||||
|
|
||||||
|
//bottom cutout narrow:
|
||||||
|
translate([0,0,-base_platform_height/2+0.01])cylinder(r = base_platform_inner_radius, h = base_platform_height, center = true, $fn = base_platform_shape);
|
||||||
|
//bottom cutout wide:
|
||||||
|
translate([0,0,-base_platform_height/2+1-0.01])cylinder(r = base_platform_inner_radius+2, h = 2, center = true, $fn = base_platform_shape);
|
||||||
|
// only draw usb-module-cutouts if desired:
|
||||||
|
|
||||||
|
// usb-module:
|
||||||
|
translate([0,base_platform_radius*0.75,- base_platform_height/6])rotate([90,0,0])cube([usb_rectangular_width,usb_height,15],center=true); //cylinder(d = usb_height, h = 10, center = true, $fn = fn);
|
||||||
|
// usb-screw-holes:
|
||||||
|
translate([usb_mount_hole_spacing/2,base_platform_radius*0.75,- base_platform_height/6])rotate([90,0,0])cylinder(d = usb_mount_hole_dia, h = 15, center = true, $fn = base_platform_shape);
|
||||||
|
translate([-usb_mount_hole_spacing/2,base_platform_radius*0.75,- base_platform_height/6])rotate([90,0,0])cylinder(d = usb_mount_hole_dia, h = 15, center = true, $fn = base_platform_shape);
|
||||||
|
}
|
||||||
|
if(text){
|
||||||
|
rotate([49,0,0]){
|
||||||
|
translate([0,-23.25,32.35]){
|
||||||
|
#logo("haystack_logo_final.svg",0.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// baseplate with pry-hole:
|
||||||
|
if(usb){
|
||||||
|
translate([0,0,-15]){
|
||||||
|
difference(){
|
||||||
|
translate([0,0,(-base_platform_height/2+1-0.01)])cylinder(r = base_platform_inner_radius+2, h = 2-0.2, center = true, $fn = base_platform_shape);
|
||||||
|
for (x = [ base_platform_radius*0.80 , -base_platform_radius*0.80 ])translate([0,x,(-base_platform_height/2+1-0.01)])cube([10,2,2+0.01], center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Binary file not shown.
@@ -3,23 +3,23 @@
|
|||||||
h=3; //height
|
h=3; //height
|
||||||
w=20; //width
|
w=20; //width
|
||||||
l=75; //lenght
|
l=75; //lenght
|
||||||
hd=7.5; //hole_dia
|
hd=w/2.25; //hole_dia
|
||||||
emd=1.25; // embossing depth
|
emd=1.25; // embossing depth
|
||||||
|
q=0.01; // minimal value to avoid visual glitches
|
||||||
$fn=100; //resolution
|
$fn=100; //resolution
|
||||||
// ###############
|
// ###############
|
||||||
difference(){
|
difference(){
|
||||||
translate([0,0,h/2*1]){
|
translate([0,0,h/2]){
|
||||||
hull(){
|
hull(){
|
||||||
translate([+(l-w)/2,0,0])cylinder(h=h,r=w/2,center=true,$fn=100);
|
for(x=[(l-w)/2,-(l-w)/2]){
|
||||||
translate([-(l-w)/2,0,0])cylinder(h=h,r=w/2,center=true,$fn=100);
|
translate([x,0,0])cylinder(h=h,r=w/2,center=true); // body
|
||||||
}
|
}}}
|
||||||
}
|
translate([-(l/2)+(w/3),0,h/2]){
|
||||||
translate([w/4,0,h-emd]){
|
cylinder(h=h+q,r=hd/2,center=true); // keychain-hole
|
||||||
scale([0.3,0.3,1]){
|
|
||||||
linear_extrude(height = h){
|
|
||||||
import("src/GONICUS-Logo_2022_logo-only.svg",center=true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
translate([w/4,0,h-emd]){
|
||||||
translate([-(l/2)+(w/3),0,h/2])cylinder(h=h+0.1,r=hd/2,center=true);
|
scale([0.4,0.4,1]){
|
||||||
}
|
linear_extrude(height = emd+q){
|
||||||
|
import("src/GONICUS-Logo_2022_logo-only-new.svg",center=true); // logo
|
||||||
|
}}}
|
||||||
|
}
|
@@ -0,0 +1,158 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="143.12636mm"
|
||||||
|
height="25.433369mm"
|
||||||
|
viewBox="0 0 143.12636 25.433369"
|
||||||
|
version="1.1"
|
||||||
|
id="svg1"
|
||||||
|
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||||
|
sodipodi:docname="GONICUS-Logo_2022_logo-only-new.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:zoom="1.036062"
|
||||||
|
inkscape:cx="377.87314"
|
||||||
|
inkscape:cy="63.220154"
|
||||||
|
inkscape:window-width="5120"
|
||||||
|
inkscape:window-height="1372"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1" />
|
||||||
|
<defs
|
||||||
|
id="defs1">
|
||||||
|
<clipPath
|
||||||
|
id="SVGID_2_">
|
||||||
|
<rect
|
||||||
|
id="use9"
|
||||||
|
x="148"
|
||||||
|
y="229.71001"
|
||||||
|
width="540.95001"
|
||||||
|
height="136.57001" />
|
||||||
|
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
id="clipPath1">
|
||||||
|
<rect
|
||||||
|
id="use1"
|
||||||
|
x="148"
|
||||||
|
y="229.71001"
|
||||||
|
width="540.95001"
|
||||||
|
height="136.57001" />
|
||||||
|
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
id="clipPath2">
|
||||||
|
<rect
|
||||||
|
id="use2"
|
||||||
|
x="148"
|
||||||
|
y="229.71001"
|
||||||
|
width="540.95001"
|
||||||
|
height="136.57001" />
|
||||||
|
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
id="clipPath3">
|
||||||
|
<rect
|
||||||
|
id="use3"
|
||||||
|
x="148"
|
||||||
|
y="229.71001"
|
||||||
|
width="540.95001"
|
||||||
|
height="136.57001" />
|
||||||
|
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
id="clipPath4">
|
||||||
|
<rect
|
||||||
|
id="use4"
|
||||||
|
x="148"
|
||||||
|
y="229.71001"
|
||||||
|
width="540.95001"
|
||||||
|
height="136.57001" />
|
||||||
|
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
id="clipPath5">
|
||||||
|
<rect
|
||||||
|
id="use5"
|
||||||
|
x="148"
|
||||||
|
y="229.71001"
|
||||||
|
width="540.95001"
|
||||||
|
height="136.57001" />
|
||||||
|
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-5.0263979,-131.7625)">
|
||||||
|
<g
|
||||||
|
id="g2-1"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,4.9386488,131.58535)"
|
||||||
|
inkscape:highlight-color="#aaaaaa">
|
||||||
|
<path
|
||||||
|
class="st0"
|
||||||
|
d="m 415.1,265.77 -10.5,58.68 h 26.88 l 10.5,-58.68 z m 6.45,-36.06 -4.13,23.06 h 26.87 l 4.13,-23.06 z"
|
||||||
|
id="path4-8"
|
||||||
|
style="display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
||||||
|
transform="translate(-147.66835,-228.54044)" />
|
||||||
|
<path
|
||||||
|
style="display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
||||||
|
id="path12-7"
|
||||||
|
clip-path="url(#SVGID_2_)"
|
||||||
|
d="m 316.76,324.45 17.09,-94.74 h 48.44 c 0,0 8.38,0.03 13.97,4.53 5.59,4.5 7.09,10.56 7.56,13.88 0.47,3.31 0.53,7.13 -0.63,13.56 -1.16,6.44 -11.31,62.78 -11.31,62.78 h -26.81 l 11.56,-64.41 c 0,0 2.03,-7.16 -6.41,-7.22 -8.44,-0.06 -13.69,-0.06 -13.69,-0.06 l -12.88,71.69 h -26.89 z"
|
||||||
|
class="st1"
|
||||||
|
transform="translate(-147.66835,-228.54044)" />
|
||||||
|
<path
|
||||||
|
style="display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
||||||
|
id="path14-9"
|
||||||
|
clip-path="url(#SVGID_2_)"
|
||||||
|
d="m 622.67,229.71 -17.09,94.74 h -48.44 c 0,0 -8.16,-0.31 -13.97,-4.53 -5.85,-4.26 -7.41,-9.26 -7.88,-12.57 -0.47,-3.31 -0.22,-8.43 0.94,-14.87 1.16,-6.44 11.31,-62.78 11.31,-62.78 h 26.81 l -11.56,64.41 c 0,0 -1.04,7.12 6.41,7.22 8.44,0.11 13.69,0.06 13.69,0.06 l 12.88,-71.69 h 26.9 z"
|
||||||
|
class="st1"
|
||||||
|
transform="translate(-147.66835,-228.54044)" />
|
||||||
|
<path
|
||||||
|
style="display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
||||||
|
id="path16-2"
|
||||||
|
clip-path="url(#SVGID_2_)"
|
||||||
|
d="m 637.22,229.71 h 26.94 c 0,0 -4.98,6.61 0.88,15.46 0,0 17.58,28.39 19.41,31.26 8.35,13.12 4.81,29.5 -8.09,38.49 -8.31,5.79 -15.69,8.75 -30.65,9.73 -7.79,0.51 -31.42,-0.2 -31.42,-0.2 l 4.19,-23.16 c 0,0 20.67,-0.04 22.98,-0.17 7.54,-0.42 12.41,-2.54 14.94,-7.95 2.51,-5.38 -1.07,-11.46 -4.07,-15.71 0,0 -15.42,-23.59 -16.17,-24.98 -0.75,-1.39 -3.92,-5.98 -2.92,-12.56 0.95,-6.23 3.98,-10.21 3.98,-10.21"
|
||||||
|
class="st1"
|
||||||
|
transform="translate(-147.66835,-228.54044)" />
|
||||||
|
<path
|
||||||
|
style="display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
||||||
|
id="path18-0"
|
||||||
|
clip-path="url(#SVGID_2_)"
|
||||||
|
d="m 203.5,260.25 c 0,0 2.03,-7.16 -6.41,-7.22 -4.3,-0.03 -7.77,-0.04 -10.15,-0.05 -3.71,0 -4.06,3.56 -4.06,3.56 l -6.78,37.77 c 0,0 -1.04,7.12 6.41,7.22 4.18,0.06 7.59,0.08 9.95,0.08 3.71,0 4.11,-2.82 4.23,-3.47 0.12,-0.66 0.88,-4.88 0.88,-4.88 h -13.15 l 3.14,-18.67 h 13.36 -0.09 26.84 c -1.51,8.37 -3.38,19.27 -5.11,28.85 -3.27,16.35 -15.77,21.21 -26.93,21.21 h -25.18 c 0,0 -8.17,-0.3 -13.97,-4.52 -5.86,-4.26 -7.41,-9.26 -7.88,-12.57 -0.47,-3.31 -0.22,-8.43 0.94,-14.87 0.74,-4.12 4.26,-23.66 7.35,-40.81 3.07,-14.14 12.46,-21.97 28.77,-21.97 h 23.49 c 0,0 8.37,0.02 13.97,4.52 5.59,4.5 7.09,10.57 7.56,13.88 0.45,3.23 0.53,6.93 -0.54,13.08 H 203.3 Z"
|
||||||
|
class="st1"
|
||||||
|
transform="translate(-147.66835,-228.54044)"
|
||||||
|
sodipodi:nodetypes="ccccccsccccccccsccsccscccccc" />
|
||||||
|
<path
|
||||||
|
style="display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
||||||
|
id="path20-2"
|
||||||
|
clip-path="url(#SVGID_2_)"
|
||||||
|
d="m 289.97,260.2 -2.58,14.39 c 0,0 -4.14,23.11 -4.22,23.55 -0.12,0.66 -0.52,3.47 -4.23,3.47 -2.36,0 -5.77,-0.02 -9.95,-0.08 -7.45,-0.1 -6.41,-7.22 -6.41,-7.22 l 6.78,-37.77 c 0,0 0.35,-3.56 4.05,-3.56 2.38,0.01 5.85,0.02 10.15,0.05 8.03,0.06 6.41,7.17 6.41,7.17 m 27.19,-11.89 c -0.47,-3.31 -1.97,-9.38 -7.56,-13.88 -5.6,-4.5 -13.97,-4.52 -13.97,-4.52 h -23.49 c -16.31,0 -25.7,7.83 -28.77,21.97 -3.09,17.15 -6.61,36.69 -7.35,40.81 -1.16,6.44 -1.41,11.56 -0.94,14.87 0.47,3.31 2.02,8.31 7.88,12.57 5.8,4.22 13.97,4.52 13.97,4.52 h 25.18 c 11.17,0 23.67,-4.85 26.93,-21.21 1.24,-6.85 2.54,-14.37 3.74,-21.15 l 4.03,-22.09 c 0.87,-5.45 0.77,-8.87 0.35,-11.89"
|
||||||
|
class="st1"
|
||||||
|
transform="translate(-147.66835,-228.54044)" />
|
||||||
|
<path
|
||||||
|
style="display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
||||||
|
id="path22-3"
|
||||||
|
clip-path="url(#SVGID_2_)"
|
||||||
|
d="m 498.56,287.81 c -0.93,5.18 -1.78,9.94 -1.82,10.14 -0.12,0.66 -0.52,3.47 -4.23,3.47 -2.36,0 -5.77,-0.02 -9.95,-0.08 -7.45,-0.1 -6.41,-7.22 -6.41,-7.22 l 6.78,-37.77 c 0,0 0.35,-3.56 4.05,-3.56 2.38,0.01 5.85,0.02 10.15,0.05 8.03,0.06 6.41,7.17 6.41,7.17 l -1.14,6.36 h 26.82 l 1.16,-6.36 c 0.87,-5.45 0.77,-8.87 0.35,-11.89 -0.47,-3.31 -1.97,-9.38 -7.56,-13.88 -5.6,-4.5 -13.97,-4.52 -13.97,-4.52 h -23.49 c -16.31,0 -25.7,7.83 -28.77,21.97 -3.09,17.15 -6.61,36.69 -7.35,40.81 -1.16,6.44 -1.41,11.56 -0.94,14.87 0.47,3.31 2.02,8.31 7.88,12.57 5.8,4.22 13.97,4.52 13.97,4.52 h 25.18 c 11.17,0 23.67,-4.85 26.93,-21.21 0.9,-4.97 1.83,-10.29 2.73,-15.43 h -26.78 z"
|
||||||
|
class="st1"
|
||||||
|
transform="translate(-147.66835,-228.54044)" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.0 KiB |
@@ -1,21 +1,42 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<svg
|
<svg
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="enable-background:new 0 0 841.89 595.28;"
|
style="enable-background:new 0 0 841.89 595.28;"
|
||||||
viewBox="0 0 841.89 595.28"
|
viewBox="0 0 841.89 595.28"
|
||||||
y="0px"
|
y="0px"
|
||||||
x="0px"
|
x="0px"
|
||||||
id="Ebene_1"
|
id="Ebene_1"
|
||||||
version="1.1"><metadata
|
version="1.1"
|
||||||
|
sodipodi:docname="GONICUS-Logo_2022_logo-only.svg"
|
||||||
|
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"><sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="1.9537024"
|
||||||
|
inkscape:cx="420.99555"
|
||||||
|
inkscape:cy="297.64001"
|
||||||
|
inkscape:window-width="5120"
|
||||||
|
inkscape:window-height="1372"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="Ebene_1" /><metadata
|
||||||
id="metadata33"><rdf:RDF><cc:Work
|
id="metadata33"><rdf:RDF><cc:Work
|
||||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||||
id="defs31">
|
id="defs31">
|
||||||
<defs
|
<defs
|
||||||
id="defs7">
|
id="defs7">
|
||||||
@@ -49,38 +70,40 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<g
|
<g
|
||||||
id="g861"><path
|
id="g861"
|
||||||
|
style="fill:#000000"><path
|
||||||
class="st0"
|
class="st0"
|
||||||
d="M415.1,265.77l-10.5,58.68h26.88l10.5-58.68H415.1z M421.55,229.71l-4.13,23.06h26.87l4.13-23.06H421.55z"
|
d="M415.1,265.77l-10.5,58.68h26.88l10.5-58.68H415.1z M421.55,229.71l-4.13,23.06h26.87l4.13-23.06H421.55z"
|
||||||
id="path4" /><path
|
id="path4"
|
||||||
style="fill:#213a8f"
|
style="fill:#000000" /><path
|
||||||
|
style="fill:#000000"
|
||||||
id="path12"
|
id="path12"
|
||||||
clip-path="url(#SVGID_2_)"
|
clip-path="url(#SVGID_2_)"
|
||||||
d="m 316.76,324.45 17.09,-94.74 h 48.44 c 0,0 8.38,0.03 13.97,4.53 5.59,4.5 7.09,10.56 7.56,13.88 0.47,3.31 0.53,7.13 -0.63,13.56 -1.16,6.44 -11.31,62.78 -11.31,62.78 h -26.81 l 11.56,-64.41 c 0,0 2.03,-7.16 -6.41,-7.22 -8.44,-0.06 -13.69,-0.06 -13.69,-0.06 l -12.88,71.69 h -26.89 z"
|
d="m 316.76,324.45 17.09,-94.74 h 48.44 c 0,0 8.38,0.03 13.97,4.53 5.59,4.5 7.09,10.56 7.56,13.88 0.47,3.31 0.53,7.13 -0.63,13.56 -1.16,6.44 -11.31,62.78 -11.31,62.78 h -26.81 l 11.56,-64.41 c 0,0 2.03,-7.16 -6.41,-7.22 -8.44,-0.06 -13.69,-0.06 -13.69,-0.06 l -12.88,71.69 h -26.89 z"
|
||||||
class="st1" /><path
|
class="st1" /><path
|
||||||
style="fill:#213a8f"
|
style="fill:#000000"
|
||||||
id="path14"
|
id="path14"
|
||||||
clip-path="url(#SVGID_2_)"
|
clip-path="url(#SVGID_2_)"
|
||||||
d="m 622.67,229.71 -17.09,94.74 h -48.44 c 0,0 -8.16,-0.31 -13.97,-4.53 -5.85,-4.26 -7.41,-9.26 -7.88,-12.57 -0.47,-3.31 -0.22,-8.43 0.94,-14.87 1.16,-6.44 11.31,-62.78 11.31,-62.78 h 26.81 l -11.56,64.41 c 0,0 -1.04,7.12 6.41,7.22 8.44,0.11 13.69,0.06 13.69,0.06 l 12.88,-71.69 h 26.9 z"
|
d="m 622.67,229.71 -17.09,94.74 h -48.44 c 0,0 -8.16,-0.31 -13.97,-4.53 -5.85,-4.26 -7.41,-9.26 -7.88,-12.57 -0.47,-3.31 -0.22,-8.43 0.94,-14.87 1.16,-6.44 11.31,-62.78 11.31,-62.78 h 26.81 l -11.56,64.41 c 0,0 -1.04,7.12 6.41,7.22 8.44,0.11 13.69,0.06 13.69,0.06 l 12.88,-71.69 h 26.9 z"
|
||||||
class="st1" /><path
|
class="st1" /><path
|
||||||
style="fill:#213a8f"
|
style="fill:#000000"
|
||||||
id="path16"
|
id="path16"
|
||||||
clip-path="url(#SVGID_2_)"
|
clip-path="url(#SVGID_2_)"
|
||||||
d="m 637.22,229.71 h 26.94 c 0,0 -4.98,6.61 0.88,15.46 0,0 17.58,28.39 19.41,31.26 8.35,13.12 4.81,29.5 -8.09,38.49 -8.31,5.79 -15.69,8.75 -30.65,9.73 -7.79,0.51 -31.42,-0.2 -31.42,-0.2 l 4.19,-23.16 c 0,0 20.67,-0.04 22.98,-0.17 7.54,-0.42 12.41,-2.54 14.94,-7.95 2.51,-5.38 -1.07,-11.46 -4.07,-15.71 0,0 -15.42,-23.59 -16.17,-24.98 -0.75,-1.39 -3.92,-5.98 -2.92,-12.56 0.95,-6.23 3.98,-10.21 3.98,-10.21"
|
d="m 637.22,229.71 h 26.94 c 0,0 -4.98,6.61 0.88,15.46 0,0 17.58,28.39 19.41,31.26 8.35,13.12 4.81,29.5 -8.09,38.49 -8.31,5.79 -15.69,8.75 -30.65,9.73 -7.79,0.51 -31.42,-0.2 -31.42,-0.2 l 4.19,-23.16 c 0,0 20.67,-0.04 22.98,-0.17 7.54,-0.42 12.41,-2.54 14.94,-7.95 2.51,-5.38 -1.07,-11.46 -4.07,-15.71 0,0 -15.42,-23.59 -16.17,-24.98 -0.75,-1.39 -3.92,-5.98 -2.92,-12.56 0.95,-6.23 3.98,-10.21 3.98,-10.21"
|
||||||
class="st1" /><path
|
class="st1" /><path
|
||||||
style="fill:#213a8f"
|
style="fill:#000000"
|
||||||
id="path18"
|
id="path18"
|
||||||
clip-path="url(#SVGID_2_)"
|
clip-path="url(#SVGID_2_)"
|
||||||
d="m 203.5,260.25 c 0,0 2.03,-7.16 -6.41,-7.22 -4.3,-0.03 -7.77,-0.04 -10.15,-0.05 -3.71,0 -4.06,3.56 -4.06,3.56 l -6.78,37.77 c 0,0 -1.04,7.12 6.41,7.22 4.18,0.06 7.59,0.08 9.95,0.08 3.71,0 4.11,-2.82 4.23,-3.47 0.12,-0.66 0.88,-4.88 0.88,-4.88 h -13.15 l 3.14,-18.67 h 13.36 -0.09 26.84 c -1.51,8.37 -3.38,19.27 -5.11,28.85 -3.27,16.35 -15.77,21.21 -26.93,21.21 h -25.18 c 0,0 -8.17,-0.3 -13.97,-4.52 -5.86,-4.26 -7.41,-9.26 -7.88,-12.57 -0.47,-3.31 -0.22,-8.43 0.94,-14.87 0.74,-4.12 4.26,-23.66 7.35,-40.81 3.07,-14.14 12.46,-21.97 28.77,-21.97 h 23.49 c 0,0 8.37,0.02 13.97,4.52 5.59,4.5 7.09,10.57 7.56,13.88 0.45,3.23 0.53,6.93 -0.54,13.08 H 203.3 Z"
|
d="m 203.5,260.25 c 0,0 2.03,-7.16 -6.41,-7.22 -4.3,-0.03 -7.77,-0.04 -10.15,-0.05 -3.71,0 -4.06,3.56 -4.06,3.56 l -6.78,37.77 c 0,0 -1.04,7.12 6.41,7.22 4.18,0.06 7.59,0.08 9.95,0.08 3.71,0 4.11,-2.82 4.23,-3.47 0.12,-0.66 0.88,-4.88 0.88,-4.88 h -13.15 l 3.14,-18.67 h 13.36 -0.09 26.84 c -1.51,8.37 -3.38,19.27 -5.11,28.85 -3.27,16.35 -15.77,21.21 -26.93,21.21 h -25.18 c 0,0 -8.17,-0.3 -13.97,-4.52 -5.86,-4.26 -7.41,-9.26 -7.88,-12.57 -0.47,-3.31 -0.22,-8.43 0.94,-14.87 0.74,-4.12 4.26,-23.66 7.35,-40.81 3.07,-14.14 12.46,-21.97 28.77,-21.97 h 23.49 c 0,0 8.37,0.02 13.97,4.52 5.59,4.5 7.09,10.57 7.56,13.88 0.45,3.23 0.53,6.93 -0.54,13.08 H 203.3 Z"
|
||||||
class="st1" /><path
|
class="st1" /><path
|
||||||
style="fill:#213a8f"
|
style="fill:#000000"
|
||||||
id="path20"
|
id="path20"
|
||||||
clip-path="url(#SVGID_2_)"
|
clip-path="url(#SVGID_2_)"
|
||||||
d="m 289.97,260.2 -2.58,14.39 c 0,0 -4.14,23.11 -4.22,23.55 -0.12,0.66 -0.52,3.47 -4.23,3.47 -2.36,0 -5.77,-0.02 -9.95,-0.08 -7.45,-0.1 -6.41,-7.22 -6.41,-7.22 l 6.78,-37.77 c 0,0 0.35,-3.56 4.05,-3.56 2.38,0.01 5.85,0.02 10.15,0.05 8.03,0.06 6.41,7.17 6.41,7.17 m 27.19,-11.89 c -0.47,-3.31 -1.97,-9.38 -7.56,-13.88 -5.6,-4.5 -13.97,-4.52 -13.97,-4.52 h -23.49 c -16.31,0 -25.7,7.83 -28.77,21.97 -3.09,17.15 -6.61,36.69 -7.35,40.81 -1.16,6.44 -1.41,11.56 -0.94,14.87 0.47,3.31 2.02,8.31 7.88,12.57 5.8,4.22 13.97,4.52 13.97,4.52 h 25.18 c 11.17,0 23.67,-4.85 26.93,-21.21 1.24,-6.85 2.54,-14.37 3.74,-21.15 l 4.03,-22.09 c 0.87,-5.45 0.77,-8.87 0.35,-11.89"
|
d="m 289.97,260.2 -2.58,14.39 c 0,0 -4.14,23.11 -4.22,23.55 -0.12,0.66 -0.52,3.47 -4.23,3.47 -2.36,0 -5.77,-0.02 -9.95,-0.08 -7.45,-0.1 -6.41,-7.22 -6.41,-7.22 l 6.78,-37.77 c 0,0 0.35,-3.56 4.05,-3.56 2.38,0.01 5.85,0.02 10.15,0.05 8.03,0.06 6.41,7.17 6.41,7.17 m 27.19,-11.89 c -0.47,-3.31 -1.97,-9.38 -7.56,-13.88 -5.6,-4.5 -13.97,-4.52 -13.97,-4.52 h -23.49 c -16.31,0 -25.7,7.83 -28.77,21.97 -3.09,17.15 -6.61,36.69 -7.35,40.81 -1.16,6.44 -1.41,11.56 -0.94,14.87 0.47,3.31 2.02,8.31 7.88,12.57 5.8,4.22 13.97,4.52 13.97,4.52 h 25.18 c 11.17,0 23.67,-4.85 26.93,-21.21 1.24,-6.85 2.54,-14.37 3.74,-21.15 l 4.03,-22.09 c 0.87,-5.45 0.77,-8.87 0.35,-11.89"
|
||||||
class="st1" /><path
|
class="st1" /><path
|
||||||
style="fill:#213a8f"
|
style="fill:#000000"
|
||||||
id="path22"
|
id="path22"
|
||||||
clip-path="url(#SVGID_2_)"
|
clip-path="url(#SVGID_2_)"
|
||||||
d="m 498.56,287.81 c -0.93,5.18 -1.78,9.94 -1.82,10.14 -0.12,0.66 -0.52,3.47 -4.23,3.47 -2.36,0 -5.77,-0.02 -9.95,-0.08 -7.45,-0.1 -6.41,-7.22 -6.41,-7.22 l 6.78,-37.77 c 0,0 0.35,-3.56 4.05,-3.56 2.38,0.01 5.85,0.02 10.15,0.05 8.03,0.06 6.41,7.17 6.41,7.17 l -1.14,6.36 h 26.82 l 1.16,-6.36 c 0.87,-5.45 0.77,-8.87 0.35,-11.89 -0.47,-3.31 -1.97,-9.38 -7.56,-13.88 -5.6,-4.5 -13.97,-4.52 -13.97,-4.52 h -23.49 c -16.31,0 -25.7,7.83 -28.77,21.97 -3.09,17.15 -6.61,36.69 -7.35,40.81 -1.16,6.44 -1.41,11.56 -0.94,14.87 0.47,3.31 2.02,8.31 7.88,12.57 5.8,4.22 13.97,4.52 13.97,4.52 h 25.18 c 11.17,0 23.67,-4.85 26.93,-21.21 0.9,-4.97 1.83,-10.29 2.73,-15.43 h -26.78 z"
|
d="m 498.56,287.81 c -0.93,5.18 -1.78,9.94 -1.82,10.14 -0.12,0.66 -0.52,3.47 -4.23,3.47 -2.36,0 -5.77,-0.02 -9.95,-0.08 -7.45,-0.1 -6.41,-7.22 -6.41,-7.22 l 6.78,-37.77 c 0,0 0.35,-3.56 4.05,-3.56 2.38,0.01 5.85,0.02 10.15,0.05 8.03,0.06 6.41,7.17 6.41,7.17 l -1.14,6.36 h 26.82 l 1.16,-6.36 c 0.87,-5.45 0.77,-8.87 0.35,-11.89 -0.47,-3.31 -1.97,-9.38 -7.56,-13.88 -5.6,-4.5 -13.97,-4.52 -13.97,-4.52 h -23.49 c -16.31,0 -25.7,7.83 -28.77,21.97 -3.09,17.15 -6.61,36.69 -7.35,40.81 -1.16,6.44 -1.41,11.56 -0.94,14.87 0.47,3.31 2.02,8.31 7.88,12.57 5.8,4.22 13.97,4.52 13.97,4.52 h 25.18 c 11.17,0 23.67,-4.85 26.93,-21.21 0.9,-4.97 1.83,-10.29 2.73,-15.43 h -26.78 z"
|
||||||
class="st1" /></g>
|
class="st1" /></g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 5.6 KiB |
@@ -8,18 +8,18 @@ https://git.kostianix.de/zeus/3d-stuff/src/branch/main/openscad/own/kitt-matrix
|
|||||||
// VARS:
|
// VARS:
|
||||||
$fn=25; // overall render quality
|
$fn=25; // overall render quality
|
||||||
q=0.01; // only used to get rid of visual glitches. can be set to 0 for productive exports.
|
q=0.01; // only used to get rid of visual glitches. can be set to 0 for productive exports.
|
||||||
mt=9; // material thickness, NOT overall thickness in case of a rim!
|
mt=10; // material thickness, NOT overall thickness in case of a rim!
|
||||||
pt=3; // panel thickness
|
pt=3; // panel thickness
|
||||||
mt_inner=2; // constrained wall thickness for inside-walls between LEDs
|
mt_inner=2; // constrained wall thickness for inside-walls between LEDs
|
||||||
panel_w=67; // overall width of led panel
|
panel_w=68; // overall width of led panel
|
||||||
panel_h=66; // same for height
|
panel_h=67; // same for height
|
||||||
panel_t_pcb=1.5; // height of PCB
|
panel_t_pcb=1.5; // height of PCB
|
||||||
panel_t_led=1.5; // height of the soldered LED modules
|
panel_t_led=1.5; // height of the soldered LED modules
|
||||||
panel_t=(panel_t_pcb+panel_t_led); // overall thickness of the PCB+LEDs (~50:50)
|
panel_t=(panel_t_pcb+panel_t_led); // overall thickness of the PCB+LEDs (~50:50)
|
||||||
led_spacing_x=8.5; // center-to-center spacing from LED to next LED, in width/x-axis-direction
|
led_spacing_x=8.5; // center-to-center spacing from LED to next LED, in width/x-axis-direction
|
||||||
led_spacing_y=8; // same for height/Y-axis
|
led_spacing_y=8.3; // same for height/Y-axis
|
||||||
led_w=4.5+1.5;
|
led_w=7;
|
||||||
led_h=5+1;
|
led_h=7;
|
||||||
led_num_x=8;
|
led_num_x=8;
|
||||||
led_num_y=8;
|
led_num_y=8;
|
||||||
offset_left=((panel_w-((led_num_x*led_w)+((led_num_x-1)*(led_spacing_x-led_w))))/2); // offset on one side (effectively "panel_w-e2e_x/2", but properly calculated)
|
offset_left=((panel_w-((led_num_x*led_w)+((led_num_x-1)*(led_spacing_x-led_w))))/2); // offset on one side (effectively "panel_w-e2e_x/2", but properly calculated)
|
||||||
@@ -33,6 +33,7 @@ conhole_taper_h=2; // is this needed?
|
|||||||
conhole_i_d=2.75; // should fit M3
|
conhole_i_d=2.75; // should fit M3
|
||||||
conhole_offset=3.5; //offset from outer perimeter
|
conhole_offset=3.5; //offset from outer perimeter
|
||||||
cutout_w=10;
|
cutout_w=10;
|
||||||
|
mnthole_d=5;
|
||||||
//echo("offset left is ",offset_left);
|
//echo("offset left is ",offset_left);
|
||||||
//echo("offset top is ",offset_top);
|
//echo("offset top is ",offset_top);
|
||||||
|
|
||||||
@@ -74,33 +75,59 @@ module panelholder(){
|
|||||||
//translate([0,0,-panel_t_led*3])cube([panel_w,panel_h,(panel_t+(panel_t_led*3))],center=true);
|
//translate([0,0,-panel_t_led*3])cube([panel_w,panel_h,(panel_t+(panel_t_led*3))],center=true);
|
||||||
// screwholes for M3
|
// screwholes for M3
|
||||||
for (
|
for (
|
||||||
pos_x=[-(panel_w+mt)/2+conhole_offset,
|
pos_x=[-(panel_w+mt)/2+conhole_offset+mt/2,
|
||||||
(panel_w+mt)/2-conhole_offset],
|
(panel_w+mt)/2-conhole_offset-mt/2],
|
||||||
pos_y=[-(panel_h+mt)/2+conhole_offset,
|
pos_y=[-(panel_h+mt)/2+conhole_offset,
|
||||||
(panel_h+mt)/2-conhole_offset]
|
(panel_h+mt)/2-conhole_offset]
|
||||||
)
|
)
|
||||||
translate([pos_x,pos_y,-1])
|
translate([pos_x,pos_y,-1])
|
||||||
#cylinder(d=conhole_i_d,h=(panel_t+(panel_t_led*3)+q),center=true);
|
cylinder(d=conhole_i_d,h=(panel_t+(panel_t_led*3)+q),center=true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module panelframe(){
|
module panelframe(){
|
||||||
translate([0,0,panel_t_pcb])difference(){
|
translate([0,0,panel_t_pcb])difference(){
|
||||||
cube([panel_w+mt,panel_h+mt,(panel_t+(panel_t_led*8))],center=true);
|
cube([panel_w+mt,panel_h+mt,(panel_t+(panel_t_led*8))],center=true);
|
||||||
translate([cutout_w/2,0,pt])cube([panel_w-(offset_left*2)+cutout_w,panel_h-(offset_top*2),(panel_t+(panel_t_led*8))+q],center=true);
|
translate([0,0,pt])cube([panel_w-(offset_left*2)-q,panel_h-(offset_top*2)-q,(panel_t+(panel_t_led*8))+q],center=true);
|
||||||
|
// mounting-holes for sandwich-ing
|
||||||
for (
|
for (
|
||||||
pos_x=[-(panel_w+mt)/2+conhole_offset,
|
pos_x=[-(panel_w+mt)/2+conhole_offset+mt/2,
|
||||||
(panel_w+mt)/2-conhole_offset],
|
(panel_w+mt)/2-conhole_offset-mt/2],
|
||||||
pos_y=[-(panel_h+mt)/2+conhole_offset,
|
pos_y=[-(panel_h+mt)/2+conhole_offset,
|
||||||
(panel_h+mt)/2-conhole_offset])
|
(panel_h+mt)/2-conhole_offset])
|
||||||
{
|
{
|
||||||
translate([pos_x,pos_y,0])cylinder(d=conhole_d,h=(panel_t+(panel_t_led*8))+q,center=true);
|
translate([pos_x,pos_y,0])cylinder(d=conhole_d,h=(panel_t+(panel_t_led*8))+q,center=true);
|
||||||
translate([pos_x,pos_y,-(panel_t+(panel_t_led*8))/2+conhole_taper_h/2])cylinder(d2=conhole_d,d1=conhole_d*1.5,h=conhole_taper_h+q,center=true);
|
translate([pos_x,pos_y,-(panel_t+(panel_t_led*8))/2+conhole_taper_h/2])cylinder(d2=conhole_d,d1=conhole_d*1.5,h=conhole_taper_h+q,center=true);
|
||||||
}
|
}
|
||||||
|
// keyholes for mounting-screws.
|
||||||
|
// mirror([90,0,0])
|
||||||
|
for (
|
||||||
|
pos_x= [-(panel_h/2-mnthole_d*2)],
|
||||||
|
pos_x2=[-(panel_h/2-mnthole_d*5)],
|
||||||
|
pos_y= [-(panel_h/2-mnthole_d*2),0,(panel_h/2-mnthole_d*2)])
|
||||||
|
{
|
||||||
|
hull(){
|
||||||
|
translate([pos_x,pos_y,-mt/2])cylinder(d=mnthole_d,h=mt+q,center=true);
|
||||||
|
translate([pos_x2,pos_y,-mt/2])cylinder(d=mnthole_d,h=mt+q,center=true);
|
||||||
|
}
|
||||||
|
translate([pos_x2,pos_y,-mt/2])cylinder(d=mnthole_d*2,h=mt+q,center=true);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ##########################################
|
// ##########################################
|
||||||
|
|
||||||
// DRAW MODEL:
|
// DRAW MODEL:
|
||||||
panelholder();
|
difference(){
|
||||||
translate([0,0,-(panel_t+(panel_t_led*3))-50])panelframe();
|
union(){
|
||||||
|
panelholder();
|
||||||
|
translate([0,0,-(panel_t+(panel_t_led*3))-5])panelframe();
|
||||||
|
translate([panel_h+mt*2,0,0]){
|
||||||
|
panelholder();
|
||||||
|
translate([0,0,-(panel_t+(panel_t_led*3))-5])panelframe();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (x=[-10:1:10])
|
||||||
|
translate([panel_h,x,-12.5])rotate([0,90,0])rotate([0,0,90])cylinder(h=(2.5*panel_h),d=6,center=true,$fn=6);
|
||||||
|
translate([panel_h/2+mt,0,-5])cube([mt*2-1.5,100,30],center=true);
|
||||||
|
}
|
Binary file not shown.
BIN
openscad/own/kitt-matrix/stl/kitt-matrix_draft2.stl
Normal file
BIN
openscad/own/kitt-matrix/stl/kitt-matrix_draft2.stl
Normal file
Binary file not shown.
BIN
openscad/own/kitt-matrix/stl/kitt-matrix_draft3.stl
Normal file
BIN
openscad/own/kitt-matrix/stl/kitt-matrix_draft3.stl
Normal file
Binary file not shown.
Reference in New Issue
Block a user