first commit of c3dog
This commit is contained in:
commit
d626840450
4 changed files with 301 additions and 0 deletions
95
headband.scad
Normal file
95
headband.scad
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
include <globals.scad>
|
||||
|
||||
module partial_ring(part, radius, thickness, height) {
|
||||
rotate(180-180*part, [0, 0, 1])
|
||||
rotate_extrude(angle=360*part)
|
||||
translate([radius, 0]){
|
||||
polygon(points = [[thickness/2,height/2-0.5],
|
||||
[thickness/2-0.5,height/2],
|
||||
[-thickness/2+0.5,height/2],
|
||||
[-thickness/2,height/2-0.5],
|
||||
[-thickness/2,-height/2+0.5],
|
||||
[-thickness/2+0.5,-height/2],
|
||||
[thickness/2-0.5,-height/2],
|
||||
[thickness/2,-height/2+0.5]]);
|
||||
}
|
||||
}
|
||||
|
||||
module headband(size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, rake_depth=RAKE_DEPTH, rake_width=RAKE_WIDTH, rake_stretch=RAKE_STRETCH, rake_chamfer=RAKE_CHAMFER, with_rake=true) {
|
||||
union() {
|
||||
union() {
|
||||
color("purple")
|
||||
partial_ring(part, radius=size, thickness=thickness, height=height);
|
||||
rotate( 90-180*part, [0, 0, 1])
|
||||
translate([stretch_len/2, size, 0]) {
|
||||
color("orange"){
|
||||
rotate(90,[0,1,0]){
|
||||
rotate(90, [0,0,1]){
|
||||
linear_extrude(stretch_len, center = true, convexity = 10){
|
||||
polygon(points = [[thickness/2,height/2-0.5],
|
||||
[thickness/2-0.5,height/2],
|
||||
[-thickness/2+0.5,height/2],
|
||||
[-thickness/2,height/2-0.5],
|
||||
[-thickness/2,-height/2+0.5],
|
||||
[-thickness/2+0.5,-height/2],
|
||||
[thickness/2-0.5,-height/2],
|
||||
[thickness/2,-height/2+0.5]]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
color("purple") translate([stretch_len/2, tip_bend, 0])
|
||||
rotate(90+180*tip_len, [0, 0, 1])
|
||||
partial_ring(
|
||||
part=tip_len,
|
||||
radius=tip_bend,
|
||||
thickness=thickness,
|
||||
height=height
|
||||
);
|
||||
}
|
||||
rotate(-90+180*part, [0, 0, 1])
|
||||
translate([stretch_len/2, -size, 0]) {
|
||||
color("orange"){
|
||||
rotate(90,[0,1,0]){
|
||||
rotate(90, [0,0,1]){
|
||||
linear_extrude(stretch_len, center = true, convexity = 10){
|
||||
polygon(points = [[thickness/2,height/2-0.5],
|
||||
[thickness/2-0.5,height/2],
|
||||
[-thickness/2+0.5,height/2],
|
||||
[-thickness/2,height/2-0.5],
|
||||
[-thickness/2,-height/2+0.5],
|
||||
[-thickness/2+0.5,-height/2],
|
||||
[thickness/2-0.5,-height/2],
|
||||
[thickness/2,-height/2+0.5]]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
color("purple")
|
||||
scale([1, -1, 1])
|
||||
translate([stretch_len/2, tip_bend, 0])
|
||||
rotate(90+180*tip_len, [0, 0, 1])
|
||||
partial_ring(
|
||||
part=tip_len,
|
||||
radius=tip_bend,
|
||||
thickness=thickness,
|
||||
height=height
|
||||
);
|
||||
}
|
||||
}
|
||||
if (with_rake) for (i=[-size/2:size/2]) {
|
||||
rotate(i*2-rake_width/2, [0, 0, 1])
|
||||
intersection() {
|
||||
scale([1, 1, rake_stretch/(rake_depth/height)])
|
||||
translate([0, rake_width/2, 0])
|
||||
rotate_extrude(angle=rake_width)
|
||||
translate([rake_depth/2-size+thickness/2, 0, 0])
|
||||
scale([1, 0.5, 1])
|
||||
circle(r=rake_depth, $fn=3);
|
||||
translate([rake_depth/2-size+thickness/2-rake_chamfer, 0, 0])
|
||||
color("red")
|
||||
cube([2*rake_depth, rake_width, height], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue