Impressão 3D - Uma Revolução

Daniel de Souza Carvalho
@danielscarvalho
Advisor Tecnologia

Join the Conversation #BrazilWTC2016

Indústria

Injetora de Plástico

Molde

Polipropileno (PP)

Impressora 3D

Fonte: http://www.cnbc.com/2014/06/11/11-inventions-that-could-change-the-world.html?slide=5

Fonte: https://www.makerbot.com/

DIY: Arduino

Fonte: https://all3dp.com/arduino-3d-printer/

Filamento

Material: ABS ou PLA

Aplicação Social - “Enabling The Future”

Projeto: http://enablingthefuture.org/

Aplicação em Medicina - “Exoskeletal”

Fonte: http://www.evilldesign.com/cortex

Aplicação em Medicina - “3D Printing Blood Vessels”

Fonte: https://risingstarmagazine.com/3d-printing-blood-vessels/

Partes do corpo:

Fonte: http://www.smithsonianmag.com/science-nature/what-lies-ahead-for-3-d-printing-37498558/

Aplicação em Medicina - Ultrasom Impresso

Auxilia mãe com deficiência visual a visualizar o feto.

Fonte: http://www.cbsnews.com/news/3d-printed-ultrasound-lets-blind-mom-see-unborn-baby/

Aplicação em Medicina Veterinária

Protese do bico de papagaio: http://it.dplay.com/il-tucano-grecia/

Protese do casco de tartaruga: http://abcnews.go.com/International/tortoise-burned-fire-custom-3d-printed-shell/story?id=39306133

Casa Impressa em 3D

Casas impressas em 3D na China.

Fonte: http://www.core77.com/posts/26858/China-on-the-Forefront-of-3D-Printed-Housing

Entre outros objetos 3D

Carros

Roupas

Peças de reposição

Aeromodelos

Robos

Armas

Próteses

Objetos de arte e arquitetura

Alimentos e gastronomia

Importar e exportar modelos 3D

Diversos formatos de modelos, objetos e geometria para padrões para impressão 3D estão disponíveis.
Exemplo de case para Raspberry Pi:

{Import["http://www.thingiverse.com/download:342676",{"STL","Region"}],Import["http://www.thingiverse.com/download:342677",{"STL","Region"}]}

Formatos suportados:

Representação de Sólidos

Diferente formas de representação 3D

opts={Axes->False,Boxed->False,Lighting->"Neutral",SphericalRegion->False,RotationAction->"Clip",ImageSize->{Automatic,500}};
CellPrint@Cell[RawBoxes@ToBoxes@TabView[{"Boundary Representation"->Graphics3D[{Lighter@Blue,Specularity[White,20],ExampleData[{"Geometry3D","UtahTeapot"},"GraphicsComplex"]},Sequence@@opts],
"Parametric Representation"->ParametricPlot3D[{1.16^v Cos[v](1+Cos[u]),-1.16^v Sin[v](1+Cos[u]),-2 1.16^v(1+Sin[u])},{u,0,2Pi},{v,-15,6},Mesh->All,PlotPoints->{30,60},MaxRecursion->0,PlotStyle->Directive[Orange,Specularity[White,20]],PlotRange->All,Evaluate[Sequence@@opts]],
"Cell Decomposition"->(cuboidRegionPlot3D[p_,{x_,xmin_,xmax_,dx_},{y_,ymin_,ymax_,dy_},{z_,zmin_,zmax_,dz_},opts___]:=Module[{f=Function@@{{x,y,z},p}},Graphics3D[Table[If[f[x,y,z],Cuboid[{x,y,z},{x,y,z}+{dx,dy,dz}],{}],{x,xmin,xmax,dx},{y,ymin,ymax,dy},{z,zmin,zmax,dz}],opts]];
cuboidRegionPlot3D[1≤x^2+y^2+z^2≤2&&x y z≥0,{x,-2,2,.2},{y,-2,2,0.2},{z,-2,2,0.2},Lighting->Automatic,Sequence@@opts]),
"Sweeping"->Show[,DeleteCases[opts,HoldPattern[Lighting->_]]],
"Implicit Representation"->Show[RegionPlot3D[(x^2+y^2>3)&&(x^2+z^2>3)&&(y^2+z^2>3)&&((¬(Abs[x]<2))||(¬(Abs[y]<2))||(¬(Abs[z]<2))),{x,-3,3},{y,-3,3},{z,-3,3},Mesh->None,PlotRange->Automatic,PlotPoints->70,BoxRatios->Automatic,PlotStyle->Directive[ColorData["HTML","FireBrick"],Specularity[White,20]]],opts],
"Point Clouds"->With[{pts=ExampleData[{"Geometry3D","StanfordBunny"},"VertexData"]},Show[ListSurfacePlot3D[pts,MaxPlotPoints->50,RegionFunction->(#1<0&),Mesh->None,PlotStyle->Directive[Thickness[.1],ColorData["HTML","Plum"],Specularity[White,30]]],ListPointPlot3D[pts[[1;;-1;;3]],PlotStyle->PointSize[Small],RegionFunction->(#1>0&)],opts]]
},ControlPlacement->Left,Alignment->{Center,Center},BaseStyle->{FontSize->14}],"Picture",CellMargins->20,TextAlignment->0]

Importação e Impressão 3D

Modelos 3D do Wolfram Example Data:

dino=ExampleData[{"Geometry3D","Triceratops"},"BoundaryMeshRegion"]

dinoSolido=ShellRegion[dino];
Show[dinoSolido,BaseStyle->Opacity[0.4]]

Printout3D[dinoSolido, "dinoSolido.stl"]

Importar, Ajustar e Imprimir

Simples assim!!!

coelho=ExampleData[{"Geometry3D","StanfordBunny"},"VertexData"];
ListPointPlot3D[coelho,PlotStyle->PointSize[Tiny],BoxRatios->Automatic]
Length[coelho]

ListSurfacePlot3D[coelho,MaxPlotPoints->70,Mesh->None]

coelho=ExampleData[{"Geometry3D","StanfordBunny"},"Region"];
FindMeshDefects[coelho]

coelho=RepairMesh[coelho]

Printout3D[coelho, "Sculpteo"];

Printout3D[coelho,"coelho.stl"]

Modelos Gerados por Algoritmos

This is a text cell.

extrudeImage[image_]:=Block[{res,img},img=DeleteSmallComponents[Binarize[image,0.9],500];
res=ImageMesh[ColorNegate[img]];
RegionProduct[res,Line[{{0.},{50.}}]]]

extrudeImage[ColorNegate[]]

extrudeImage[Binarize[]]

extrudeImage[]

Modelos 3D disponíveis

Obtendo dados direto da Wolfram Research

LinguisticAssistant["Region"]

Funções de Análise

Fonte: https://www.wolfram.com/language/11/3d-printing/automatically-detect-defects-and-repair-meshes.pt-br.html?product=mathematica

Criar Objeto 3D a Partir da Curava de Perfil

Framed[
DynamicModule[{
nt=20,nr=20,
pts={{1,1},{0,1/2},{1,1/4},{0,-1/4},{1,-1}},g,style=FaceForm[Yellow,Blue]},
Row[{
Framed[
Dynamic[g=With[{f=BSplineFunction[SortBy[pts,Last],SplineDegree->2]},
Quiet@Show[
RevolutionPlot3D[{f[t][[1]],f[t][[2]]},{t,0,1},Mesh->All,PlotPoints->{nr,nt},MaxRecursion->0,PlotStyle->style],
RevolutionPlot3D[{f[t][[1]]+.1,f[t][[2]]},{t,0,1},Mesh->All,PlotPoints->{nr,nt},MaxRecursion->0,RevolutionAxis->{0,0,-1},PlotStyle->style],
RevolutionPlot3D[{x,f[1][[2]]},{x,f[1][[1]],f[1][[1]]+.1},Mesh->All,PlotPoints->{2,nt},MaxRecursion->0,PlotStyle->style],
RevolutionPlot3D[{x,f[0][[2]]},{x,f[0][[1]],f[0][[1]]+.1},Mesh->All,PlotPoints->{2,nt},MaxRecursion->0,PlotStyle->style,RevolutionAxis->{0,0,-1}],
PlotRange->All,ImageSize->{Automatic,400},RotationAction->"Clip",Boxed->False,Axes->False]
]
],FrameStyle->LightGray
],
Column[{
LocatorPane[Dynamic[pts],Graphics[BSplineCurve[Dynamic[SortBy[pts,Last]],SplineDegree->2],PlotRange->{{0,1},{-1,1}},PlotRangePadding->0.25,ImageSize->{Automatic,300},Frame->True],LocatorAutoCreate->True],
Row[{"plot points (θ)",Slider[Dynamic[nt],{20,100,1},ImageSize->{100,20}]},Spacer[10]],
Row[{"plot points (z)",Slider[Dynamic[nr],{20,100,1},ImageSize->{100,20}]},Spacer[10]],
Button["Create STL",Export[FileNameJoin[{NotebookDirectory[],"pottery.stl"}],g],
ImageSize->All]
},Alignment->Center]
}]
],FrameStyle->LightGray,BaseStyle->{FontFamily->"Arial",FontSize->12}]

Feito por Yu-Sung Chang (Wolfram Research)

Referências

New in Version 11: 3D Printing - Charles Pooh (Wolfram)

Wolfram Videos - Scan, Convert, and Print - Playing with 3D Objects in Mathematica - Yu-Sung Chang (Wolfram)

3D Printing - Wolfram Language Documentation

3D Printing: New in Wolfram Language 11

Getting Started with 3D Printing: A Hands-on Guide to the Hardware, Software, and Services Behind the New Manufacturing Revolution,  Liza Wallach Kloski, Nick Kloski, 2016

3D Printing: Third Ed, Christopher Barnatt, 2016

3D Printing of Medical Models from CT-MRI Images, Li Yihua, Eric Luis, 2016

Documentário: Print the Legend (2014)