从最简单的三维基本实体“长方体”说起
一个三维长方体,在笛卡尔坐标系中至少有以下种表达方式:
1. 给出长方体的两个顶点坐标即可确定长方体;
2. 给出长方体8个顶点坐标;
3. 给出初始点坐标以及长,宽,高;
4. 如果一条边由2个点确定,给出12条边即可确定;
5. 如果一个面由四个顶点确定,给出6个面即可确定;
6. 给出一个函数表达式,限定任意一点坐标在长方体限定范围内;
1,2表达是同一方法,可以理解为常规表达,3是参数表达,4和5是最广泛使用的边界表达Boundary Representation(简称B-Rep结构),6则是约束表达,通常在建模过程中使用;
在实际应用中,我们可能还会有如下需求:
1. 编辑修改长方体(修改长宽高,并执行undo和redo操作)
2. 离散面片化长方体用来显示和划分网格
3. 网格化长方体供仿真使用
4. 长方体与别的物体进行布尔(并,减,差)运算;
5. 移动,缩放,旋转长方体
6. 根据业务需求找到理想的长方体长宽高参数,需要多次自动调整参数
7. 复制,阵列,变换该长方体
8. 点/线/面/实体 到长方体的距离/夹角
9. 赋值属性(颜色,材料,边界条件,荷载等)到长方体,或者长方体的面/线/点上
10.需要对长方体进行切割加工;
11.将几何导出为中间格式,供第三方软件使用
12.计算长方体本身的属性(质量,体积,面积,重心)
稍微介绍一下B-Rep结构,主流的几何内核都使用B-Rep结构,主要原因是这种几何表达信息丰富,可以满足几乎所有对几何数据的要求,但缺点也显而易见,数据过多冗余,在大规模数据上,性能是一个很大的问题。B-Rep就像是工具中的瑞士军刀,什么都能做。
B-Rep 边界表示方法,把所有的三维实体都通过封闭的边界面表示,比如长方体可以用过六个面表达。
由此可见,几何内核的作用在于表达,处理几何对象,对外提供接口。以两个长方体的布尔运算为例,如果只知道顶点坐标信息,布尔运算无法进行,顶点也无法表达出计算结果。只有知道了边/面,位置等足够信息后才能进行,几何内核的实体表达可以提供这些信息。
此外,好的几何内核提供了约束建模,参数建模,驱动建模,事务等各种底层机制,方便上层BIM应用的开发。
几何约束引擎是公认的CAD/BIM参数化设计的关键核心技术,是BIM的关键基础组件,技术难度大,可靠性要求极高,目前被国外垄断。
20世纪90年代至2006年,英国剑桥大学Owen教授创办D-Cubed公司开发约束引擎,长期占据引擎70%市场。DCM市场并不大,截至2018年销售额不过3000万美元,但其在产业发展中属于“卡脖子”工程。为了在竞争中保持优势地位,西门子公司于2006年全资收购了D-Cubed,引发业内震动,许多著名CAD/BIM厂商如Autodesk公司为了不受制于人,纷纷宣布自行开发几何约束引擎,以确保技术安全。几何约束引擎的重要性由此可见一斑。
几何约束引擎,广泛应用在草图轮廓表达、零件建模参数表达、装配约束以及碰撞检查等场景中,为快速确定设计意图表达、检查干涉、模拟运动提供了强有力的支持,可帮助最终用户提高生产效率。在计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助工程(CAE)以及建筑、工程和施工(Architecture, Engineering & Construction,AEC)等应用领域,几何约束引擎都是最基础的核心组件。
当前,企业为应对定制化的需求,对基础组件的几何约束引擎的需求量越来越大,开发国产自主的几何约束引擎不仅可以为国产BIM提供性价比高的解决方案,更可精准地响应国内的需求,助力企业创新。