AMCAX Kernel
Geometry kernel for CAD/CAE/CAM
九韶内核 1.0.0.0
载入中...
搜索中...
未找到
简介

欢迎阅读 AMCAX 内核文档,这是一个用于 CAD/CAE/CAM 应用的几何内核。它包括从基本的几何表示到各种建模算法,功能以 C++ 库的形式提供。

概述

主要模块是 AMCAX Common 和 AMCAX Part。

AMCAX Common

  • common:常用的基本类,如点、向量、包围盒等

AMCAX Part

  • nurbs:自由曲面建模工具
  • math:基本的数学库,包括基本的 2D 和 3D 基元、多边形和三角形网格
  • geometry:几何图形库,包括曲线和曲面
  • topology:表示实体模型的 B-Rep 结构
  • modeling:用于生成基本模型的高级 API
  • geomAlgo:用于根据约束构造 2D 直线和圆的工具
  • hatch:对 B-Rep 对象进行分类的工具
  • intersect:用于曲线和曲面相交的工具
  • boolean:布尔运算工具
  • fillet:用于倒角和圆角的工具
  • offset:用于与偏移相关的建模操作的工具
  • healing:修复形状的工具
  • hlr:用于删除隐藏线的工具
  • topomesh:网格划分工具
  • io:输入/输出工具

AMCAX GCS

  • gcs: 用于求解几何约束的工具

AMCAX SubD

  • polymesh: 多边形网格的数据表示和输入/输出
  • polymeshAPI: 用于多边形网格进行细分建模的工具

AMCAX TMSpline

  • tmeshSpline: T网格样条的数据表示、网格化、输入/输出
  • tmeshSplineAPI: 用于T网格样条进行细分建模的工具

AMCAX Step

  • step: STEP 格式导入、导出工具

AMCAX Iges

  • iges: IGES 格式导入、导出工具

AMCAX OCCTIO

  • occtio: OCC BREP 格式导入、导出工具

AMCAX Meshing

  • meshing: 网格结构与网格算法相关工具

AMCAX NextMesh

  • nextmesh: 用于仿真分析前处理的网格剖分工具

AMCAX GeomE

  • shapeEdit: 用于几何清理修复编辑

AMCAX ApplicationFramework

  • Label: 用于标定一个带属性的拓扑
  • Attribute: 提供属性系统及属性操作
  • WithAttr: 内核建模操作的带属性接口封装

主要功能

AMCAX 内核在当前版本中提供以下功能。

建模数据

建模数据提供实现 3D 对象边界表示 (B-Rep) 的数据结构。

  • 点、顶点、方向、轴和标架的描述;(AMCAX Common 模块)
  • 2D 和 3D 曲线的描述;
  • 曲面描述;
  • B-Rep 数据结构。

几何算法

几何算法提供支持几何数据建模的操作算法,提供以下算法:

  • 计算曲线和曲面的值和导数;
  • 计算几何对象之间的极值;
  • 计算两条二维曲线、两个曲面或一条曲线与一个曲面的交点;
  • 将点投影到曲线和曲面上;
  • 使用插值和近似构建曲线和曲面;
  • 根据几何约束构建 2D 曲线。

建模算法

建模算法提供了用于对实体建模中使用的 B-Rep 对象进行建模的算法,提供以下算法:

  • 构建简单形状(方体、楔形体、圆柱体、圆锥体、球体、环面);
  • 变换或复制 B-Rep 对象;
  • 构建拉伸体;
  • 构建旋转体;
  • 构建扫掠体;
  • 放样;
  • B-Rep 的布尔运算,包括并、交和差;
  • 在边和顶点上构建圆角和倒角;
  • 构建偏移形状;
  • 构建加厚体。

网格化

网格划分提供了将模型细分为三角形网格的算法:

  • 为 B-Rep 对象构建一个三角形网格;
  • 将 B-Rep 对象导出为 STL 和 OBJ 格式。

几何约束求解器

几何约束求解器提供了三维几何约束的求解算法,可求解以下约束:

  • 点与点、线、面距离约束;
  • 面与线、面距离约束;
  • 平行线距离;
  • 向量夹角。

STEP 文件翻译器

STEP 文件读取模块目前对 STEP AP203/AP214/AP242 格式中的以下部分提供了一定程度的支持:

  • 几何、拓扑实体;
  • 零件名称等信息实体;
  • 零件的组装。

STEP 文件导出模块可以遵循 GB/T 16656-214 标准将 AMCAX::TopoShape 对象导出为 STEP 格式,其中包含:

  • 相关的几何、拓扑信息;
  • 零件的名称与描述信息;
  • 零件或零件各表面的颜色信息。

自由曲面建模

提供基于多边形网格细分和和 T 网格样条两种数据表达的网格编辑建模方式,其中相似的功能如下:

  • 构建简单形状(平面矩形、方体、圆柱体、圆锥体、圆台、球体、环面);
  • 变换对象或其部分元素;
  • 复制整个对象和复制该对象部分面;
  • 添加、细化和删除面;
  • 分离和缝合边;
  • 对形状的边和面进行拉伸;
  • 添加和删除特征边;
  • 构建近似加厚体;
  • 简单补洞。

需要注意虽然两个模块功能相似,但不同数据结构在使用时和相同控制网格下的表现均有不同

多边形网格库支持的独立功能:

  • 多边形网格细分;
  • 多边形网格转换为三角网格;
  • 多边形网格对象导入导出为 OBJ 格式和 OFF 格式;
  • 多边形网格导出为 TMS 格式供 T 网格样条库读取。

T网格样条库支持的独立功能:

  • 对 T 网格样条进行修复和节点均匀化;
  • T 网格样条对象构建为一个三角网格;
  • T 网格样条对象导入导出 TMS 格式;
  • T 网格样条对象或其控制点导出为 OBJ 格式。

网格剖分

提供用于仿真分析前处理的网格剖分工具:

  • 几何导入(文件STEP,AMCAX::TopoShape);
  • 网格文件导出(OBJ,VTK,FLUENT_MSH);
  • 网格剖分控制(全局/局部尺寸,增长率);
  • 网格剖分类型(线网格,三角形,四面体)、扫掠网格;
  • 辅助工具(接触面对判定,面组定义)。

几何清理修复编辑

提供用于仿真前处理的几何清理修复编辑功能:

  • 点的缝合/删除/释放/投影操作;
  • 边的缝合/释放/合并/分割/重建/投影/类别检测操作;
  • 面的翻转/删除/分割操作。

应用框架 AF

提供用于为内核拓扑附加属性,提供内核建模接口的带属性封装,提供一套属性系统。
AMCAX::Label 提供如下功能:

  • 获取或者更新 Label 上的拓扑对象;
  • 在应用层标定一个 TopoShape,并用于属性的挂载,提供 Label 上属性的增加、删除、查找接口;
  • 提供获取子 Label 的接口,子 Label 对应带属性的子拓扑。

属性系统功能如下:

  • 提供了整型属性,浮点型属性,颜色属性,字符串属性等基础属性;
  • 属性系统提供 ID 机制用于唯一标识 AMCAX::Label 上的一个属性;
  • 提供在 AMCAX::Label 上创建指定类型属性对象的接口;
  • 提供 AMCAX::AttributePolicy 机制,用于解决属性冲突。

WithAttr 模板用于对内核建模接口,布尔接口的带属性封装,功能如下:

  • 对内核 modelling 下的相关接口进行带属性的封装,并自动构建出对应的 AMCAX::Label 对象;
  • WithAttr<TopoShape> 用于对任意一拓扑模型进行构建并获取对应的 AMCAX::Label 对象;
  • 提供带属性布尔操作的级联更新机制(属性,拓扑);
  • 带属性的参数化接口,在更改建模参数后,模型自动重建。

要求

C++ 编译器 / IDE

AMCAX 内核代码使用 ISO C++ 17 标准,仅在以下操作系统和编译器进行了测试。

操作系统 编译器
Windows 10/11 Microsoft Visual Studio 2019/2022 x64
Ubuntu 20.04/22.04 GNU gcc 9.4.0/11.4.0
Kylin Desktop v10 gcc (Ubuntu 9.3.0-10kylin2) 9.3.0

第三方库依赖

AMCAX Meshing 模块依赖于 GMP 6.2.1TBB12 2021.10.0MPFR 4.2.0。若需要使用 AMCAX Meshing 模块,您需要获取这三个三方库的动态库。您可以自行编译或者从网上下载


Copyright © 2023 合肥九韶智能科技有限公司 版权所有