<br><font size=2 face="sans-serif">Don, Here's a small tcl program to do just that, it also outputs a VRML file as well. At the end of the script the write commands are commented out. Once you get it working uncomment the file you want... </font>
<br>
<br><font size=2 face="sans-serif">I have similar programs that use instead of Delauney 3D</font>
<br><font size=2 face="sans-serif">1) PowerCrust Reconstruction FIlter</font>
<br><font size=2 face="sans-serif">2) Surface Reconstruction Filter</font>
<br><font size=2 face="sans-serif">3) vtkShepard Method</font>
<br>
<br><font size=2 face="sans-serif">...john</font>
<br>
<br><font size=2 face="sans-serif">tcl code</font>
<br><font size=2 face="sans-serif">============================</font>
<br><font size=2 face="Courier New"># This program demonstrates and tests the use of vtkDelauney3D</font>
<br><font size=2 face="Courier New"># The input is a cloud of points sampled from the MRI contours.</font>
<br><font size=2 face="Courier New"># The output is a complete surface</font>
<br>
<br><font size=2 face="Courier New">package require vtk</font>
<br><font size=2 face="Courier New">package require vtkinteraction</font>
<br>
<br><font size=2 face="Courier New">vtkOutputWindow con</font>
<br><font size=2 face="Courier New">vtkPolyData myCloud</font>
<br>
<br><font size=2 face="Courier New"># Read some points.</font>
<br><font size=2 face="Courier New">vtkPolyDataReader pointSource</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; pointSource SetFileName &quot;cleo2.vtk&quot;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; pointSource SetOutput myCloud</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; pointSource Update</font>
<br>
<br><font size=2 face="Courier New">set numPts [myCloud GetNumberOfPoints]</font>
<br><font size=2 face="Courier New">vtkCellArray vertices</font>
<br>
<br><font size=2 face="Courier New"># here a vertex cell is inserted in the CellArray for</font>
<br><font size=2 face="Courier New"># every point in the point list</font>
<br><font size=2 face="Courier New">for {set i 0} {$i &lt; $numPts} {incr i} {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; vertices InsertNextCell 1</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; vertices InsertCellPoint $i</font>
<br><font size=2 face="Courier New">}</font>
<br>
<br><font size=2 face="Courier New">myCloud SetVerts vertices</font>
<br>
<br><font size=2 face="Courier New"># render the raw input points into the first renderer</font>
<br><font size=2 face="Courier New">vtkPolyDataMapper rawpointsmapper</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; rawpointsmapper SetInput myCloud</font>
<br><font size=2 face="Courier New">vtkActor rawpointsactor</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; rawpointsactor SetMapper rawpointsmapper</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; [rawpointsactor GetProperty] SetColor 0.5 0.5 0.5</font>
<br>
<br><font size=2 face="Courier New"># construct surface with Delaunay3D</font>
<br><font size=2 face="Courier New">vtkDelaunay3D surf</font>
<br><font size=2 face="Courier New">&nbsp; surf SetInput [pointSource GetOutput]</font>
<br><font size=2 face="Courier New">&nbsp; surf SetTolerance 0.0001</font>
<br><font size=2 face="Courier New">&nbsp; surf SetAlpha 4.0</font>
<br><font size=2 face="Courier New">&nbsp; #surf BoundingTriangulationOn</font>
<br>
<br><font size=2 face="Courier New">vtkGeometryFilter pd</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; pd SetInput [surf GetOutput]</font>
<br>
<br><font size=2 face="Courier New">vtkDataSetMapper map</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; map SetInput [pd GetOutput]</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; map ScalarVisibilityOff</font>
<br>
<br><font size=2 face="Courier New">vtkActor surfaceActor</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; surfaceActor SetMapper map</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; [surfaceActor GetProperty] SetDiffuseColor 1.0000 0.3882 0.2784</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; [surfaceActor GetProperty] SetSpecularColor 1 1 1</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; [surfaceActor GetProperty] SetSpecular .4</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; [surfaceActor GetProperty] SetSpecularPower 50</font>
<br>
<br><font size=2 face="Courier New"># Render everything</font>
<br><font size=2 face="Courier New">vtkRenderer ren1</font>
<br><font size=2 face="Courier New">vtkRenderer ren2</font>
<br><font size=2 face="Courier New">vtkRenderWindow renWin</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; renWin AddRenderer ren1</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; renWin AddRenderer ren2</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; renWin SetSize 600 200</font>
<br><font size=2 face="Courier New">vtkRenderWindowInteractor iren</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; iren SetRenderWindow renWin</font>
<br>
<br><font size=2 face="Courier New"># Add the actors to the renderer</font>
<br><font size=2 face="Courier New">ren1 AddActor rawpointsactor</font>
<br><font size=2 face="Courier New">ren2 AddActor surfaceActor</font>
<br>
<br><font size=2 face="Courier New"># set the properties of the renderers</font>
<br>
<br><font size=2 face="Courier New">ren1 SetBackground 1 1 1</font>
<br><font size=2 face="Courier New">ren1 SetViewport 0.0 0.0 0.50 1.0</font>
<br><font size=2 face="Courier New">[ren1 GetActiveCamera] SetPosition 1 -1 0</font>
<br><font size=2 face="Courier New">ren1 ResetCamera</font>
<br>
<br><font size=2 face="Courier New">ren2 SetBackground 0 0 1</font>
<br><font size=2 face="Courier New">ren2 SetViewport 0.50 0.0 1.00 1.0</font>
<br><font size=2 face="Courier New">[ren2 GetActiveCamera] SetPosition 1 -1 0 &nbsp; </font>
<br><font size=2 face="Courier New">ren2 ResetCamera</font>
<br>
<br><font size=2 face="Courier New"># render the image</font>
<br><font size=2 face="Courier New">iren AddObserver UserEvent {wm deiconify .vtkInteract}</font>
<br><font size=2 face="Courier New">renWin Render</font>
<br><font size=2 face="Courier New">wm withdraw .</font>
<br>
<br><font size=2 face="Courier New">vtkSTLWriter stlBinary</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp;stlBinary SetInput [pd GetOutput]</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp;stlBinary SetFileName cleo2_d3d.stl</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp;stlBinary SetFileType 2</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp;#stlBinary Write</font>
<br>
<br><font size=2 face="Courier New">vtkVRMLExporter vrml</font>
<br><font size=2 face="Courier New">&nbsp; vrml SetInput renWin</font>
<br><font size=2 face="Courier New">&nbsp; vrml SetFileName cleo2.wrl</font>
<br><font size=2 face="Courier New">&nbsp; vrml SetSpeed 5.5</font>
<br><font size=2 face="Courier New">&nbsp; #vrml Write</font>
<br>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td>
<td><font size=1 face="sans-serif"><b>Donald S Dunbar &lt;dsd@lorax.ca&gt;</b></font>
<br><font size=1 face="sans-serif">Sent by: vtkusers-admin@vtk.org</font>
<p><font size=1 face="sans-serif">02/12/2004 06:29 PM</font>
<br>
<td><font size=1 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; To: &nbsp; &nbsp; &nbsp; &nbsp;vtkusers@vtk.org</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; cc: &nbsp; &nbsp; &nbsp; &nbsp;(bcc: John Anast-JM/PGI)</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; Subject: &nbsp; &nbsp; &nbsp; &nbsp;[vtkusers] X,Y,Z -&gt; STL?</font></table>
<br>
<br>
<br><font size=2 face="Courier New">I would like to do the following:<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; input topography as a set of unstructured (X,Y,Z) grid points<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; generate a surface (i.e., the ground)<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; output the surface as a stereo-lithography file (STL)<br>
<br>
So far I've managed to input the data, generate a surface using <br>
vtkDelauney3D, and look at it. &nbsp;I don't know how to take the next step; <br>
that is, convert the unstructured grid output of vtkDelauney3D to the <br>
PolyData type required by vtkSTLWriter. &nbsp;Can someone please tell me how <br>
to complete this, or suggest a better way. &nbsp;Thanks.<br>
<br>
Don Dunbar<br>
Lorax Environmental<br>
Vancouver, BC<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://www.vtk.org/mailman/listinfo/vtkusers<br>
</font>
<br>
<br>