Skip to content

Modelagem de terrenos a partir das curvas de nível com o BlenderGis

arquivo dxf com curvas de nível

  1. Baixe o arquivos acima.
  2. Importe o arquivo DXF no Blender. gis_dxf_01
  3. Em modelos muito grades, é recomendado aumentar o valor da variável Menu N -> aba View -> Seção view -> end. foi utilizado o valor 1000000 (um milhão de metros ou 100 km) neste exemplo. gis_dxf_02
  4. Localize a(s) camada(s) onde estão as curvas de nível - As camadas (layers) de um arquivo dxf são importadas como objetos. gis_dxf_03
  5. No arquivo baixado, as camadas 5 e 6 contém respectivamente as curvas de 5 em 5 metros e as curvas intermediárias.
  6. Selecione os objetos 5_curves e 6_curves no Outliner e junte em um único objeto usando o atalho ctrl+j. gis_dxf_04
  7. Renomeie (tecla F2) a nova camada para CURVAS DE NIVEL. gis_dxf_05
  8. converta as curvas em Mesh. gis_dxf_06

Com as curvas convertidas em mesh, é possível exportar as coordenadas dos vértices para um arquivo .txt utilizando o código abaixo. Esse arquivo pode ser usado para geração de terrenos em programas como O Revit e Archicad:

import bpy
from pathlib import Path

# Get the directory of the current .blend file
blend_dir = Path(bpy.data.filepath).parent
save_to_file = blend_dir / "vertices.txt"  # Output file in the same folder
separator = ","  # Custom separator

# Extract vertex coordinates
vertices = [f"{v.co.x}{separator}{v.co.y}{separator}{v.co.z}" for v in bpy.context.object.data.vertices]

# Save to file
with open(save_to_file, 'w') as file:

    file.write('\n'.join(vertices))

print(f"Vertices exported to: {save_to_file}")   
  1. No Menu do Plug-in BlenderGis, com a Mesh das curvas de nível selecionada, escolha a opção Gis -> Mesh -> Delanay. gis_dxf_07

  2. Uma malha é gerada a partir das curvas gis_dxf_08

  3. Mudando para o Edit Mode pode-se ver a malha triangular gerada pelo comando. gis_dxf_08

  4. Para muitas operações é preciso transformar o terreno em um sólido.

  5. No modo de edição, utilize a seleção de arestas 2.

img

  1. Selecione todas as arestas (Utilize o atalho a).

img

  1. Selecione as arestas que estão na borda da seleção.Select -> Select Loops -> Select Boundary Loops

img

  1. Use o comando Extrude e com restrição para o eixo z z e arraste o mouse para baixo da superfície do terreno. A altura mínima do sólido deve ser suficiente para as operações booleanas de corte do terreno. Clique com o botão esquerdo do mouse para aceitar LMB.

img

  1. Ao menos que seu terreno tenha as bordas niveladas no eixo z, é preciso alinhar os segmentos. Use o comando Scale s, restrinja para o eixo z z, utilize o valor 0(zero) e clique com o botão esquerdo do mouse para aceitar LMB.

img

  1. Para fechar o sólido, com as arestas inferiores selecionadas, utilize o comando Vertex->New Edge/Faces from Vertex ou digitando o atalho f (as vezes esse comando é chamado de fuse).

img

arquivo terreno_malha_triangular.blend