Bentley二次开发中的,沿曲线构造拉伸实体问题
引用文件:Bentley.Interop.MicroStationDGN
本人开发过程中遇到问题:
创建多个线段及弧线,通过自动创建复杂链获得,沿曲线构造拉伸实体的Path参数,拉伸曲线路径首尾特别近(类似手镯), 使用沿曲线构造拉伸实体的方法生成3000个构造拉伸实体,但是完成2000多个,抛出未知错误。
解决过程:
问题定位到,沿曲线构造拉伸实体异常,检测发现拉伸曲线路径有问题,是复杂连元素但是无法完成构造拉伸实体,
在软件中经过建模测试发现,自动创建复杂链的方法需要设置容差,开发中有以下两个方法,使用方法1,导致本次程序异常。
根据本业务特殊,路径线首尾间距小于容差值,导致自动创建复杂连,将路径线首尾连接起来,放样时出错。
自动创建复杂链的方法 :(针对 Utilities.ComApp.)
1. ComplexStringElement CreateComplexStringElement1(ref ChainableElement[] ChainableElements);
2. ComplexStringElement CreateComplexStringElement2(ref ChainableElement[] ChainableElements, double GapTolerance);
解决办法:
使用方法2:GapTolerance参数(容差)设置比实际需要保留的线段连接点间隔小两个数量级,假设保留待连接线段大于1mm的间隔,方法体参数值取0.001
ChainableElement[] chainableElements;
ComplexStringElement complexStringElement= Utilities.ComApp.CreateComplexStringElement2(ref chainableElements, double 0.001);