acorn: v0
[clinton/3d-models.git] / calibration / ringing.scad
... / ...
CommitLineData
1/*
2 Simple model to test for surface ringing at high print speeds.
3 */
4
5$fn = 64;
6
7radius = 35;
8height = 35;
9n_pits = 3;
10
11pit_radius = height/n_pits/2;
12//pit_height = radius*2;
13
14difference () {
15 cylinder (h = height, r = radius, center = true, $fn = 128);
16 cylinder (h = height+1, r = radius-radius/4, center = true, $fn = 128);
17 pits (offset = radius);
18}
19pits (offset = -radius);
20
21 pit_rotations = rands (min_value = 0, max_value = 180, value_count = n_pits);
22
23module pits (offset) {
24 for (i = [0 : n_pits - 1]) {
25 echo (pit_rotations[i]);
26 rotate ([0, 0, pit_rotations[i]])
27 translate ([offset, 0, -height/2+pit_radius+i*height/n_pits])
28 rotate ([0, 90, 0]) {
29 /*translate ([0, 0, -3])*/ sphere (r = pit_radius);
30// cylinder (h = 6, r = pit_radius, center = true);
31 }
32 }
33}
34
35
36module random_balls () {
37 pit_offsets = rands (min_value = -radius/2, max_value = radius/2, value_count = n_pits);
38 pit_rotations = rands (min_value = 0, max_value = 180, value_count = n_pits);
39
40 for (i = [0 : n_pits-1]) {
41 translate ([0, 0, max (-pit_radius, i*height/n_pits-pit_height)]) rotate ([pit_rotations[i], 90, 0])
42 translate ([radius, radius, 0]) sphere (r = pit_radius);
43 //cylinder (h = pit_height, r = pit_radius, center = true);
44 }
45}