AMCAX v4.6.0上线说明
新增功能
通用模块
类IndexMap增加可就地创建的插入功能;
实体建模
TopoShape 的子类的哈希值计算工具类和相等工具类;
自动更新模型中顶点、边和面的容差功能;
支持平面的离散边组合成多个内环和外环(ShapeAnalysisFreeBounds::FindClosedWires);
网格剖分
二阶高阶网格生成;
支持曲率因子,狭窄因子,球/箱/圆柱形状尺寸,阈值限定等多种局部尺寸控制方式;
几何清理修复
延伸面直到到达指定长度或到达目标面组时停止并与目标面组合并;
压印功能新增Modified、Generated、IsDeleted接口。
接口变更
通用模块
部分接口增加 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&) 接口。
性能优化
实体建模
优化了Bezier曲线的包围盒的计算效率;
小幅优化通用Bool运算的计算效率;
MakeLoft类在处理共平面的边时会构造平面曲面而非B样条。
Bug修复
通用模块
修复二维变换判断手性变化错误的问题;
修复变换在缩放为整数0时未抛出异常的问题;
修复部分情况下随机出现段错误的问题;
实体建模
修复部分情况下创建双曲线时失败的问题;
修复部分情况下双曲线相交错误的问题;
修复部分情况下倒角失败的问题;
修复部分情况下平面模型布尔失败的问题;
修复部分情况下偏移形状崩溃的问题;
修复部分情况下平面wire自相交检测失败的问题;
修复部分情况下曲线和曲面在奇异点相交产生多个交点的问题;
修复了空输入等部分情况下布尔运算崩溃的问题;
修复了Extrema检测重叠面崩溃的问题;
修复部分情况下消除隐藏线崩溃的问题;
修复部分情况下消除隐藏线结果不对的问题;
网格剖分
修复部分情况下面网格化时内部边不能保持的问题;
修复导出FLUENT_MSH文件后单元ID混乱的问题;
几何约束求解
修复抛物线约束精度不足的问题;
几何清理修复
修复BuildCoons、BuildPlane、BuildFaceFromSurface输入edge不属于shape时崩溃的问题;
STEP文件转换
修复部分情况下返回空Shape的问题;
修复部分崩溃、异常;
IGES文件转换
修复部分崩溃。
文档信息
用户指南:建模基础模块新增B样条基础;补充完成几何建模模块;
教程:网格剖分模块新增高阶网格;新增网格尺寸控制教程。
详细功能列表请查看官网(www.amcax.net)说明,欢迎下载评测和交流。