我試圖使用vtkOBJWriter從大衛·多里亞的.vtk文件轉換爲obj文件的輸出文件。我GIT從https://github.com/daviddoria/vtkOBJWriter克隆,增加了一個build目錄下的CMake和製作,並改變了文件vtkOBJWriterExample.cxx到:麻煩試圖使用vtkOBJWriter
#include <vtkSmartPointer.h>
#include <vtkPolyData.h>
#include <vtkSphereSource.h>
#include <vtkPolyDataReader.h>
#include "vtkOBJWriter.h"
int main (int argc, char *argv[])
{
vtkSmartPointer<vtkPolyData> input;
std::string outputFilename;
// Verify command line arguments
if(argc > 1) // Use the command line arguments
{
if(argc != 3)
{
std::cout << "Required arguments: InputFilename.vtp OutputFilename.obj" << std::endl;
return EXIT_FAILURE;
}
vtkSmartPointer<vtkPolyDataReader> reader =
vtkSmartPointer<vtkPolyDataReader>::New();
reader->SetFileName(argv[1]);
reader->Update();
input = reader->GetOutput();
outputFilename = argv[2];
}
else
{
outputFilename = "output.obj";
vtkSmartPointer<vtkSphereSource> sphereSource =
vtkSmartPointer<vtkSphereSource>::New();
sphereSource->Update();
input->ShallowCopy(sphereSource->GetOutput());
}
vtkSmartPointer<vtkOBJWriter> writer =
vtkSmartPointer<vtkOBJWriter>::New();
writer->SetInput(input);
writer->SetFileName(outputFilename.c_str());
writer->Update();
return EXIT_SUCCESS;
}
,以反映我使用VTK 5.8.0。當我嘗試執行sudo ./vtkOBJWriterExample trytry1.vtk Documents/comeOn.obj時,沒有輸出文件(我沒有在相應的目錄中看到它)。我也嘗試了trytry1.vtp,它似乎沒有工作。我VTK文件格式爲:
# vtk DataFile Version 3.0
vtk output
ASCII
DATASET POLYDATA
FIELD FieldData 3
group_id 1 1 int
0
base_index 1 3 int
0 0 0
avtOriginalBounds 1 6 double
-10 10 -10 10 -10 10
POINTS 14387 float
-5.10204 -2.65306 -9.69246 -5.10204 -2.75294 -9.59184 -5.37199 -2.65306 -9.59184
...
POLYGONS 28256 113024
3 0 1 2
...
POINT_DATA 14387
SCALARS hardyglobal float
LOOKUP_TABLE default
3.4926 3.4926 3.4926 3.4926 3.4926 3.4926 3.4926 3.4926 3.4926
...
這似乎並不匹配數據目錄car.vtp的格式,但我認爲我做了適當的修改(使用vtkPolyDataReader.h的格式,而不是vtkXMLPolyDataReader的。H )。我不知道爲什麼沒有文件被輸出。
我沒有收到任何錯誤消息。
我打算本週進行測試,但是,你不具備任何錯誤訊息?你的程序是否有權寫入這個目錄var/www/labvtk/labvtk /?當你想從vtkSphereSource寫入你的數據時它工作嗎? – Marcassin
Marcassin可能是一些東西 - 嘗試從不同的目錄運行它。並用http://www.vtkedge.org/Wiki/VTK/Examples/Cxx/IO/WriteVTP進行測試,看看是否會產生輸出文件。在這些不寫代碼的路徑中不應該有代碼路徑,所以如果你在正確的目錄中查找,它必須是非VTK導致你的問題(如權限等) –
嗨,它可以工作現在,謝謝。這是一個非常愚蠢的目錄問題。我的命令行參數是不正確的,應該只是一直像須藤./vtkOBJWriterExample trytry1.vtk comeOn.obj – ThinkFlow