Dieses Projekt beschreibt einen Beutel Clipp. Das 3D-Objekt wird mit OpenSCAD erstellt. Der Clipp dient z.B. zum Verschluss von Gefrierbeuteln.
Mit einem 3D-Druck Projekt konstruieren wir einen Beutel Clipp. Die STL-Dateien werden in OpenSCAD erstellt.
Beutel Clipp //* ******************************************* Objekt Info: Beutel Clipp ******************************************* Version: 30.04.2022 khf ******************************************* */ //*************** Auswahl ************* //keine //***************************************** //*************** Libraries ************ dxffile = "clipp.dxf"; //***************************************** //*************** Parameter ************* $fn = 100; radius = 1.5; //Klemmradius //***************************************** //************** Programm ************** topleft = dxf_cross(file=dxffile, layer="topleft"); topright = dxf_cross(file=dxffile, layer="topright"); bottomleft = dxf_cross(file=dxffile, layer="bottomleft"); bottomright = dxf_cross(file=dxffile, layer="bottomright"); module bar(start, end, radius) { offset = end - start; offset3 = [offset[0],offset[1],0]; length = mod(offset3); translate(start) { sphere(r=radius); translate(offset) sphere(r=radius); orientate(unitv(offset3)) cylinder(h=length, r=radius, center=false); } } union() { linear_extrude(file = dxffile, layer = "0", height = 8, center = true, convexity = 20); bar(topleft, topright, radius); translate([0,0,-radius*1.5]) bar(bottomleft, bottomright, radius); translate([0,0,radius*1.5]) bar(bottomleft, bottomright, radius); } function mod(v) = (sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2])); function cross(u,v) = [ u[1]*v[2] - v[1]*u[2], -(u[0]*v[2] - v[0]*u[2]) , u[0]*v[1] - v[0]*u[1]]; function dot(u,v) = u[0]*v[0]+u[1]*v[1]+u[2]*v[2]; function unitv(v) = v/mod(v); function anglev(u,v) = acos( dot(u,v) / (mod(u)*mod(v)) ); module orientate(v,vref=[0,0,1], roll=0) { raxis = cross(vref,v); ang = anglev(vref,v); rotate(a=roll, v=v) rotate(a=ang, v=raxis) child(0); } Download nach oben
Beutel Clipp
//* ******************************************* Objekt Info: Beutel Clipp ******************************************* Version: 30.04.2022 khf ******************************************* */ //*************** Auswahl ************* //keine //***************************************** //*************** Libraries ************ dxffile = "clipp.dxf"; //***************************************** //*************** Parameter ************* $fn = 100; radius = 1.5; //Klemmradius //***************************************** //************** Programm ************** topleft = dxf_cross(file=dxffile, layer="topleft"); topright = dxf_cross(file=dxffile, layer="topright"); bottomleft = dxf_cross(file=dxffile, layer="bottomleft"); bottomright = dxf_cross(file=dxffile, layer="bottomright"); module bar(start, end, radius) { offset = end - start; offset3 = [offset[0],offset[1],0]; length = mod(offset3); translate(start) { sphere(r=radius); translate(offset) sphere(r=radius); orientate(unitv(offset3)) cylinder(h=length, r=radius, center=false); } } union() { linear_extrude(file = dxffile, layer = "0", height = 8, center = true, convexity = 20); bar(topleft, topright, radius); translate([0,0,-radius*1.5]) bar(bottomleft, bottomright, radius); translate([0,0,radius*1.5]) bar(bottomleft, bottomright, radius); } function mod(v) = (sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2])); function cross(u,v) = [ u[1]*v[2] - v[1]*u[2], -(u[0]*v[2] - v[0]*u[2]) , u[0]*v[1] - v[0]*u[1]]; function dot(u,v) = u[0]*v[0]+u[1]*v[1]+u[2]*v[2]; function unitv(v) = v/mod(v); function anglev(u,v) = acos( dot(u,v) / (mod(u)*mod(v)) ); module orientate(v,vref=[0,0,1], roll=0) { raxis = cross(vref,v); ang = anglev(vref,v); rotate(a=roll, v=v) rotate(a=ang, v=raxis) child(0); }
Download
nach oben