Initial import
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
*.stl filter=lfs diff=lfs merge=lfs -text
|
||||
*.STL filter=lfs diff=lfs merge=lfs -text
|
||||
*.3mf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,73 @@
|
||||
// https://en.wikipedia.org/wiki/Bitruncated_cubic_honeycomb
|
||||
|
||||
module _trunc_octa() {
|
||||
octapoints = [
|
||||
[+1, 0, 0],
|
||||
[-1, 0, 0],
|
||||
[0, +1, 0],
|
||||
[0, -1, 0],
|
||||
[0, 0, +1],
|
||||
[0, 0, -1]
|
||||
];
|
||||
|
||||
octafaces = [
|
||||
[4, 2, 0],
|
||||
[4, 0, 3],
|
||||
[4, 3, 1],
|
||||
[4, 1, 2],
|
||||
[5, 0, 2],
|
||||
[5, 3, 0],
|
||||
[5, 1, 3],
|
||||
[5, 2, 1]
|
||||
];
|
||||
|
||||
intersection() {
|
||||
scale(3) {
|
||||
polyhedron(points=octapoints, faces=octafaces);
|
||||
}
|
||||
|
||||
cube(size=4, center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module _hollow_trunc_octa(wall) {
|
||||
difference() {
|
||||
_trunc_octa();
|
||||
|
||||
scale(1 - wall)
|
||||
_trunc_octa();
|
||||
}
|
||||
}
|
||||
|
||||
module _3d_honeycomb(cells, wall) {
|
||||
translate([2, 2, 2])
|
||||
for (xi = [0 : cells[0] - 1]) {
|
||||
translate([xi * 4, 0, 0])
|
||||
for (yi = [0 : cells[1] - 1]) {
|
||||
translate([0, yi * 4, 0])
|
||||
for (zi = [0 : cells[2] - 1]) {
|
||||
offset = (zi % 2 == 0) ? 0 : 2;
|
||||
|
||||
translate([offset, offset, zi * 2])
|
||||
_hollow_trunc_octa(wall=wall);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module 3d_honeycomb(dims, wall=0.2) {
|
||||
intersection() {
|
||||
translate([-2, -2, -2])
|
||||
rotate([45, 0, 0])
|
||||
_3d_honeycomb([
|
||||
ceil(dims[0] / 4) + 1,
|
||||
ceil(dims[1] / 4) + 1,
|
||||
ceil(dims[2] / 2) + 1,
|
||||
], wall=wall);
|
||||
|
||||
cube(dims);
|
||||
}
|
||||
}
|
||||
|
||||
//scale(2)
|
||||
3d_honeycomb([16, 16, 16], wall=0.1);
|
||||
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
This thing was created by Thingiverse user CreativeTools, and is licensed under Creative Commons - Attribution - No Derivatives
|
||||
+1
@@ -0,0 +1 @@
|
||||
#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se by CreativeTools on Thingiverse: https://www.thingiverse.com/thing:763622
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
|
After Width: | Height: | Size: 359 KiB |
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
|
After Width: | Height: | Size: 95 KiB |
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
|
After Width: | Height: | Size: 211 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 889 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 939 KiB |
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,99 @@
|
||||
diameter = 140;
|
||||
leg_width = 5;
|
||||
leg_height = 10;
|
||||
deflector_width = 10;
|
||||
center_empty_diameter = 30;
|
||||
num_rings = 4;
|
||||
base_height = 3;
|
||||
spike_top_diameter = 1;
|
||||
spike_height = 10;
|
||||
spike_spacing = 10;
|
||||
|
||||
$fn = 150;
|
||||
epsilon = 0.1;
|
||||
|
||||
legs(diameter, leg_height, leg_width, deflector_width, center_empty_diameter)
|
||||
base(diameter, base_height, leg_width, num_rings)
|
||||
for (i = [1 : num_rings]) {
|
||||
ring_offset = diameter / num_rings;
|
||||
spikes((ring_offset * i) - leg_width, spike_height, leg_width, spike_top_diameter, spike_spacing);
|
||||
}
|
||||
|
||||
module legs(diameter, height, leg_width, curve_width, center_empty_diameter) {
|
||||
color("yellow")
|
||||
|
||||
union() {
|
||||
length = (diameter - center_empty_diameter) / 2;
|
||||
width = leg_width + curve_width;
|
||||
for (i = [0, 90, 180, 270]) {
|
||||
rotate([0, 0, i]) {
|
||||
translate([-width + (leg_width / 2), center_empty_diameter / 2, 0]) {
|
||||
difference() {
|
||||
cube([width, length, height]);
|
||||
translate([0, -epsilon, height]) {
|
||||
rotate([-90, 0, 0]) {
|
||||
cylinder(r=curve_width, h=length + 2 * epsilon);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
translate([0, 0, height]) children();
|
||||
}
|
||||
|
||||
module base(diameter, height, width, num_rings) {
|
||||
color("green")
|
||||
|
||||
union() {
|
||||
ring_offset = diameter / num_rings;
|
||||
for (i = [1 : num_rings]) {
|
||||
ring(ring_offset * i, height, width);
|
||||
}
|
||||
intersection() {
|
||||
inner_base(diameter, height, width);
|
||||
x(diameter, height, width);
|
||||
}
|
||||
}
|
||||
translate([0, 0, height]) children();
|
||||
}
|
||||
|
||||
module ring(diameter, height, width) {
|
||||
difference() {
|
||||
cylinder(h=height, d=diameter);
|
||||
inner_base(diameter, height, width);
|
||||
}
|
||||
}
|
||||
|
||||
module inner_base(diameter, height, width) {
|
||||
translate([0, 0, -epsilon]) {
|
||||
cylinder(h=height + (epsilon * 2), d=diameter - (width * 2));
|
||||
}
|
||||
}
|
||||
|
||||
module x(diameter, height, width) {
|
||||
translate([-diameter / 2, -width / 2, 0]) {
|
||||
cube([diameter, width, height]);
|
||||
}
|
||||
rotate([0, 0, 90]) {
|
||||
translate([-diameter / 2, -width / 2, 0]) {
|
||||
cube([diameter, width, height]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module spikes(diameter, height, bottom_width, top_width, spacing) {
|
||||
circumference = diameter * PI;
|
||||
spikes = floor(circumference / (bottom_width + spacing));
|
||||
|
||||
color("blue")
|
||||
for (i = [0 : spikes - 1]) {
|
||||
rotate([0, 0, i * (360 / spikes)]) {
|
||||
translate([diameter / 2, 0, 0]) {
|
||||
cylinder(h=height, d1=bottom_width, d2=top_width);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
LFS
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user