]> www.fi.muni.cz Git - things.git/blob - access-card-holder.scad
switch holder.scad
[things.git] / access-card-holder.scad
1 infty = 200;
2 eps = 0.01;
3
4 card_x = 86 + 0.5;
5 card_y = 54 + 0.5;
6 card_z = 1.2;
7 corner_r = 2.5;
8
9 body_h = 10;
10 wall = 1.2;
11
12 clip_h = 4;
13 clip_hole_d = 5;
14
15 module credit_card() {
16         hull() {
17                 translate([corner_r, corner_r, 0])
18                         cylinder(r = corner_r, h = card_z, $fn = 32);
19                 translate([card_x - corner_r, corner_r, 0])
20                         cylinder(r = corner_r, h = card_z, $fn = 32);
21                 translate([corner_r, card_y - corner_r, 0])
22                         cylinder(r = corner_r, h = card_z, $fn = 32);
23                 translate([card_x - corner_r, card_y - corner_r, 0])
24                         cylinder(r = corner_r, h = card_z, $fn = 32);
25         }
26 }
27
28 difference() {
29         translate([0, 2*wall+card_z, 0])
30         rotate([90, 0, 0])
31         hull() {
32                 cube([body_h, body_h, 2*wall+card_z]);
33                 translate([sqrt(card_x^2+card_y^2) + 2*wall - body_h/2, body_h/2, 0])
34                         cylinder(r = body_h/2, h = 2*wall+card_z, $fn = 12);
35
36         }
37         % translate([wall, wall, body_h/2-0.3*corner_r]) // !!! heuristka
38         rotate([0, atan((card_y-corner_r)/(card_x-corner_r)), 0])
39         translate([0, card_z, 0])
40         rotate([90, 0, 0])
41                 credit_card();
42         
43         translate([body_h, wall+card_z-eps, -eps])
44                 cube([sqrt(card_x^2+card_y^2) + 2*wall - 2*body_h, wall+2*eps, body_h+2*eps]);
45 }
46
47 // clip with hole
48 translate([-clip_hole_d/2, wall+card_z/2, 0])
49 difference() {
50         cylinder(r = clip_hole_d/2 + wall, h = clip_h, $fn = 32);
51         translate([0, 0, -eps])
52                 cylinder(r = clip_hole_d/2, h = clip_h + 2*eps);
53 }