maurer.gg
Home
Posts
Models
SCAD Sandbox
Sandbox
blackboardhook
bracketLength = 69; bracketInnerGap = 4.5; bracketWallThickness = 3; bracketThickness = 2*bracketWallThickness + bracketInnerGap; bracketWidth = 20; bumpRadius = .8 * bracketWallThickness; topHookRadius = 12; topHookInset = 10; bottomHookRadius = 16; bottomHookInset = 0; $fn=360; module Bracket(){ difference(){ cube([bracketWidth,bracketThickness,bracketLength], center = true); translate([0,0,-bracketWallThickness]) cube([bracketWidth,bracketInnerGap,bracketLength], center = true); translate([0,-bracketWallThickness/2-bracketInnerGap/2,-bracketLength/4]) cube([bracketWidth,bracketWallThickness,bracketLength/2], center = true); } rotate([90,0,90]) translate([-bumpRadius,bumpRadius,0]) cylinder(h=bracketWidth, r=bumpRadius,center=true); translate([0,bottomHookRadius+bracketInnerGap/2,bottomHookInset-bracketLength/2]) rotate([90,0,90]) Hook(bottomHookRadius); translate([0,topHookRadius+bracketInnerGap/2,topHookInset]) rotate([90,0,90]) Hook(topHookRadius); } module Hook(hookRadius){ difference(){ cylinder(h = bracketWidth, r = hookRadius, center=true); cylinder(h = bracketWidth,r = hookRadius-bracketWallThickness,center=true); translate([0,hookRadius,0]) cube([2*hookRadius,2*hookRadius,bracketWidth], center=true); } translate([hookRadius-bracketWallThickness/2,0,0]) cylinder(h=bracketWidth, r=bracketWallThickness/2, center=true); } Bracket();
Render