public override bool Read(string fileName, IMonitor mon = null) { try { unitList.Clear(); vtkSTLReader reader = vtkSTLReader.New(); vtkPolyDataMapper mapper = vtkPolyDataMapper.New(); reader.SetFileName(fileName); mapper.SetInputConnection(reader.GetOutputPort()); StlUnit unit = new StlUnit("Stl." + Path.GetFileNameWithoutExtension(fileName)); unit.Actor.SetMapper(mapper); unitList.Add(unit); reader.Dispose(); mapper.Dispose(); return(true); } catch (Exception e) { if (mon != null) { mon.ErrorLine(e.Message); } return(false); } }
private void ReadSTL() { // Path to vtk data must be set as an environment variable // VTK_DATA_ROOT = "C:\VTK\vtkdata-5.8.0" vtkTesting test = vtkTesting.New(); string root = test.GetDataRoot(); string filePath = System.IO.Path.Combine(root, @"Data\42400-IDGH.stl"); vtkSTLReader reader = vtkSTLReader.New(); reader.SetFileName(filePath); reader.Update(); vtkPolyDataMapper mapper = vtkPolyDataMapper.New(); mapper.SetInputConnection(reader.GetOutputPort()); vtkActor actor = vtkActor.New(); actor.SetMapper(mapper); // get a reference to the renderwindow of our renderWindowControl1 vtkRenderWindow renderWindow = renderWindowControl1.RenderWindow; // renderer vtkRenderer renderer = renderWindow.GetRenderers().GetFirstRenderer(); // set background color renderer.SetBackground(0.2, 0.3, 0.4); // add our actor to the renderer renderer.AddActor(actor); }
private void ReadStlFileDraw() { vtkSTLReader stlReader = vtkSTLReader.New(); //stlReader.SetFileName(@"..\..\Data\anchor_hook.stl"); stlReader.SetFileName(@"..\..\Data\42400-IDGH.stl"); vtkShrinkPolyData shrink = vtkShrinkPolyData.New(); shrink.SetInputConnection(stlReader.GetOutputPort()); shrink.SetShrinkFactor(0.85); vtkPolyDataMapper stlMapper = vtkPolyDataMapper.New(); //stlMapper.SetInputConnection(stlReader.GetOutputPort()); stlMapper.SetInputConnection(shrink.GetOutputPort()); vtkLODActor stlActor = vtkLODActor.New(); stlActor.SetMapper(stlMapper); stlActor.GetProperty().SetColor((float)Color.Orange.R / 256, (float)Color.Orange.G / 256, (float)Color.Orange.B / 256); //设置actor的颜色 vtkRenderer stlRender = vtkRenderer.New(); vtkRenderWindow renWin = myRenderWindowControl.RenderWindow; renWin.AddRenderer(stlRender); stlRender.AddActor(stlActor); stlRender.SetBackground(1.0, 1.0, 1.0); }
static public vtkProp3D genSTLActor(CompontData data, vtkProperty pro) { if (data.restriction != null) { return(genActorByRestriction(data, pro)); } vtkSTLReader reader = vtkSTLReader.New(); reader.SetFileName(data.param_str); reader.Update(); return(genUserActor(data, reader.GetOutputPort(), pro)); }
private void button1_Click(object sender, EventArgs e) { vtkSTLReader reader = vtkSTLReader.New(); string path = @"d:\Staz\projekt2\Projekt2\Projekt2\fibula.stl"; reader.SetFileName(path); vtkPolyDataMapper Mapper = vtkPolyDataMapper.New(); Mapper.SetInputConnection(reader.GetOutputPort()); vtkActor Actor = vtkActor.New(); Actor.SetMapper(Mapper); renderer.AddActor(Actor); reader.SetFileName(path); vtkPolyDataMapper Mapperinscription = vtkPolyDataMapper.New(); Mapperinscription.SetInputConnection(reader.GetOutputPort()); renderer.ResetCamera(); renderWindow.GetInteractor().Render(); }
public static double CalculateVolumeFromStl(string fileName) { vtkSTLReader reader = vtkSTLReader.New(); reader.SetFileName(fileName); vtkMassProperties property = vtkMassProperties.New(); property.SetInputConnection(reader.GetOutputPort()); property.Update(); double volume = property.GetVolume(); property.Dispose(); reader.Dispose(); return(volume); }
/// <summary> /// 读取STL文件 /// </summary> /// <param name="fileName"></param> /// <returns></returns> vtkActor ReadStlFile(string fileName) {// 读取stl模型 vtkSTLReader stlReader = vtkSTLReader.New(); stlReader.SetFileName(fileName); stlReader.Update(); vtkPolyDataMapper mapper = vtkPolyDataMapper.New(); mapper.SetInputConnection(stlReader.GetOutputPort()); vtkActor actor = vtkActor.New(); actor.SetMapper(mapper); return(actor); }