É possível criar dxf 3D com OGR?

8

Alguém sabe se é possível criar um dxf 3D com OGR? Gostaria de atribuir às linhas de contorno um valor Z e depois exportá-las para o dxf para algum trabalho em cad.

PS. Eu sei que o FME pode fazer isso, mas gostaria de tentar encontrar uma solução gratuita e, se possível, fazê-lo no QGIS.

Nathan W
fonte
O Autocad map3d faz isso facilmente.
Brad Nesom
2
Sim, mas o AutoCAD Map não é realmente livre
Nathan W

Respostas:

9

Mais fácil do que eu pensava (graças a BenjaminGolder pela dica):

ogr2ogr -f "DXF" Contours.dxf Contours.TAB -zfield Height

Contours.TAB é o arquivo da guia MapInfo de entrada.

Nathan W
fonte
1
Tanto quanto posso dizer, isso funcionará para linhas de contorno, mas não para linhas 3d verdadeiras, que têm uma coordenada (x, y, z) para cada ponto, e não um valor z para cada ponto da linha
johanvdw
Eu tenho tentado isso no FWTools (2.4.7) sem sorte. Alguém teve alguma sorte? Não tenho certeza se está faltando alguma coisa no meu GDAL?
22630 Ryan Garnett
3

Por uma questão de completude.

Eu acredito que este deve ser um comentário sobre a resposta de Regan. Mas como não tenho reputação suficiente, deixarei como resposta.

O gravador DXF suporta camadas 2.5D e, dada uma entrada de linha, deve gerar uma cadeia de linhas 3D no dxf.

No caso de entrada POLYGONS, você deve ter mais cuidado, pois o driver padrão é gerar um HATCH dxf com uma polilinha. E, por especificação de formato, essa linha não suporta coordenadas Z, apenas X, Y.

Se você inserir polígonos, o ogr poderá exportar o dxf com cadeias de linhas 3D representando esses polígonos. Para isso, você precisa configurar a opção de configuração DXF_WRITE_HATCH como NO.

//Bash
export DXF_WRITE_HATCH=NO
ogr2ogr -f "DXF" Contours.dxf Contours.TAB

//Windows
set NEWVAR=SOMETHING
ogr2ogr -f "DXF" Contours.dxf Contours.TAB

Tanto quanto sei que isso não está documentado nem explicado em nenhum lugar, foi adicionado na revisão 24991

kxtells
fonte
1

Eu nunca tentei, mas deve ser possível. O código-fonte do driver DXF grava valores Z no dxf se a geometria for 2.5D, que (de acordo com a fonte do leitor de shapefile ) é o que você terá se a forma de entrada tiver valores Z.

Regan Sarwas
fonte
Isso soa bem. Próxima pergunta, como você cria um shapefile com valores Z. Digamos que eu tenha uma coluna chamada Altura, existe uma maneira fácil de fazer deste o valor Z.
Nathan W
Desde que o shapefile reconheça o Z, com o ArcGIS, você pode usar um bloco de código na calculadora de campo. Não sei como você faria isso no Qgis.
Regan Sarwas
1
na documentação ogr2ogr, parece que você pode criar um arquivo shapefile 3d usando o -zfieldargumento e especificando um nome de campo que contenha valores z. gdal.org/ogr2ogr.html
BenjaminGolder
@BenjaminGolder Isso parece bom. Vou tentar.
Nathan W