-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdogsroller.scad
90 lines (72 loc) · 1.68 KB
/
dogsroller.scad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// 2021 (c) KAKL
// protection against beating of dogs legs
$fn = 30;
inner = 36;
cheight=50;
tl = 4;
screw = 4.0;
size = inner + tl;
packy = size + 20;
spike_length=size/3;
spike_r=size/15;
module Spike()
{
offset=4;
translate([0,0,size/2-offset])
cylinder(r1=spike_r,r2=0,h=spike_length, $fn=16);
}
module ACylinder()
{
cylinder(d=size, h=cheight);
Spikes();
}
module Spikes()
{
nx=10;
ny=3;
for (j=[0:1:ny])
{
hj=(cheight-10)*j/ny;
nxi=nx;
for (i=[0:1:nxi-1])
{
ai=360/nxi*i*nxi/floor(nxi);
translate([0,0,hj+5])
rotate([0,0,ai])
rotate([0,90,0])
Spike();
}
}
}
module hole()
{
rotate([0,90,0]) cylinder(d=screw, h=size * 2, center = true);
}
difference()
{
union()
{
translate([-tl/2,-packy/2,0]) cube(size = [size,packy,cheight], center = false);
ACylinder();
};
// diry v packach
translate([0,packy/2-5,11]) hole();
translate([0,packy/2-5,cheight-11]) hole();
translate([0,-packy/2+5,11]) hole();
translate([0,-packy/2+5,cheight-11]) hole();
cylinder(d=inner, h=cheight+10);
translate([0,-size-1,-1]) cube(size = [size,size*3,cheight+10], center = false);
translate([0,0,0.1]) difference()
{
translate([-100,-100,cheight-10]) cube(size = [200,200,10], center = false);
rotate_extrude() translate([size/2,cheight-10,0]) circle(10);
translate([-100,-100,cheight-10-10]) cube(size = [200,200,10], center = false);
};
/*
difference()
{
cylinder(d=packy*2, h=cheight+10);
cylinder(d=packy-3, h=cheight+10);
};
*/
};