Andrew Russell

22 Jan 2014

Parametric Guitar Pick by Andrew Russell is a 3d printable guitar pick where the size and shape can be easily modified.

Guitars

Being a musician, I wanted to create a parametric object that I could use and customize for myself. Guitar picks usually come in specific sizes and thicknesses. I feel like there is an opportunity for personalized guitar picks to be useful. Don’t like the rounded corners? Remove them. 1mm is too thick, yet 0.88mm is too thin? Choose a value in between.

The user can customize the following attributes:

  • height
  • weight
  • thickness
  • rounded corner radius
  • rounded bottom radius

I was planning on allowing all edges to be rounded, but there were more complications than I first expected. I also set stretch goals to allow concave and sharkfin edges but I did not meet those goals.

 

Default Guitar Pick

“Standard” guitar pick

Flat Bottom

Really Thick

Sharp Edges

Github

ThingIVerse

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
// preview[view:south, tilt:top]
 
/* [Main] */
 
//how wide to make the guitar pick
base = 250;
 
//how tall to make the guitar pick
height = 300;
 
//how thick to make the guitar pick
thickness = 1;
 
//how rounded to make the corners
radii = [40, 40, 20];
 
//how curved to make the base (0 is straight)
curve = 250;
 
//adjusts how close the curve is to the center of the pick
curve_offset = 14;
 
//how smooth to render all circles
smooth = 100;
 
module pick(base, height, t, r, curve, co) {
  r0 = max(radii[0], 0.01);
  r1 = max(radii[1], 0.01);
  r2 = max(radii[2], 0.01);
 
  lw = r0 + r1;
  lh = r2 + max(r0, r1);
 
  hull()
  {
    translate([r0, r0, 0]) {
      cylinder(r=r0, h=t, $fn=smooth);
    }
 
    translate([base-r1, r1, 0]) {
      cylinder(r=r1, h=t, $fn=smooth);
    }
 
    translate([(base-r1+r0)/2, height-lh, 0]) {
      cylinder(r=r2, h=t, $fn=smooth);
    }
 
    if (curve > 0) {
translate([base/2, curve-co, 0])
difference() {
  rotate_extrude($fn=smooth)
    translate([curve-.01, 0, 0])
      square([.01, t]);
  translate([base/2-lw/2, -curve, -1])
    cube([curve, curve*2, t+1]);
  translate([-curve, 0, -1])
    cube([curve*2, curve, t+1]);
  translate([-curve-(base/2-lw/2), -curve, -1])
    cube([curve, curve, t+1]);
}
    }
  }
}
 
pick(base, height, thickness, radii, curve, curve_offset);

One thought on “Parametric Guitar Pick

Comments are closed.