2013-12-13 34 views
5

如果我在R中有一个数据集,那么导出它的一个好方法是什么,这样我就可以将它用于3D打印Shapeways这样的服务?导出R对象进行3D打印

我没有任何“真正”的CAD软件,但我之前使用过Google Sketchup。

x <- y <- seq(0,1,by=0.01) 
persp(x, y, outer(x, y, function(x,y) (x+y)^2)) 
persp(x, y, outer(x, y, function(x,y) rep(0,length(x))), zlim=c(-1,1)) 

...,我想一起出现作为要打印一个对象:

在我的情况下对象可以由两个表面图,像这样进行描述。有任何想法吗?

回答

7

Shapeways表示,它可以输出MeshLab:http://sourceforge.net/projects/meshlab/files/meshlab

MeshLab,一个开源的,免费的,在啤酒的项目,能够利用其.asc格式选项,导入此文件:

dat <- data.frame(x=x, # will be recycled 101 times 
        y=rep(y, each=101), 
        z=as.vector(outer(x, y, function(x,y) (x+y)^2))) 

write.table(dat, file="out.asc", row.names=FALSE, col.names=FALSE) 

我大概应该做一个sos搜索;

library(sos) 
findFn("3d printing") 

....确实调出了r2stl包,其唯一功能名称相同。它还发现了其他的凸包函数,这些函数可能对希望从数据构建其他3D形状的其他人有用。

+0

谢谢,太好了。我还发现了生成'.stl'文件的'r2stl'软件包,它也可以导入到MeshLab中。 –

+0

确实。 'r2stl'的帮助页面特别建议MeshLab。 –

+0

这两种方法之间的一个区别 - 您的方法作为表面加载到MeshLab中,这正是我想要的。 'r2stl'加载为一个坚实的物体,所有的空间填充在下面。 –

4

迪文已经提出了一个关于网格的建议。如果你需要从Meshlab中导出结果对象,并在一个非常直观的3D应用程序中操作它,它不会花费大地,那么你应该尝试MoI 3D

我提到这一点是因为MoI拥有一个非常能干的网格引擎,许多MoI的用户似乎都参与了3D打印(例如参见this线程)。

开发人员Michael Gibson经常回应论坛上的问题,字面意思是分钟,论坛中的其他用户都非常支持。有完整的30天试用版,可让您免费试用。 MoI也可以使用JavaScript编写脚本。

就其本质而言,3D打印是不可改变的,所以在您提交之前确保它是值得的!

+0

它可以为此工作一次,但恐怕莫伊现在仍然不在我的联盟中。我只是为了好玩而制作小饰品。 –