Python está se tornando uma ferramenta poderosa para engenheiros estruturais. Além de automatizar cálculos repetitivos, existem bibliotecas especializadas que permitem modelar e analisar estruturas diretamente em Python — às vezes sem precisar de softwares comerciais caros. Este guia explora as principais ferramentas.
Por que Python para engenharia estrutural
Softwares comerciais como SAP2000, ETABS e Robot Structure Analysis são excelentes, mas caros e fechados. Com Python, engenheiros podem automatizar pré e pós-processamento de análises, criar scripts de dimensionamento conforme normas (ABNT NBR), desenvolver ferramentas personalizadas para problemas específicos e integrar cálculos com sistemas de gestão e BIM.
NumPy e SciPy: a base do cálculo técnico
NumPy é a biblioteca fundamental para computação numérica em Python. Para engenharia estrutural, ela fornece arrays de alta performance para matrizes de rigidez, álgebra linear para resolução de sistemas, e funções matemáticas para integrações e transformadas.
SciPy expande o NumPy com solvers de equações diferenciais, otimização, interpolação e processamento de sinais — fundamentais para análises dinâmicas e de vibração.
PyNite: análise de pórticos e treliças
PyNite é uma biblioteca Python open source para análise estrutural de pórticos e treliças por Elementos Finitos. Suporta análise estática, vínculos de apoio, cargas distribuídas e concentradas, e gera diagramas de esforços internos.
Exemplo básico de análise de uma viga biapoiada:
import PyNite
from PyNite import FEModel3D
modelo = FEModel3D()
modelo.add_node(“A”, 0, 0, 0)
modelo.add_node(“B”, 5000, 0, 0)
modelo.def_support(“A”, True, True, True, True, False, False)
modelo.def_support(“B”, False, True, True, True, False, False)
modelo.add_material(“Concreto”, E=30000, G=12500, nu=0.2, rho=2.5e-9)
modelo.add_section(“VS25x50”, A=125000, Iy=3.25e8, Iz=2.60e9, J=1e6)
modelo.add_member(“Viga”, “A”, “B”, “Concreto”, “VS25x50”)
modelo.add_member_dist_load(“Viga”, “FY”, -0.02, -0.02) # 20 kN/m
modelo.analyze()
viga = modelo.members[“Viga”]
print(f”Momento máximo: {max(viga.moment_array(“Mz”, 100)):.2f} kN.m”)
print(f”Flecha máxima: {min(viga.deflection_array(“dy”, 100))*1000:.2f} mm”)
OpenSees via openseespywin
OpenSees é um framework open source desenvolvido pela UC Berkeley para simulação de sistemas estruturais e geotécnicos. É o software mais usado em pesquisa de engenharia estrutural mundial, com capacidade para análises não-lineares, sísmicas e de colapso progressivo.
O pacote openseespywin permite usar OpenSees diretamente de Python no Windows, integrando o poder de um solver institucional com a facilidade do Python para pré e pós-processamento.
Dimensionamento conforme ABNT NBR com Python
Um exemplo de script para verificação de pilares de concreto conforme NBR 6118:
def verificar_pilar_concreto(N_sd, M_sdx, M_sdy, b, h, fck=25, fyk=500, cobrimento=30):
“””
Verificação simplificada de pilar retangular – NBR 6118.
N_sd: força normal de cálculo (kN)
M_sdx, M_sdy: momentos fletores de cálculo (kN.m)
b, h: dimensões da seção (cm)
“””
fcd = fck / 1.4 # MPa
fyd = fyk / 1.15 # MPa
Ac = b * h # cm²
# Índice de esbeltez (simplificado)
N_rd_max = 0.7 * (fcd * Ac / 100 + fyd * Ac * 0.02 / 100) # kN simplificado
eta = N_sd / N_rd_max
# Excentricidade mínima
e_min = max(b/30, h/30, 2.0) # cm
M_min = N_sd * e_min / 100 # kN.m
M_sdx = max(M_sdx, M_min)
M_sdy = max(M_sdy, M_min)
print(f”=== VERIFICAÇÃO DE PILAR ===”)
print(f”Seção: {b}x{h} cm | fck={fck} MPa”)
print(f”N_sd = {N_sd:.1f} kN | N_rd_max = {N_rd_max:.1f} kN”)
print(f”Taxa de utilização à compressão: {eta*100:.1f}%”)
print(f”Excentricidade mínima: e_min = {e_min:.1f} cm → M_min = {M_min:.2f} kN.m”)
if eta > 0.95:
print(“ATENÇÃO: Pilar com alta taxa de utilização. Revisar seção.”)
else:
print(“OK: Taxa de utilização dentro do limite.”)
return eta
verificar_pilar_concreto(N_sd=800, M_sdx=40, M_sdy=25, b=30, h=40, fck=25)
Matplotlib para visualização de resultados
Matplotlib é a biblioteca padrão para plotagem em Python e permite gerar diagramas de esforços internos, mapas de contorno de tensões e gráficos de resposta dinâmica com qualidade de publicação.
Integrar PyNite + Matplotlib cria um ambiente de análise estrutural completo onde todo o workflow — modelagem, análise e visualização — acontece em Python, com reprodutibilidade total e custo zero.
Recursos para aprender
O curso Python para Engenheiros da plataforma Coursera e o canal do YouTube Engineering with Python têm excelente material introdutório. A documentação do PyNite tem exemplos práticos de vigas, pórticos e estruturas 3D. O fórum da OpenSees Wiki tem décadas de discussões técnicas sobre modelagem avançada.
Tem um projeto em mente?
Somos especialistas em transformar ideias em produtos digitais. Apps, sites, automações e IA — vamos construir juntos.