plateforme pour J-HEAD mini
parent
786278aed4
commit
9130163a2c
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,6 @@
|
|||||||
|
[submodule "SolidPython"]
|
||||||
|
path = SolidPython
|
||||||
|
url = git://github.com/SolidCode/SolidPython.git
|
||||||
|
[submodule "ThingDoc"]
|
||||||
|
path = ThingDoc
|
||||||
|
url = git://github.com/SolidCode/ThingDoc.git
|
@ -0,0 +1,11 @@
|
|||||||
|
difference(){
|
||||||
|
translate([0,0,0.01])cylinder(r=2.4,h=12,$fn=100);
|
||||||
|
union(){
|
||||||
|
cylinder(r=1.8,h=5,$fn=50);
|
||||||
|
difference(){
|
||||||
|
translate([0,0,4.99]) cylinder(r=1.6,h=5,$fn=135);
|
||||||
|
translate([0.45,-4,0]) cube([8,8,10]);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -1,157 +1,159 @@
|
|||||||
// This file is placed under the public domain
|
// This file is placed under the public domain
|
||||||
|
|
||||||
// from: http://www.thingiverse.com/thing:9512
|
// from: http://www.thingiverse.com/thing:9512
|
||||||
|
|
||||||
|
|
||||||
// EXAMPLES:
|
// EXAMPLES:
|
||||||
// standard LEGO 2x1 tile has no pin
|
// standard LEGO 2x1 tile has no pin
|
||||||
// block(1,2,1/3,reinforcement=false,flat_top=true);
|
// block(1,2,1/3,reinforcement=false,flat_top=true);
|
||||||
// standard LEGO 2x1 flat has pin
|
// standard LEGO 2x1 flat has pin
|
||||||
// block(1,2,1/3,reinforcement=true);
|
// block(1,2,1/3,reinforcement=true);
|
||||||
// standard LEGO 2x1 brick has pin
|
// standard LEGO 2x1 brick has pin
|
||||||
// block(1,2,1,reinforcement=true);
|
// block(1,2,1,reinforcement=true);
|
||||||
// standard LEGO 2x1 brick without pin
|
// standard LEGO 2x1 brick without pin
|
||||||
// block(1,2,1,reinforcement=false);
|
// block(1,2,1,reinforcement=false);
|
||||||
// standard LEGO 2x1x5 brick has no pin and has hollow knobs
|
// standard LEGO 2x1x5 brick has no pin and has hollow knobs
|
||||||
// block(1,2,5,reinforcement=false,hollow_knob=true);
|
// block(1,2,5,reinforcement=false,hollow_knob=true);
|
||||||
|
|
||||||
|
|
||||||
knob_diameter=4.8; //knobs on top of blocks
|
knob_diameter=4.8; //knobs on top of blocks
|
||||||
knob_height=2;
|
knob_height=2;
|
||||||
knob_spacing=8.0;
|
knob_spacing=8.0;
|
||||||
wall_thickness=1.45;
|
wall_thickness=1.45;
|
||||||
roof_thickness=1.05;
|
roof_thickness=1.05;
|
||||||
block_height=9.5;
|
block_height=9.5;
|
||||||
pin_diameter=3; //pin for bottom blocks with width or length of 1
|
pin_diameter=3; //pin for bottom blocks with width or length of 1
|
||||||
post_diameter=6.5;
|
post_diameter=6.5;
|
||||||
reinforcing_width=1.5;
|
reinforcing_width=1.5;
|
||||||
axle_spline_width=2.0;
|
axle_spline_width=2.0;
|
||||||
axle_diameter=5;
|
axle_diameter=5;
|
||||||
cylinder_precision=0.5;
|
cylinder_precision=0.5;
|
||||||
|
|
||||||
/* EXAMPLES:
|
|
||||||
|
|
||||||
block(2,1,1/3,axle_hole=false,circular_hole=true,reinforcement=true,hollow_knob=true,flat_top=true);
|
/* EXAMPLES:
|
||||||
|
|
||||||
translate([50,-10,0])
|
block(2,1,1/3,axle_hole=false,circular_hole=true,reinforcement=true,hollow_knob=true,flat_top=true);
|
||||||
block(1,2,1/3,axle_hole=false,circular_hole=true,reinforcement=false,hollow_knob=true,flat_top=true);
|
|
||||||
|
translate([50,-10,0])
|
||||||
translate([10,0,0])
|
block(1,2,1/3,axle_hole=false,circular_hole=true,reinforcement=false,hollow_knob=true,flat_top=true);
|
||||||
block(2,2,1/3,axle_hole=false,circular_hole=true,reinforcement=true,hollow_knob=true,flat_top=true);
|
|
||||||
translate([30,0,0])
|
translate([10,0,0])
|
||||||
block(2,2,1/3,axle_hole=false,circular_hole=true,reinforcement=true,hollow_knob=false,flat_top=false);
|
block(2,2,1/3,axle_hole=false,circular_hole=true,reinforcement=true,hollow_knob=true,flat_top=true);
|
||||||
translate([50,0,0])
|
translate([30,0,0])
|
||||||
block(2,2,1/3,axle_hole=false,circular_hole=true,reinforcement=true,hollow_knob=true,flat_top=false);
|
block(2,2,1/3,axle_hole=false,circular_hole=true,reinforcement=true,hollow_knob=false,flat_top=false);
|
||||||
translate([0,20,0])
|
translate([50,0,0])
|
||||||
block(3,2,2/3,axle_hole=false,circular_hole=true,reinforcement=true,hollow_knob=true,flat_top=false);
|
block(2,2,1/3,axle_hole=false,circular_hole=true,reinforcement=true,hollow_knob=true,flat_top=false);
|
||||||
translate([20,20,0])
|
translate([0,20,0])
|
||||||
block(3,2,1,axle_hole=true,circular_hole=false,reinforcement=true,hollow_knob=false,flat_top=false);
|
block(3,2,2/3,axle_hole=false,circular_hole=true,reinforcement=true,hollow_knob=true,flat_top=false);
|
||||||
translate([40,20,0])
|
translate([20,20,0])
|
||||||
block(3,2,1/3,axle_hole=false,circular_hole=false,reinforcement=false,hollow_knob=false,flat_top=false);
|
block(3,2,1,axle_hole=true,circular_hole=false,reinforcement=true,hollow_knob=false,flat_top=false);
|
||||||
translate([0,-10,0])
|
translate([40,20,0])
|
||||||
block(1,5,1/3,axle_hole=true,circular_hole=false,reinforcement=true,hollow_knob=false,flat_top=false);
|
block(3,2,1/3,axle_hole=false,circular_hole=false,reinforcement=false,hollow_knob=false,flat_top=false);
|
||||||
translate([0,-20,0])
|
translate([0,-10,0])
|
||||||
block(1,5,1/3,axle_hole=true,circular_hole=false,reinforcement=true,hollow_knob=true,flat_top=false);
|
block(1,5,1/3,axle_hole=true,circular_hole=false,reinforcement=true,hollow_knob=false,flat_top=false);
|
||||||
translate([0,-30,0])
|
translate([0,-20,0])
|
||||||
block(1,5,1/3,axle_hole=true,circular_hole=false,reinforcement=true,hollow_knob=true,flat_top=true);
|
block(1,5,1/3,axle_hole=true,circular_hole=false,reinforcement=true,hollow_knob=true,flat_top=false);
|
||||||
//*/
|
translate([0,-30,0])
|
||||||
|
block(1,5,1/3,axle_hole=true,circular_hole=false,reinforcement=true,hollow_knob=true,flat_top=true);
|
||||||
module block(width,length,height,axle_hole=false,reinforcement=false, hollow_knob=false, flat_top=false, circular_hole=false, solid_bottom=true, center=false) {
|
//*/
|
||||||
overall_length=(length-1)*knob_spacing+knob_diameter+wall_thickness*2;
|
|
||||||
overall_width=(width-1)*knob_spacing+knob_diameter+wall_thickness*2;
|
module block(width,length,height,axle_hole=false,reinforcement=false, hollow_knob=false, flat_top=false, circular_hole=false, solid_bottom=true, center=false) {
|
||||||
center= center==true ? 1 : 0;
|
overall_length=(length-1)*knob_spacing+knob_diameter+wall_thickness*2;
|
||||||
translate(center*[-overall_length/2, -overall_width/2, 0])
|
overall_width=(width-1)*knob_spacing+knob_diameter+wall_thickness*2;
|
||||||
union() {
|
center= center==true ? 1 : 0;
|
||||||
difference() {
|
translate(center*[-overall_length/2, -overall_width/2, 0])
|
||||||
union() {
|
union() {
|
||||||
// body:
|
difference() {
|
||||||
cube([overall_length,overall_width,height*block_height]);
|
union() {
|
||||||
// knobs:
|
// body:
|
||||||
if (flat_top != true)
|
cube([overall_length,overall_width,height*block_height]);
|
||||||
translate([knob_diameter/2+wall_thickness,knob_diameter/2+wall_thickness,0])
|
// knobs:
|
||||||
for (ycount=[0:width-1])
|
if (flat_top != true)
|
||||||
for (xcount=[0:length-1]) {
|
translate([knob_diameter/2+wall_thickness,knob_diameter/2+wall_thickness,0])
|
||||||
translate([xcount*knob_spacing,ycount*knob_spacing,0])
|
for (ycount=[0:width-1])
|
||||||
difference() {
|
for (xcount=[0:length-1]) {
|
||||||
cylinder(r=knob_diameter/2,h=block_height*height+knob_height,$fs=cylinder_precision);
|
translate([xcount*knob_spacing,ycount*knob_spacing,0])
|
||||||
if (hollow_knob==true)
|
difference() {
|
||||||
translate([0,0,-roof_thickness])
|
cylinder(r=knob_diameter/2,h=block_height*height+knob_height,$fs=cylinder_precision);
|
||||||
cylinder(r=pin_diameter/2,h=block_height*height+knob_height+2*roof_thickness,$fs=cylinder_precision);
|
if (hollow_knob==true)
|
||||||
}
|
translate([0,0,-roof_thickness])
|
||||||
}
|
cylinder(r=pin_diameter/2,h=block_height*height+knob_height+2*roof_thickness,$fs=cylinder_precision);
|
||||||
}
|
}
|
||||||
// hollow bottom:
|
}
|
||||||
if (solid_bottom == false)
|
}
|
||||||
translate([wall_thickness,wall_thickness,-roof_thickness]) cube([overall_length-wall_thickness*2,overall_width-wall_thickness*2,block_height*height]);
|
// hollow bottom:
|
||||||
// flat_top -> groove around bottom
|
if (solid_bottom == false)
|
||||||
if (flat_top == true) {
|
translate([wall_thickness,wall_thickness,-roof_thickness]) cube([overall_length-wall_thickness*2,overall_width-wall_thickness*2,block_height*height]);
|
||||||
translate([-wall_thickness/2,-wall_thickness*2/3,-wall_thickness/2])
|
// flat_top -> groove around bottom
|
||||||
cube([overall_length+wall_thickness,wall_thickness,wall_thickness]);
|
if (flat_top == true) {
|
||||||
translate([-wall_thickness/2,overall_width-wall_thickness/3,-wall_thickness/2])
|
translate([-wall_thickness/2,-wall_thickness*2/3,-wall_thickness/2])
|
||||||
cube([overall_length+wall_thickness,wall_thickness,wall_thickness]);
|
cube([overall_length+wall_thickness,wall_thickness,wall_thickness]);
|
||||||
|
translate([-wall_thickness/2,overall_width-wall_thickness/3,-wall_thickness/2])
|
||||||
translate([-wall_thickness*2/3,-wall_thickness/2,-wall_thickness/2])
|
cube([overall_length+wall_thickness,wall_thickness,wall_thickness]);
|
||||||
cube([wall_thickness,overall_width+wall_thickness,wall_thickness]);
|
|
||||||
translate([overall_length-wall_thickness/3,0,-wall_thickness/2])
|
translate([-wall_thickness*2/3,-wall_thickness/2,-wall_thickness/2])
|
||||||
cube([wall_thickness,overall_width+wall_thickness,wall_thickness]);
|
cube([wall_thickness,overall_width+wall_thickness,wall_thickness]);
|
||||||
}
|
translate([overall_length-wall_thickness/3,0,-wall_thickness/2])
|
||||||
if (axle_hole==true)
|
cube([wall_thickness,overall_width+wall_thickness,wall_thickness]);
|
||||||
if (width>1 && length>1) for (ycount=[1:width-1])
|
}
|
||||||
for (xcount=[1:length-1])
|
if (axle_hole==true)
|
||||||
translate([xcount*knob_spacing,ycount*knob_spacing,roof_thickness]) axle(height);
|
if (width>1 && length>1) for (ycount=[1:width-1])
|
||||||
if (circular_hole==true)
|
for (xcount=[1:length-1])
|
||||||
if (width>1 && length>1) for (ycount=[1:width-1])
|
translate([xcount*knob_spacing,ycount*knob_spacing,roof_thickness]) axle(height);
|
||||||
for (xcount=[1:length-1])
|
if (circular_hole==true)
|
||||||
translate([xcount*knob_spacing,ycount*knob_spacing,roof_thickness])
|
if (width>1 && length>1) for (ycount=[1:width-1])
|
||||||
cylinder(r=knob_diameter/2, h=height*block_height+roof_thickness/4,$fs=cylinder_precision);
|
for (xcount=[1:length-1])
|
||||||
}
|
translate([xcount*knob_spacing,ycount*knob_spacing,roof_thickness])
|
||||||
|
cylinder(r=knob_diameter/2, h=height*block_height+roof_thickness/4,$fs=cylinder_precision);
|
||||||
if (reinforcement==true && width>1 && length>1)
|
}
|
||||||
difference() {
|
|
||||||
for (ycount=[1:width-1])
|
if (reinforcement==true && width>1 && length>1)
|
||||||
for (xcount=[1:length-1])
|
difference() {
|
||||||
translate([xcount*knob_spacing,ycount*knob_spacing,0]) reinforcement(height);
|
for (ycount=[1:width-1])
|
||||||
for (ycount=[1:width-1])
|
for (xcount=[1:length-1])
|
||||||
for (xcount=[1:length-1])
|
translate([xcount*knob_spacing,ycount*knob_spacing,0]) reinforcement(height);
|
||||||
translate([xcount*knob_spacing,ycount*knob_spacing,-roof_thickness/2]) cylinder(r=knob_diameter/2, h=height*block_height+roof_thickness, $fs=cylinder_precision);
|
for (ycount=[1:width-1])
|
||||||
}
|
for (xcount=[1:length-1])
|
||||||
// posts:
|
translate([xcount*knob_spacing,ycount*knob_spacing,-roof_thickness/2]) cylinder(r=knob_diameter/2, h=height*block_height+roof_thickness, $fs=cylinder_precision);
|
||||||
if (solid_bottom == false)
|
}
|
||||||
if (width>1 && length>1) for (ycount=[1:width-1])
|
// posts:
|
||||||
for (xcount=[1:length-1])
|
if (solid_bottom == false)
|
||||||
translate([xcount*knob_spacing,ycount*knob_spacing,0]) post(height);
|
if (width>1 && length>1) for (ycount=[1:width-1])
|
||||||
|
for (xcount=[1:length-1])
|
||||||
if (reinforcement == true && width==1 && length!=1)
|
translate([xcount*knob_spacing,ycount*knob_spacing,0]) post(height);
|
||||||
for (xcount=[1:length-1])
|
|
||||||
translate([xcount*knob_spacing,overall_width/2,0]) cylinder(r=pin_diameter/2,h=block_height*height,$fs=cylinder_precision);
|
if (reinforcement == true && width==1 && length!=1)
|
||||||
|
for (xcount=[1:length-1])
|
||||||
if (reinforcement == true && length==1 && width!=1)
|
translate([xcount*knob_spacing,overall_width/2,0]) cylinder(r=pin_diameter/2,h=block_height*height,$fs=cylinder_precision);
|
||||||
for (ycount=[1:width-1])
|
|
||||||
translate([overall_length/2,ycount*knob_spacing,0]) cylinder(r=pin_diameter/2,h=block_height*height,$fs=cylinder_precision);
|
if (reinforcement == true && length==1 && width!=1)
|
||||||
}
|
for (ycount=[1:width-1])
|
||||||
}
|
translate([overall_length/2,ycount*knob_spacing,0]) cylinder(r=pin_diameter/2,h=block_height*height,$fs=cylinder_precision);
|
||||||
|
}
|
||||||
module post(height) {
|
}
|
||||||
difference() {
|
|
||||||
cylinder(r=post_diameter/2, h=height*block_height-roof_thickness/2,$fs=cylinder_precision);
|
module post(height) {
|
||||||
translate([0,0,-roof_thickness/2])
|
difference() {
|
||||||
cylinder(r=knob_diameter/2, h=height*block_height+roof_thickness/4,$fs=cylinder_precision);
|
cylinder(r=post_diameter/2, h=height*block_height-roof_thickness/2,$fs=cylinder_precision);
|
||||||
}
|
translate([0,0,-roof_thickness/2])
|
||||||
}
|
cylinder(r=knob_diameter/2, h=height*block_height+roof_thickness/4,$fs=cylinder_precision);
|
||||||
|
}
|
||||||
module reinforcement(height) {
|
}
|
||||||
union() {
|
|
||||||
translate([0,0,height*block_height/2]) union() {
|
module reinforcement(height) {
|
||||||
cube([reinforcing_width,knob_spacing+knob_diameter+wall_thickness/2,height*block_height],center=true);
|
union() {
|
||||||
rotate(v=[0,0,1],a=90) cube([reinforcing_width,knob_spacing+knob_diameter+wall_thickness/2,height*block_height], center=true);
|
translate([0,0,height*block_height/2]) union() {
|
||||||
}
|
cube([reinforcing_width,knob_spacing+knob_diameter+wall_thickness/2,height*block_height],center=true);
|
||||||
}
|
rotate(v=[0,0,1],a=90) cube([reinforcing_width,knob_spacing+knob_diameter+wall_thickness/2,height*block_height], center=true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
module axle(height) {
|
}
|
||||||
translate([0,0,height*block_height/2]) union() {
|
|
||||||
cube([axle_diameter,axle_spline_width,height*block_height],center=true);
|
module axle(height) {
|
||||||
cube([axle_spline_width,axle_diameter,height*block_height],center=true);
|
translate([0,0,height*block_height/2]) union() {
|
||||||
}
|
cube([axle_diameter,axle_spline_width,height*block_height],center=true);
|
||||||
}
|
cube([axle_spline_width,axle_diameter,height*block_height],center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
@ -0,0 +1 @@
|
|||||||
|
Subproject commit cb0443c83eb6fb075084890c02907a944e4d8120
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,35 @@
|
|||||||
|
use <_inc-endstop.scad>;
|
||||||
|
translate([16.1,13,60])
|
||||||
|
rotate([90,180,90])
|
||||||
|
endStop();
|
||||||
|
|
||||||
|
include <MCAD/stepper.scad>;
|
||||||
|
translate([-3.24,38.985,71.275])
|
||||||
|
rotate([0,270,0])
|
||||||
|
motor(Nema17,NemaMedium, dualAxis=true);
|
||||||
|
|
||||||
|
use <glissement.scad>;
|
||||||
|
glissement();
|
||||||
|
|
||||||
|
use <top-axis.scad>;
|
||||||
|
translate([4.1,-5,50]) topAxis();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Profil T
|
||||||
|
|
||||||
|
color ("seagreen") translate([0,0,-10])
|
||||||
|
linear_extrude (height=90)
|
||||||
|
import (file="all.dxf", layer="profil T", $fn=100);
|
||||||
|
|
||||||
|
|
||||||
|
//positionnement des roulements à bille
|
||||||
|
bearing(pos=[8, 25,-5], angle=[90,00,90], model=623);
|
||||||
|
bearing(pos=[8, 25,15], angle=[90,00,90], model=623);
|
||||||
|
bearing(pos=[0, 13.3725,5], angle=[90,00,90], model=623);
|
||||||
|
bearing(pos=[16, 13.3725,5], angle=[90,00,90], model=623);
|
||||||
|
bearing(pos=[4, 4.1862,5], angle=[90,0,0], model=623);
|
||||||
|
bearing(pos=[16.5, 4.1862,5], angle=[90,0,0], model=623);
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue