Skip to content

Instantly share code, notes, and snippets.

@robbintt
Last active June 5, 2017 05:29
Show Gist options
  • Save robbintt/857489474169c424cd5ce9abe7f680da to your computer and use it in GitHub Desktop.
Save robbintt/857489474169c424cd5ce9abe7f680da to your computer and use it in GitHub Desktop.
A simple lockpick, untested
translate([0,4])
{
translate([-20,0])
{
square(size=[40,8], center=true);
}
translate([0,0])
{
circle(r=4);
}
translate([3,-1])
{
// overflows 1 unit into left object
polygon_wide_size = 2; // taken from pick
polygon_narrow_size = 1.3; // taken from pick
size_difference = (polygon_wide_size - polygon_narrow_size);
half_size_difference = size_difference / 2; // half on top, half on bottom
polygon_narrow_top = polygon_narrow_size + half_size_difference;
polygon_narrow_btm = half_size_difference;
polygon(points=[
[0,0],
[21,polygon_narrow_btm],
[21,polygon_narrow_top],
[0,2]
]);
// add a 20mm custom end - you can add other ends in this section
// cutout circle section with some features
translate([21,-1*(polygon_narrow_size+polygon_narrow_btm)])
{
outer_circle = 2* (polygon_narrow_btm + polygon_narrow_size);
inner_circle = 2*polygon_narrow_btm + polygon_narrow_size;
tip_circle = (outer_circle - inner_circle) / 2;
difference()
{
// keep the top right quarter of the circle...
intersection()
{
circle(r=outer_circle, $fn=500);
// this translate can be deleted
translate([0,0])
{
square([outer_circle, outer_circle]);
}
}
circle(r=inner_circle, $fn=500);
}
translate([outer_circle-tip_circle, 0])
{
circle(r=tip_circle, $fn=500);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment