2013-07-05 110 views
0

我試圖使用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 )。我不知道爲什麼沒有文件被輸出。

我沒有收到任何錯誤消息。

+1

我打算本週進行測試,但是,你不具備任何錯誤訊息?你的程序是否有權寫入這個目錄var/www/labvtk/labvtk /?當你想從vtkSphereSource寫入你的數據時它工作嗎? – Marcassin

+1

Marcassin可能是一些東西 - 嘗試從不同的目錄運行它。並用http://www.vtkedge.org/Wiki/VTK/Examples/Cxx/IO/WriteVTP進行測試,看看是否會產生輸出文件。在這些不寫代碼的路徑中不應該有代碼路徑,所以如果你在正確的目錄中查找,它必須是非VTK導致你的問題(如權限等) –

+0

嗨,它可以工作現在,謝謝。這是一個非常愚蠢的目錄問題。我的命令行參數是不正確的,應該只是一直像須藤./vtkOBJWriterExample trytry1.vtk comeOn.obj – ThinkFlow

回答

0

這是一個目錄的問題(我的命令行參數是指向錯誤的目錄)。這本來應該是剛剛./vtkOBJWriterExample trytry1.vtk comeOn.obj