九韶内核v4.6.0上线

2025-04-04 11:30 九韶AMCAX

九韶内核v4.6.0上线

2025年4月4日,九韶内核新版本AMCAX v4.6.0正式上线,包含大量新功能和改进,请看以下详细说明。

AMCAX v4.6.0上线说明

  1. 新增功能

  2. 通用模块

    • 类IndexMap增加可就地创建的插入功能;

    实体建模

    • TopoShape 的子类的哈希值计算工具类和相等工具类;

    • 自动更新模型中顶点、边和面的容差功能;

    • 支持平面的离散边组合成多个内环和外环(ShapeAnalysisFreeBounds::FindClosedWires);

    网格剖分

    • 二阶高阶网格生成;

    • 支持曲率因子,狭窄因子,球/箱/圆柱形状尺寸,阈值限定等多种局部尺寸控制方式;

    几何清理修复

    • 延伸面直到到达指定长度或到达目标面组时停止并与目标面组合并;

    • 压印功能新增Modified、Generated、IsDeleted接口。

  3. 接口变更

  4. 通用模块

    • 部分接口增加 constexpr 和 noexcept 关键字;

    • 类 BoundingRange 中的函数 IsOut(BoundingRange&) 修改为 IsOut(const BoundingRange&);

    • 类 IndexSet 的 [] 运算符,类 IndexMap 的 () 运算符和 find_key(int i) 函数,类 GeneralTransformationT 和 TransformationT 中的 Value(i, j) 和 SetValue(i, j, v) 函数在下标越界时不再会抛出 OutOfRange 异常,而是会触发断言;

    • 类 FrameT 在三维时的构造函数 FrameT(loc, dz, dx) 在 dz 与 dx 平行时由原来会抛出异常改为不抛出异常,其结果等价于调用 FrameT(loc, dz);

    • 类 MatrixT 中的函数 Invert() 和 Inverted() 在矩阵奇异的时候不会触发断言,而是会返回一个零矩阵;

    • 部分模板类的构造、插入和修改功能由原来的左值引用改为转发引用;

    • 类 IndexSet 和 IndexMap 中的 begin()/cbegin()/end()/cend() 等函数的返回值类型由 std::deque<typename map_type::iterator>::iterator/const_iterator 修改为 std::deque<typename map_type::value_type*>::iterator/const_iterator);

    实体建模

    • 删除类 Adaptor3CurveOnSurface 中 ChangeCurve() 和 ChangeSurface() 接口;

    • 暂时移除类NURBSAPIApprox中的ApproxCurves接口和NURBSAPIInterpolate中的InterpolateCurves接口;

    网格剖分

    • 删除NMMesh中GetAllNodes(std::vector<NMPoint3>&)、GetNodesByElementType(std::vector<Indext>&, const ElemType, const NMEntity &) 和 GetEntityElementTypes(std::vector<ElemType>&, const NMEntity&) 接口。

  5. 性能优化

  6. 实体建模

    • 优化了Bezier曲线的包围盒的计算效率;

    • 小幅优化通用Bool运算的计算效率;

    • MakeLoft类在处理共平面的边时会构造平面曲面而非B样条。

  7. Bug修复

  8. 通用模块

    • 修复二维变换判断手性变化错误的问题;

    • 修复变换在缩放为整数0时未抛出异常的问题;

    • 修复部分情况下随机出现段错误的问题;

    实体建模

    • 修复部分情况下创建双曲线时失败的问题;

    • 修复部分情况下双曲线相交错误的问题;

    • 修复部分情况下倒角失败的问题;

    • 修复部分情况下平面模型布尔失败的问题;

    • 修复部分情况下偏移形状崩溃的问题;

    • 修复部分情况下平面wire自相交检测失败的问题;

    • 修复部分情况下曲线和曲面在奇异点相交产生多个交点的问题;

    • 修复了空输入等部分情况下布尔运算崩溃的问题;

    • 修复了Extrema检测重叠面崩溃的问题;

    • 修复部分情况下消除隐藏线崩溃的问题;

    • 修复部分情况下消除隐藏线结果不对的问题;

    网格剖分

    • 修复部分情况下面网格化时内部边不能保持的问题;

    • 修复导出FLUENT_MSH文件后单元ID混乱的问题;

    几何约束求解

    • 修复抛物线约束精度不足的问题;

    几何清理修复

    • 修复BuildCoons、BuildPlane、BuildFaceFromSurface输入edge不属于shape时崩溃的问题;

    STEP文件转换

    • 修复部分情况下返回空Shape的问题;

    • 修复部分崩溃、异常;

    IGES文件转换

    • 修复部分崩溃。

  9. 文档信息

  10. 用户指南:建模基础模块新增B样条基础;补充完成几何建模模块;

    教程:网格剖分模块新增高阶网格;新增网格尺寸控制教程。

详细功能列表请查看官网(www.amcax.net)说明,欢迎下载评测和交流。