摘要:为解决除尘器设计中,因除尘器设备大、结构复杂、参数多,导致的设计效率低、出错率高等问题,根据Tekla三维软件提供的二次开发接口,针对除尘器设计进行编程开发,编写能够自动创建除尘器模型的插件。以除尘器壳体为例,介绍用C#语言编写能自动调用设计参数并快速创建壳体三维模型的插件。开发的建模插件经测试表明,此方法对提高除尘器的设计效率、准确度等方面均有良好的表现。
关键词:Tekla自动建模二次开发除尘器
ApplicationofTeklaSecondaryDevelopmentAutomaticModelinginDustCollectorDesign
CHENWeibin
FujianLongkingEnvironmentalProtectionCo.,Ltd.,Longyan,FujianProvince,364000China
Abstract:Tosolvetheproblemsoflowdesignefficiencyandhigherrorratecausedbylargeequipment,complexstructure,andmultipleparametersindustcollectordesign,programminganddevelopmentwerecarriedoutbasedonthesecondarydevelopmentinterfaceprovidedbyTekla3Dsoftwarefordustcollectordesign,andapluginthatcanautomaticallycreateadustcollectormodelwaswritten. Takingthedustcollectorshellasanexample,thisarticleintroducesapluginwritteninC#languagethatcanautomaticallycalldesignparametersandquicklycreateathree-dimensionalmodeloftheshell.Thedevelopedmodelingpluginhasbeentestedandproventohavegoodperformanceinimprovingthedesignefficiencyandaccuracyofdustcollectors.
KeyWords:Tekla;Automaticmodeling;Secondarydevelopment;Dustcollector
当前除尘器设计,多以CAD软件的二维设计为主。为适应市场需求,提高设计质量,为此开始尝试使用Tekla软件进行除尘器三维设计。Tekla常用于钢结构厂房、高层建筑[1]的设计,它能够精确建模[2],在制造领域具有很大的优势。但因除尘器设备结构复杂,构件多,三维建模困难,所以在除尘器的设计中应用较少。一台百万机组壳体的建模,耗时5~7d,效率低,易出错。为提高效率,针对性对系统节点深化[3]、使用Tekla二次开发[4]编写节点小插件,虽然提高一些效率,但还有很多步骤需要人工处理,不能满足除尘器设计的效率要求。
为解决这一难题,针对性提出按整体自动建模的思路如图1所示。通过寻找常规建模中,操作重复率高、易错、繁琐的步骤,梳理并制定规范的流程。根据各部件之间的逻辑关系,应用软件自带的TeklaOpenAPI开放接口,编程自动建模插件,提高除尘器设计效率。
1整体自动建模应用
1.1填写数据表
把设计需要使用的数据编制成Excel表格,并按模板填写,使之方便后续读取识别。以国能(福州)二期2×660MW机组配套电除尘器为例,这是一台百万机组,模型庞大,应用参数多。为实现编程自动读取数据,可先把结构计算后得到的各个构件型材截面数据,以及电除尘器跨距、室距、高度尺寸等数据,汇总到一张表格(表1)。对于有增减的电场数、室数,可以相应增减柱的行数,以及电场、室的间距数据单元格,这样可适用于各种规模的除尘器设计。
1.2自动获取数据
利用C#编程语言自动获取第一步保存的表格数据。首先,把表格另存在D盘的特定文件夹内;其次,用C#读取对应文件的DataTable对象;最后,逐行读取数据,分别保存到预先定义好的参数中。对于一行有多个参数的可以保存在数据列表List<string>、List<double>中,方便后续的依次提取所需数据。主要代码如下。
stringNAME数据库=数据库excel名称();
stringPath="D:\\节点参数\\"+NAME数据库;
stringname="0壳体";
DataTableDataSet2=ReadExcelToTable(Path,name);
intK行=DataSet2.Rows.Count;//查询表行数
for(intm=0;m<K行;m++)
{#遍历所有行数据,提取数据并保存}
1.3自动创建轴线
通过Tekla软件的API外接接口,利用已读取保存的数据,把数据作为坐标轴定义的参数再创建轴网。首先把得到的数据List<double>S各室间距、List<double>S各电场间距、List<double>S各层标高,通过字符串的运算操作,定义X轴、Y轴、Z轴的坐标标签。除了室间距、电场间距,可直接作为轴线的X轴、Y轴的参数,而Z轴的参数,须按壳体的柱底、柱顶,运算后作为轴线Z轴的参数。之后按坐标间距及标签,自动创建轴线。为方便后续构件位置判断和识别,可定义X轴正方向为烟气方向,且以轴网的左下轴线交点为原点坐标,便于壳体Y方向构件的判断。主要代码如下。
GridGrid ;=newGrid();//定义轴网
Name="Grid";
Grid.CoordinateX=S各电场间距;
Grid.CoordinateY=S各室间距;
Grid.CoordinateZ=S各层标高;
Grid.Insert();//创建轴网
1.4自动创建立柱
在X轴、Y轴的交点,创建对应的立柱。这一步骤是整体自动建模的关键步骤,之后其他的构件创建,都是以立柱为参照物来定位和判断构件类型。经参考大量电除尘器的设计图纸可知,电除尘器的壳体立柱是按固定形式设计。原则是:4个角落是立柱,进口侧、出口侧是隔立柱,Y方向上下边界是宽立柱,其余都为隔宽立柱。按这一原则进行自动化创建各类的立柱。建立的立柱可以先省略立柱和梁、墙板等其他构件的连接部分的构造,把这连接部分放到后面创建相连构件时创建。创建立柱这一功能类似Tekla软件自带可自定义的零件节点,它不依赖其他对象,仅自身就可以完整定义。但自定义零件节点的效率、灵活性不如二次开发插件,因此需要用二次开发创建类似于零件节点的对象。
创建立柱主要思路是按表格保存的立柱数据顺序,依次提取每行立柱的截面信息,按从左往右轴线间距依次创建对应的立柱。再按从上往下累加计算Y轴方向的坐标,依次创建第二行、第三行,直至最后一行。这样逐行遍历计算各个轴线交点的坐标,以嵌套循环方法创建相应位置的立柱。此步完成模型如图2所示,主要代码框架如下。
doubleDD=0;
for(inty=0;y<JM总集合.Count;y++)
{if(y>0)//JM总集合是一行立柱截面的列表
{DD=DD+S各室间距[y-1];}//行循环的定位
List<string>JM柱1行=JM总集合[y];
doubleD=0;
for(inti=0;i<JM柱1行.Count;i++)
{if(i>0)
{D=D+S各电场间距[i-1];}//列循环的定位
#创建对应的柱}
}
1.5自动创建X方向立柱之间的构件
沿X轴正方向,在邻两柱之间创建墙板、横梁、下圈梁。创建的这些构件是使用Tekla二次开发[5]的节点功能。它需要两个对象作为参考,来确定所要创建的对象的长度高度等信息,用Tekla二次开发替代Tekla系统连接节点的功能效率更高。首尾行是壳体的外边界,从下往上依次是下墙板、墙板、上墙板,均可按两立柱确定其主要参数。中间行是壳体内部,从下往上依次是下圈梁、管撑、横梁,也是按两立柱确定参数。当然创建这些构件的同时,对于两个构件的连接部分也需创建,对于第一步立柱未细化的部分,也在这一步中补全。具体代码框架与创建立柱相同,使用嵌套循环方法,依次创建最边界两墙面的下墙板、墙板、上墙板;中间墙面的下圈梁、支撑管、横梁。其中的参考对象是收集上一步创建的立柱列表List<Beam>,逐行遍历,按首行、中间行、尾行的区别分别在两个相邻立柱之间创建对应的构件。此步完成模型如图3所示。
1.6自动创建Y方向立柱之间的构件
与上一步创建X方向的构件原理相同,创建构件上端板、下端板、下部承压、中部承压走道等。电除尘器第一列是壳体的进烟气侧,最后列是出烟气侧,中间列则为壳体内部。首尾列从下往上依次是下端板、走道、中部承压、支撑、上端板。中间列从下往上依次是下部承压、中部承压、支撑。都可按Y方向相邻两个立柱确定其之间的构件的主要参数和类型,并自动创建出相应的构件和其与立柱连接部分的细节部分。此步完成模型如图4。
1.7自动创建立柱顶部之间的顶梁、顶板
与上两步大致相同,主要区别为顶梁是以立柱为参考定位,顶板则是以创建出来的顶梁为参考。其中,还需分析第一步保存数据的通道数、极距、阳极板数,创建大梁之间的小梁,以及用于悬挂阳极板排的挂耳的创建。电除尘器本体内部悬挂阴极针刺线和阳极板排[6],悬挂位置都在顶梁。顶梁的挂耳需要保证与保存数据的通道数、极距、阳极板数的一致性。顶梁是主要受力构件,常规都是设计为箱型梁,梁的四块大板的板厚都需计算所得,每个项目都会不同。因此,顶梁的板厚也要事先填写在数据表中,本次创建都是需要读取保存的数据来定义各个顶梁的板厚。创建以上对象完成后需要刷新模型视图myModel.CommitChanges(),使模型在视图中可以显现。此步完成模型如图5所示。
1.8完善模型其余细节
经以上7个步骤后,模型大致已经建成。剩下部分需要和除尘器其他部件配合及对接,代码一次性完成的难度较大,因此,,剩余需要细化部分做成窗口程序插件(如图6所示)。按插件按钮顺序使用工具,既可以快速创建出需要的细部节点,也可保住每个步骤不遗漏。模型完善后最终如图7所示,可以看出模型很大,但是完成的精度却很高,满足设计生产的需求。
2结语
本插件克服了Tekla软件系统节点适应性不强的缺点,也克服了常规二次开发节点小插件,需要人工一个一个上节点的缺点,从而满足除尘设备特大模型的设计要求。该建模插件经过几十台除尘器壳体测试,准确度达到100%,效率是常规做法的10倍左右,在设计效率、准确度、节约设计时间等方面均有良好的表现。此外,自动化建模思路也可以应用到电除尘器其他部件的设计。对于除尘器的进出口喇叭、灰斗等部件,可先确定灰斗喇叭的大小口尺寸、长度高度等结构计算后得到的截面型材,按各部件的结构特征及逻辑实现自动建模。
参考文献
[1]张红梅,许伟江.高层钢结构深化设计流程应用[J].建筑结构,2021(51):819-821.
[2]许伟江,余振权.TEKLA在多高层钢结构中的运用浅谈[J].建筑结构,2021(51):1422-1424.
[3]赵晨晨.基于BIM技术装配式钢结构节点深化设计[D].大连:大连理工大学,2022.
[4]高剑,曹洁华,贺明玄.TeklaStructures的二次开发在工程中的应用[J].施工技术,2008(5):166-167.
[5]邓凯.TeklaStructure栏杆建模插件参数化设计[J].船舶与海洋工程,2023(1):62-66.
[6]许志鹏,陆从相.电除尘技术研究进展[J].科技与创新,2023(22):159-161.