<br><font size=2 face="sans-serif">Yes, this is true, if you make surfaces from height maps for instance, you need to extrude the surface to get a machineable volume file. I used vtkLinearExtrusionFilter to do this. The only down side is that the bottom of the volume is bottom of the top surface so its not flat. That wasn't a problem for me but some type of cutting plane might be needed to make a flat bottom to the piece if required. I have a tcl example if interested.......john</font>
<br>
<br>
<br>
<br>
<br>
<table>
<tr valign=top>
<td><font size=6 color=red face="Times New Roman"><b>Internet Mail Message</b></font>
<br><font size=2 color=red face="sans-serif">Received from host: &nbsp; &nbsp; &nbsp; &nbsp;</font>
<td></table>
<br>
<table width=100%>
<tr valign=top>
<td>
<td><font size=1 face="sans-serif"><b>Rasmus Reinhold Paulsen &lt;rrp@imm.dtu.dk&gt;</b></font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Sent by: vtkusers-admin@public.kitware.com</font>
<p><font size=1 face="sans-serif">02/24/2003 09:08 AM</font>
<br>
<td><font size=1 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;To: &nbsp; &nbsp; &nbsp; &nbsp;&quot;Lorensen, William E (Research)&quot; &lt;lorensen@crd.ge.com&gt;</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; cc: &nbsp; &nbsp; &nbsp; &nbsp;&quot;'#YAN RI AN#'&quot; &lt;yanrian@pmail.ntu.edu.sg&gt;, vtk users &lt;vtkusers@public.kitware.com&gt;, (bcc: John Anast-JM/PGI)</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; Subject: &nbsp; &nbsp; &nbsp; &nbsp;RE: [vtkusers] Soild *.stl format needed.</font></table>
<br>
<br><font size=2 face="Courier New">Hi Bill and Yan,<br>
<br>
I think that the machine needs some kind of thickness of the shell?<br>
<br>
So I believe that what is needed here is a post-processing with some kind<br>
of &quot;shelling&quot; algorithm. That is an algorithm that produces an offset<br>
surface and connects it with the original surface to produce a watertight<br>
shell with a thickness.<br>
<br>
If I am completely wrong or if there is another solution please tell me.<br>
<br>
Regards,<br>
Rasmus<br>
<br>
<br>
On Mon, 24 Feb 2003, Lorensen, William E (Research) wrote:<br>
<br>
&gt; You should be able to use the stl file to create rapid prototypes. We have done it many times.<br>
&gt; <br>
&gt; Bill<br>
&gt; <br>
&gt; -----Original Message-----<br>
&gt; From: #YAN RI AN# [mailto:yanrian@pmail.ntu.edu.sg]<br>
&gt; Sent: Monday, February 24, 2003 2:06 AM<br>
&gt; To: vtkusers@public.kitware.com<br>
&gt; Subject: [vtkusers] Soild *.stl format needed.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Dear All vtk users:<br>
&gt; I need Solid *.stl format model for the rapid prototyping technology.</font>
<br><font size=2 face="Courier New">&gt; the MarchingCubes Algorithm only got isosurface *.stl format only.<br>
&gt; I do not know how to solve the proplem.<br>
&gt; Could any experts help me?<br>
&gt; Here is my program:<br>
&gt; <br>
&gt; &nbsp;//main program:<br>
&gt; &nbsp; &nbsp; vtkVolume16Reader *v16=vtkVolume16Reader::New();<br>
&gt; &nbsp; &nbsp; v16-&gt;SetDataDimensions(64,64);<br>
&gt; &nbsp; &nbsp; v16-&gt;GetOutput()-&gt;SetOrigin(0,0,0);<br>
&gt; &nbsp; &nbsp; v16-&gt;SetDataByteOrderToLittleEndian();<br>
&gt; &nbsp; &nbsp; v16-&gt;SetFilePrefix(&quot;c:/Vtkdata/Data/headsq/quarter&quot;);<br>
&gt; &nbsp; &nbsp; v16-&gt;SetImageRange(1,93);<br>
&gt; &nbsp; &nbsp; v16-&gt;SetDataSpacing(3.2,3.2,1.5);<br>
&gt; &nbsp; &nbsp; v16-&gt;Update();//put the image into memory<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt; &nbsp; &nbsp; vtkMarchingCubes *iso=vtkMarchingCubes::New();<br>
&gt; &nbsp; &nbsp; iso-&gt;SetInput(v16-&gt;GetOutput());<br>
&gt; &nbsp; &nbsp; iso-&gt;SetValue(0,1150);<br>
&gt; &nbsp; &nbsp; iso-&gt;ComputeGradientsOn();<br>
&gt; &nbsp; &nbsp; iso-&gt;ComputeScalarsOff();<br>
&gt; &nbsp;<br>
&gt; &nbsp; &nbsp; vtkPolyDataMapper *isoMapper=vtkPolyDataMapper::New();<br>
&gt; &nbsp; &nbsp; isoMapper-&gt;SetInput(iso-&gt;GetOutput());<br>
&gt; &nbsp; &nbsp; isoMapper-&gt;ScalarVisibilityOn();<br>
&gt; &nbsp; &nbsp; isoMapper-&gt;ImmediateModeRenderingOn();<br>
&gt; <br>
&gt; <br>
&gt; &nbsp; &nbsp; vtkActor *isoActor=vtkActor::New();<br>
&gt; &nbsp; &nbsp; isoActor-&gt;SetMapper(isoMapper);<br>
&gt; &nbsp; &nbsp; isoActor-&gt;GetProperty()-&gt;SetColor(1,1,1);<br>
&gt; <br>
&gt; // Add the actors to the renderer, set the background and size<br>
&gt; &nbsp; &nbsp; &nbsp;vtkRenderer *ren1 = vtkRenderer::New();<br>
&gt; &nbsp; &nbsp; &nbsp;ren1-&gt;AddActor(isoActor);<br>
&gt; &nbsp; &nbsp; &nbsp;ren1-&gt;SetBackground(0,0,1);<br>
&gt; &nbsp;<br>
&gt; &nbsp; &nbsp; vtkRenderWindow *renWin = vtkRenderWindow::New();<br>
&gt; &nbsp; &nbsp; renWin-&gt;AddRenderer(ren1);<br>
&gt; &nbsp; &nbsp; renWin-&gt;SetSize(600,600);<br>
&gt; &nbsp; <br>
&gt; &nbsp; vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();<br>
&gt; &nbsp; iren-&gt;SetRenderWindow(renWin); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
&gt; &nbsp; <br>
&gt; &nbsp;<br>
&gt; &nbsp; //<br>
&gt; &nbsp; //STL OutPut<br>
&gt; &nbsp; &nbsp;vtkTriangleFilter *triangles=vtkTriangleFilter::New();<br>
&gt; &nbsp; &nbsp;triangles-&gt;SetInput(iso-&gt;GetOutput());<br>
&gt; &nbsp; &nbsp;<br>
&gt; &nbsp; vtkDecimatePro *decimate=vtkDecimatePro::New();<br>
&gt; &nbsp; decimate-&gt;SetInput(triangles-&gt;GetOutput());<br>
&gt; &nbsp; decimate-&gt; SetTargetReduction(0.9);<br>
&gt; &nbsp; decimate-&gt; PreserveTopologyOn(); &nbsp;<br>
&gt; <br>
&gt; &nbsp; &nbsp;vtkSTLWriter *stl=vtkSTLWriter::New();<br>
&gt; &nbsp; &nbsp;stl-&gt;SetInput(decimate-&gt;GetOutput());<br>
&gt; &nbsp; &nbsp;stl-&gt;SetFileName(&quot;head.stl&quot;);<br>
&gt; &nbsp; &nbsp;stl-&gt;Write();<br>
&gt; &nbsp; &nbsp;// &nbsp; <br>
&gt; &nbsp; renWin-&gt;Render();<br>
&gt; &nbsp; iren-&gt;Start();<br>
&gt; &nbsp; <br>
&gt; &nbsp; v16-&gt;Delete();<br>
&gt; &nbsp; iso-&gt;Delete();<br>
&gt; &nbsp; isoMapper-&gt;Delete();<br>
&gt; &nbsp; isoActor-&gt;Delete();<br>
&gt; <br>
&gt; &nbsp; ren1-&gt;Delete();<br>
&gt; &nbsp; renWin-&gt;Delete();<br>
&gt; &nbsp; iren-&gt;Delete();<br>
&gt; <br>
&gt; &nbsp; triangles-&gt;Delete();<br>
&gt; &nbsp; decimate-&gt;Delete();<br>
&gt; &nbsp; stl-&gt;Delete();<br>
&gt; <br>
&gt; &nbsp; return 0;<br>
&gt; }<br>
<br>
_______________________________________________<br>
This is the private VTK discussion list. <br>
Please keep messages on-topic. Check the FAQ at: &lt;http://public.kitware.com/cgi-bin/vtkfaq&gt;<br>
Follow this link to subscribe/unsubscribe:<br>
http://public.kitware.com/mailman/listinfo/vtkusers<br>
</font>
<br>
<br>