可定制的打印误差校正板(1130更新,增加6角形和凸起功能)
大家知道,FDM打印机,尤其桌面级的,无法做到像cnc那样打印尺寸和设计尺寸分毫不差。这个问题,在我之前的帖子,https://mc.dfrobot.com.cn/thread-13284-1-1.html
以及更早的黑侠的大作:关于材料PLA收缩率的实验及浅析 https://mc.dfrobot.com.cn/thread-12354-1-1.html
都有阐述。
那么,有没有解决方法尼。
有,就是打印个,然后比对误差后纠正。
简单粗暴,但是管用。
所谓实践是检验问题的唯一标准。
那么问题来了,打印前要设计模型吧。
为了矫正个尺寸,就要设计个模型,麻烦吗?
这里,我写了段Openscad程序。
对于常见的方孔,和圆孔。
大家可以通过修改几个参数,随意生成任意数量,尺寸相近的板。
以下是11月30日更新的内容:
1. 除了可以打印洞,也可以打印凸起。
只要在 Choose_Hole = false
像这样:
2.还可以打印六边形,
只要把:
Polygon_Select= 6
默认是100,100的话出来就是圆。
像这样:
不过注意这里的尺寸是不是边长,也不是对边长,而是对角长。
如下图:
举个栗子:
我要给方方的桌腿设计个支架。
量下来方孔的周长是9,于是我从8.4-10,每隔2mm,打印一个孔。
生成了下面这个校验板,一打印,就知道最适合的设计尺寸啦。
当然,圆孔也是支持的,毕竟很多情况要设计螺丝的孔位吗。
数量也可以自定义,上面是9个,下面是16个。
当然,不一定要是平方数,1到1000都可以的。
花几分钟打印下这个板,然后比对下实物,就可以知道最适合的设计尺寸了。
程序和模型,我还是发表在thingiverse上,大家可以戳连接https://www.thingiverse.com/thing:1843323,下载。
生成模型,有2种方法
1.,可以直接戳上面链接的这个红圈处,利用thingiverse的在线定制器生成。
当然,这个在线定制器优势是不用下载程序,但定制性有限,也比较慢,毕竟服务器在国外。
2.离线方法
- 访问openscad.org,下载非常小巧的openscad程序。
- 打开我编写的这段代码,可以在thingiverse上下载,也可以点下面的附件。
- 按F5预览
- 按F6生成STL模型。
然后就可以打印了。
可定制的几个参数,在代码开头。
这里我解释下:
// Inputs
MaxD =10; // 这里定义最大图形的尺寸,对于方孔就是周长,对于圆孔就是直径,单位mm
ShapeCnt = 16; // 生成图形的数量
S_Step=0.2; // 按多少尺寸递减
z=1; // 板的厚度
Choose_Square=false; // 默认圆孔,如果这里改为true,就是方孔
NeedMarks=true; // 要不要上面标有数字尺寸铭牌
Dis=MaxD/10; // 相邻图形的距离。
源代码(1130更新):
// Inputs
MaxD=2;
Choose_Hole=false ; // false for extrude
Choose_Square=false; //Circle in default, if you want square, change it to true
Polygon_Select= 100;// 100 for circle, 6 for hexagon
//MaxD =Polygon_Select==4 ?D/sqrt(2) : 0; ; // Max Shape Size in mm.For circle is diameter, for square is side length
ShapeCnt = 9; // How many shapes to generate
S_Step=0.1; // Difference of each shape
z=0.4; // Thickness
NeedMarks=true; // Additional Marksborad will be added if true
Dis=MaxD/10; // Distance btw each shape
Rotate_Adjust= Polygon_Select==4 ? 45 : 0; // if choose 4 then use square
z_Solid=1; // For Boss Extrude only
//Generate suitable size
BasicD= MaxD + Dis*2;
//Font_Size=max(1,round(BasicD/8)); // 7 digits Max
Font_Size=1;
Font_Scale= MaxD>5 ? max(1,MaxD/6)*1.5 : min(1,MaxD/5)*1.5 ; // Font size in accordence with shape size
echo("Font Scale is",Font_Scale);
xMax= round(sqrt(ShapeCnt))-1;// x
yMax= ceil(sqrt(ShapeCnt))-1;
echo(xMax,yMax);
//yMax=2;
//xMax=3;
echo("BasicD:",BasicD);
for(y=)
{
if (NeedMarks==true)
{
//echo(y);
difference()
{
//Generate mark board & seperating line
translate([-BasicD/2,BasicD*y,0])
cube();
translate([-BasicD/2,BasicD*(y+1)-Dis/4,z-z/4])
cube();
//Generate marks
translate([-BasicD*11/32,BasicD*(y+0.5),z/2])
rotate()
linear_extrude(z/2)
scale(Font_Scale)
text(str(" ",MaxD-S_Step*y*(xMax+1)," - "),Font_Size,"Bauhaus 93:style=Bold",valign="center",halign="center");
translate([-BasicD*1/8,BasicD*(y+0.5),z/2])
rotate()
linear_extrude(z/2)
scale(Font_Scale)
text(str(MaxD- S_Step*(xMax+y*(xMax+1))," "),Font_Size,"Bauhaus 93:style=Bold",valign="center",halign="center");
}
}
for(x=)
{
if (Choose_Hole)
{
difference() // generate a hole
{
//echo(S_Step*y*xMax*2);
// Generate shapes in a row.
translate()
cube();
translate()
cube();
// echo(BasicD/2);
// echo(BasicD/2*i);
if((x+y*(xMax+1))<ShapeCnt)
{
if(Choose_Square ==false)
{
translate()
linear_extrude(height= z+z_Solid )
rotate(a=)
{
circle(MaxD/2-S_Step/2*(x+y*(xMax+1)),$fn=Polygon_Select);
}
}
else
{
translate()
linear_extrude(height= z+z_Solid ){
square(MaxD-S_Step*(x+y*(xMax+1)),center= false);
}
}
}
echo(x,y,(MaxD/2-S_Step/2*(x+y*(xMax+1)))*2);
}
}
else // generate extrusion
{
translate()
cube();
translate()
cube();
if((x+y*(xMax+1))<ShapeCnt)
{
if(Choose_Square ==false)
{
translate()
linear_extrude(height= z+z_Solid )
rotate(a=)
{
circle(MaxD/2-S_Step/2*(x+y*(xMax+1)),$fn=Polygon_Select);
}
}
else
{
translate()
linear_extrude(height= z+z_Solid ){
square(MaxD-S_Step*(x+y*(xMax+1)),center= false);
}
}
}
echo(x,y,(MaxD/2-S_Step/2*(x+y*(xMax+1)))*2);
}
}
}
谢谢观赏,如果帮的到你,
thingiverse上点个like吧。
沙了个发 哎呦,你们都“浪”到国外网站了 嗯,不错的程序,改下程序又有孔又有方也不错。 Rockets 发表于 2016-10-25 19:24
嗯,不错的程序,改下程序又有孔又有方也不错。
其实再改下,还可以加六角形(适配螺母),以及改孔为凸起。等空了再弄。 svw 发表于 2016-10-26 14:37
其实再改下,还可以加六角形(适配螺母),以及改孔为凸起。等空了再弄。 ...
等着你的修改。
或者可以和大家简单讲讲语句的具体作用。 有没有其它人改了? 厉害啊我的哥 点赞! 先试下再来说结果
已将本文章转帖纸Dreammaker英文论坛。
http://www.dreammaker.cc/forum/viewtopic.php?f=4&t=463 Rockets 发表于 2016-11-9 08:11
已将本文章转帖纸Dreammaker英文论坛。
http://www.dreammaker.cc/forum/viewtopic.php?f=4&t=463 ...
不会是谷歌翻译的吧。
标题叫:
Customerizable torlerance calibration board ( Programmed via OpenScad )
会好些吧。 svw 发表于 2016-11-9 14:43
不会是谷歌翻译的吧。
标题叫:
嗯,确实是谷歌翻译的。 svw 发表于 2016-11-9 14:43
不会是谷歌翻译的吧。
标题叫:
改好了。呵呵。
Customerizable torlerance calibration board ( Programmed via OpenScad )
http://www.dreammaker.cc/forum/viewtopic.php?f=4&t=463&p=3295#p3295 更新了,增加了2个新功能,自顶下。
页:
[1]