Compare commits

...

11 Commits

Author SHA1 Message Date
9588b3fe8c refined helix 2025-07-13 17:59:00 +02:00
f1c385f5dd corrected svg issues, reduced code 2025-07-13 17:58:29 +02:00
8d1c96b3ee minor changes 2025-03-14 13:48:05 +01:00
4e39e68a14 added first version of customized dna-helix 2025-03-14 13:32:08 +01:00
76809106ce interation 3 with more slop 2024-08-18 16:11:30 +02:00
5e18e5733c interation 3 with more slop 2024-08-18 15:26:12 +02:00
28f352e5f9 interation 2 with more slop 2024-08-18 13:32:23 +02:00
cbf18e926d interation 2 with more slop 2024-08-18 13:25:04 +02:00
7a7fbd1f4e kitt matrix improvements 2024-08-17 21:25:15 +02:00
edefeee886 added kitt matrix 2024-08-17 20:34:19 +02:00
d4258527b8 minor corrections 2024-08-17 20:34:05 +02:00
17 changed files with 636 additions and 33 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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);
}
}
}

View File

@@ -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]){
cylinder(h=h+q,r=hd/2,center=true); // keychain-hole
} }
}
translate([w/4,0,h-emd]){ translate([w/4,0,h-emd]){
scale([0.3,0.3,1]){ scale([0.4,0.4,1]){
linear_extrude(height = h){ linear_extrude(height = emd+q){
import("src/GONICUS-Logo_2022_logo-only.svg",center=true); import("src/GONICUS-Logo_2022_logo-only-new.svg",center=true); // logo
} }}}
}
}
translate([-(l/2)+(w/3),0,h/2])cylinder(h=h+0.1,r=hd/2,center=true);
} }

View File

@@ -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

View File

@@ -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,36 +70,38 @@
</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"

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -36,10 +36,10 @@ module panel(){
translate([0,0,-q])cylinder(d=magnet_dia,h=magnet_h); translate([0,0,-q])cylinder(d=magnet_dia,h=magnet_h);
} }
if (magnet_count>1){ if (magnet_count>1){
for (m=[1:360/magnet_count:359]){ for (m=[0:360/magnet_count:360]){
rotate([0,0,m]){ rotate([0,0,m]){
translate([panel_dia/4,0,-q]){ translate([panel_dia/4,0,-q]){
cylinder(d=magnet_dia,h=magnet_h); #cylinder(d=magnet_dia,h=magnet_h);
} }
} }
} }

View File

@@ -0,0 +1,133 @@
/*
Case for LED-Matrix of the KITT-Voice-Assistant
by zeus - 2024-08-17 - CC-BY-SA-NC-4.0
https://git.kostianix.de/zeus/3d-stuff/src/branch/main/openscad/own/kitt-matrix
*/
// ##########################################
// VARS:
$fn=25; // overall render quality
q=0.01; // only used to get rid of visual glitches. can be set to 0 for productive exports.
mt=10; // material thickness, NOT overall thickness in case of a rim!
pt=3; // panel thickness
mt_inner=2; // constrained wall thickness for inside-walls between LEDs
panel_w=68; // overall width of led panel
panel_h=67; // same for height
panel_t_pcb=1.5; // height of PCB
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)
led_spacing_x=8.5; // center-to-center spacing from LED to next LED, in width/x-axis-direction
led_spacing_y=8.3; // same for height/Y-axis
led_w=7;
led_h=7;
led_num_x=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_top= ((panel_h-((led_num_y*led_h)+((led_num_y-1)*(led_spacing_y-led_h))))/2); // offset on one side (effectively "panel_h-e2e_y/2", but properly calculated)
e2e_x=64; // width/x-axis edge-to-edge-distance from beginning of first to end of last LED (LED-Case, not soldering-points). for reference only
e2e_y=61.75; // same for height/Y-axis
conhole_d=4; // connection hole between frame parts
conhole_taper_h=2; // is this needed?
conhole_i_d=2.75; // should fit M3
conhole_offset=3.5; //offset from outer perimeter
cutout_w=10;
mnthole_d=5;
//echo("offset left is ",offset_left);
//echo("offset top is ",offset_top);
// ##########################################
// MODULES:
module panel(){
// PCB:
cube([panel_w,panel_h,panel_t_pcb+q],center=true);
// overcomplicated "for" to determine the exact positions of the LEDs on the board.
// The LEDs themselves are not needed for rendering
// LEDs:
/*
for (num_x=[0:led_spacing_x:led_spacing_x*(led_num_x-1)],num_y=[0:led_spacing_y:led_spacing_y*(led_num_y-1)])
translate([-(panel_w/2-led_w/2)+offset_left+num_x,-(panel_h/2-led_h/2)+offset_top+num_y,panel_t_led])color( "#ff0000" )cube([led_w,led_h,panel_t_led],center=true);
*/
// "lightpipes":
// left column (span 2 wide each)
for (num_x=[0:led_spacing_x:led_spacing_x*(led_num_x-1)],num_y=[0:led_spacing_y])
translate([-(panel_w/2-led_w/2)+offset_left+num_x,-(panel_h/2-led_h/2)+offset_top+num_y,panel_t_pcb+panel_t_led*1.5])color( "#00ff00" )cube([led_w,led_h,panel_t_led*4+q],center=true);
// center column (span 2 wide each)
for (num_x=[0:led_spacing_x:led_spacing_x*(led_num_x-1)],num_y=[led_spacing_y*3:led_spacing_y*4])
translate([-(panel_w/2-led_w/2)+offset_left+num_x,-(panel_h/2-led_h/2)+offset_top+num_y,panel_t_pcb+panel_t_led*1.5])color( "#00ff00" )cube([led_w,led_h,panel_t_led*4+q],center=true);
// right column (span 2 wide each)
for (num_x=[0:led_spacing_x:led_spacing_x*(led_num_x-1)],num_y=[led_spacing_y*6:led_spacing_y*7])
translate([-(panel_w/2-led_w/2)+offset_left+num_x,-(panel_h/2-led_h/2)+offset_top+num_y,panel_t_pcb+panel_t_led*1.5])color( "#00ff00" )cube([led_w,led_h,panel_t_led*4+q],center=true);
// smaller inbetween columns (span 1 wide each)
for (num_x=[0:led_spacing_x:led_spacing_x*(led_num_x-1)],num_y=[led_spacing_y*2,led_spacing_y*5])
translate([-(panel_w/2-led_w/2)+offset_left+num_x,-(panel_h/2-led_h/2)+offset_top+num_y,panel_t_pcb+panel_t_led*1.5])color( "#00ff00" )cube([led_w,led_h,panel_t_led*4+q],center=true);
}
module panelholder(){
translate([0,0,panel_t_pcb])difference(){
cube([panel_w+mt,panel_h+mt,(panel_t+(panel_t_pcb+panel_t_led*2))],center=true);
translate([0,0,-(panel_t_pcb+panel_t_led)])
panel();
//translate([0,0,-panel_t_led*3])cube([panel_w,panel_h,(panel_t+(panel_t_led*3))],center=true);
// screwholes for M3
for (
pos_x=[-(panel_w+mt)/2+conhole_offset+mt/2,
(panel_w+mt)/2-conhole_offset-mt/2],
pos_y=[-(panel_h+mt)/2+conhole_offset,
(panel_h+mt)/2-conhole_offset]
)
translate([pos_x,pos_y,-1])
cylinder(d=conhole_i_d,h=(panel_t+(panel_t_led*3)+q),center=true);
}
}
module panelframe(){
translate([0,0,panel_t_pcb])difference(){
cube([panel_w+mt,panel_h+mt,(panel_t+(panel_t_led*8))],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 (
pos_x=[-(panel_w+mt)/2+conhole_offset+mt/2,
(panel_w+mt)/2-conhole_offset-mt/2],
pos_y=[-(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,-(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:
difference(){
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.

Binary file not shown.

Binary file not shown.