ArchiGeo
建筑师的计算几何工具箱(自研)
本文将介绍我开发的计算几何工具箱ArchiGeo。ArchiGeo系列工具包主要包含几何类库、优化计算、快速可视化等功能,旨在为建筑设计提供便携、集成、易用的运算功能。目前,工具包主要支持Python和C#调用。
Python | archigeo
Python版本的库名为archigeo。archigeo充分利用了python的简洁语法,将点线面等基础数据结构和python原有数据结构等价对应,同时提供常用的几何运算函数(geomutils)和几何类库(geomoop),并将一些常用外部库做了再封装,从而实现一组统一API调用多种类库功能的丝滑体验。
archigeo/
├── basic/
│ ├── numeric.pyd
│ ├── geomutils.pyd
│ ├── geomoop.pyd
├── compa/
│ ├── fieldgen.pyd
│ ├── ...
├── visual/
│ ├── pygame_extend.pyd
│ ├── ...
├── rhino/
│ ├── rhino_extend.pyd
工具库archigeo已经在多个项目中得到了充分应用,包括:
- AlphaPlot 应用亮点是平滑向量场中的弹簧系统对建筑走道的组合变化的模拟
- QuadraBlock
- StandRecons 应用亮点是SmoothArcSerires类的设计和应用
- OvalAgent-PCM 体育建筑智能设计助手的智能配参功能,亮点是看台碗碗边变换参数计算等
目前archigeo已经在PyPI发布了试用版本,仅支持windows系统的python3.9和python3.12。开发工作还在进展中,未来将完善说明文档和发布开源版本。
.NET | ArchiGeoSharp
C#版本的库名为ArchiGeoSharp。ArchiGeoSharp充分利用dotnet的内置语法功能,将几何对象的定义和运算以简洁的形式呈现。
namespaces
├── ArchiGeo.Basic 无外部依赖的基础库
│ ├── ArchiGeo.Basic.Numeric 数值计算
│ ├── ArchiGeo.Basic.Geometry 二三维几何定义和运算
│ ├── ArchiGeo.Basic.Transform 坐标变换、关联判断、布尔运算等
├── ArchiGeo.Depute 常用库的托管和再封装
├── ArchiGeo.Raylex 快速可视化工具
├── ArchiGeo.GRBSolver 常用优化问题求解,依赖于授权的Gurobi软件
├── ArchiGeo.Rhinex 对接Rhino建模,依赖于授权的Rhino软件
工具库ArchiGeoSharp已经在多个项目中得到了充分应用,包括:
- ProtoMass 应用亮点是RectAgent类在磁场力作用下的运动对建筑体块组合的模拟
- OvalAgent-MSAcc 体育建筑智能设计助手的加速版本
目前开发工作还在进展中,未来将完善说明文档和发布开源版本和Nuget源。