X (梁轴线) Y (跨宽) Z (高度)
beam_column_model.py
土木人的Python课系列课程

数字化土木工程的
图形学表达

周文琪
上海非解构数字科技有限公司
2026.06.09
01.01 课程综述

联系与答疑

本课程由周文琪主讲,上海非解构数字科技提供学术与技术支持。欢迎通过以下方式取得联系,进行技术交流与课程答疑。

周文琪微信二维码

周文琪

上海非解构数字科技有限公司联合创始人,一级注册结构工程师,高级工程师。欢迎扫码添加微信进行答疑交流,获取课程源码与资料。

微信答疑 课程交流 源码获取
微信交流群二维码

图形算法交流群

非解构数智土木图形算法交流群。扫码加入微信群聊,与同行及专家探讨数字化土木工程、图形学表达、BIM/CAD 算法等技术前沿。

技术交流 微信群聊 前沿探讨
上海非解构数字科技二维码

非解构数字科技

上海非解构数字科技有限公司官方微信公众号。关注我们,获取数字化土木工程前沿技术、自研产品动态与技术专栏。

官方公众号 技术专栏 自研产品
01.01 课程综述

土木人为什么要学 Python?

这不是一门单纯讲语法的课,而是从图纸、坐标、构件和模型出发,用 Python 建立工程问题的数字化表达能力。

工程制图 几何建模 参数化 CAD/BIM 自动化
从痛点开始

传统工程工作里,重复劳动太多

画图、改图、统计、检查、导出报告,这些工作常常依赖人工经验和软件菜单。Python 的价值,是把这些动作变成可复用、可检查、可批量执行的流程。

1重复画图:轴网、梁柱、洞口
2重复统计:长度、面积、体积
3重复检查:交点、净距、碰撞
4重复输出:DXF、模型、报告
Python 的第一层价值

门槛低,但上限不低

容易开始

语法接近自然语言,适合从工程计算、小脚本和数据处理切入。

胶水语言

可以连接 Excel、CAD、BIM、数据库、Web 服务和各种专业库。

资源丰富

开源教程、示例代码和社区资料多,适合持续自学和工程落地。

低门槛的意义不是“简单”,而是让土木专业学生更快进入工程问题本身。
生态丰富

Python 像一个工程工具箱

PyPI 和 Conda 让我们可以直接调用成熟工具,把精力放在“如何表达工程对象”和“如何组织计算流程”上。

计算与数据

  • NumPy:向量、矩阵、坐标变换
  • Pandas:工程表格与统计
  • OpenPyXL:Excel 输入输出

图形与建模

  • Matplotlib:二维图表
  • PyVista:三维渲染
  • CadQuery:实体建模
  • ezdxf:DXF 图纸输出
与人工智能深度绑定

AI 时代,Python 是通用接口

从矩阵运算到深度学习,从图像识别到机器人具身智能,Python 已经成为连接算法、数据和工程场景的重要语言。

对土木人而言,AI 不是替代专业判断,而是放大数据处理、模型识别和自动化决策的能力。
import numpy as np

grid = np.array([
    [0, 0, 0],
    [6000, 0, 0],
    [6000, 6000, 0],
])

print(grid.shape)  # 工程坐标也可以被计算
本课程的切入点

从图形学升级工程制图

土木工程天然依赖几何表达。CAD/BIM 软件背后,仍然是点、线、面、体、坐标系、变换、相交、布尔运算和碰撞检测。

学会用代码表达几何,才能真正理解软件菜单背后的原理。
点:柱心 / 节点
线:梁轴线 / 管线
坐标系:工程空间
核心主线

把工程对象变成可计算对象

工程参数:跨度、截面、标高、管径
坐标与向量:节点、方向、局部坐标系
曲线、曲面、实体:梁、柱、墙、板、管线
变换、相交、布尔、碰撞检测
渲染、DXF、模型文件、报告
这门课不怎么讲

不从语法清单开始

变量、函数、循环、类、模块都会讲,但它们会放在具体工程问题中出现。先让学生知道“为什么需要它”,再学习“如何写出来”。

讲法转换

  • 不是:先学所有 Python 语法
  • 而是:先计算梁自重,再抽象成函数
  • 不是:先讲矩阵定义
  • 而是:先放置柱网,再理解 4×4 变换
  • 不是:先讲库 API
  • 而是:先生成图纸,再拆解 DXF 对象
学完能做什么

从会用软件,到理解并改造流程

自动生成

根据参数生成轴网、梁柱墙板轮廓、构件模型和基础图形。

自动检查

检查相交、开洞、净距和碰撞,输出可追溯的结果。

自动输出

生成渲染截图、DXF 图纸、模型文件和 Excel 报告。

一次最小闭环

从参数到图纸,只看一个简单例子

这段代码不是为了展示语法,而是展示思维:工程对象可以被参数化、函数化,并最终进入自动化流程。

def beam_weight(length_m, width_m, height_m, density=25.0):
    volume = length_m * width_m * height_m
    return volume * density

weight = beam_weight(6.0, 0.3, 0.6)
print(weight)  # 27.0 kN
课程安排

4 次直播,完成一条清晰主线

第一次 6月9日

课程综述、Python 环境、基础库、渲染引擎、坐标系与点线面。

第二次 6月18日

几何体变换与投影、相交运算。

第三次 6月25日

体的表达,几何变换,布尔运算、碰撞检测,建立自动检查思维。

第四次 7月2日

CAD 的 Python 接口、BIM 数据解析、BIM 几何渲染与运算。

本节收束

Python 是抓手,工程问题才是中心

我们学习 Python,不是为了把土木工程变成计算机专业,而是为了让工程知识能够被表达、被计算、被检查、被复用。

下一步:配置 Python 环境,让第一段工程脚本真正跑起来。

课后思考

  • 你现在最想自动化的一个工程动作是什么?
  • 它的输入参数有哪些?
  • 它的输出应该是图、表、模型,还是报告?