前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈Tekla二次开发学习历程

浅谈Tekla二次开发学习历程

作者头像
用户9832121
修改2024-08-30 13:14:47
1.6K0
修改2024-08-30 13:14:47
举报
文章被收录于专栏:灵燕空间

了解更多请关注【灵燕空间】公众号

Tekla这款软件在钢结构工程领域已经十分畅通使用,但是近几年,钢结构工程出现许多新型结构设计,并且随着设计经验积累的一些规则,许多结构建模以及出图需要更加智能化一些,开发一些针对性的插件。而这个智能化时代在建筑领域自动化提高效率是最主要的竞争力,对于一些大型建筑公司可以通过招聘更多技术人员来更进不断增长的项目,但是小型建筑公司对于技术人员编制有规模性限制,这个时候一名Tekla二次开发人员的作用可以起到很大的作用。

再来谈一谈钢筋工程领域,目前国内最流行的钢筋翻样算量软件是广联达,但是广联达更多的是为民建领域所开发的工程软件,相对于人防,军工等一些建筑结构复杂的某些功能并不能满足需求,而Tekla近年来其公司大力推行钢筋工程这块儿,其本身自由灵活的程度相对而言较高,但是自由限制了他的建模速度以及断料功能。曾经我在某项目做过实验,(本人亲自驻场开发墙板建模插件,异形洞口建模插件,拉钩筋建模插件等等,相信很多用过Tekla建钢筋工程的工程师都知道其本身建模的速度之慢,并且在洞口配筋和拉钩筋这块儿功能本身是难以实现批量建模的,手工建的话那效率慢的有点惊人,并且精确度不好把控,而当初广联达在某些图纸模块由于功能不能修改,所以最终商务是在这些特殊地方手工计算的)技术手工算量,商务广联达工程量,Tekla在不断料前提下建出精细模型提取的工程量(由于项目本身钢筋断料处都是套筒,没有搭接,所以工程量这块儿不牵扯影响),在几千吨钢筋工程体量下,相互之间只差1-2t左右。而经过仔细对比,最终技术工程量和商务工程量某些部分毕竟是手算有可能是有一些误差,或者Tekla本身建模规则使得钢筋呈现多布或少布,尽管可能在某些地方若是没有开发专门性建模插件效率可能缓慢,但总体而言以纯软件可以完成项目建模的只有Tekla,而对业主结算和分包结算时可能更具有说服力些。

但上述只是本人在Tekla二次开发领域的一次小小的实践,比如在Tekla钢筋断料这块儿搞定之后可以纯粹发布钢筋料单应用加工厂加工,又比如可以出具钢筋深化图,钢筋采购清单,以及本人前段时间在网上看到的可以从TEKLA输出钢筋数据文件流来进行智能化机器加工,但是这些本人还未经过实践,只是从钢筋工程量这块儿的精细之处猜想的,从二次开发角度,只需要后续开发出对应的插件,那将来在效率以及功能上还是非常卓越的。

下面来谈谈本人对于Tekla二次开发的学习感悟:

本人Tekla二次开发网络视屏课程采用软件版本:

Tekla Structures 2020;

Visual Studio 2019。

在Tekla二次开发过程中,本人最初学习阶段使用的是Tekla2019,但是后续在开发过程中为适应广大工程师需求,试验过其实对于版本没有过大的要求,可以在2019版本中开发完成,后续为其他版本使用只需要修改引用的命名空间即可,但是过程中可能会有一些错误提示,需要经验去改正,而过早的版本的话可能还需要修改对应的前端数据界面组合控件版本。

当然相对而言对于开发语言C#还是需要技术人员有一定的掌握程度,但是掌握程度不会有很高要求,限于初级入门层次基本就可以了,剩下的都是实践过程中不断调用API去进步。谈到TEKLA开发文档Tekla Open API我觉得大多数人可能头疼的就是这个问题,看不懂,讲真的, 我刚开始解除这个开发文档我也看不懂,一大堆的东西都是啥呀,各种命名空间下的,有些还有示例,有些真的郁闷没有例子,要么看不懂,要么看懂了不知道在哪儿用,这个真没办法,就只能慢慢实践摸索,而且关键还是纯英文版本,对于我们不是科班出身的还真有些困难。

反正我总结了一下,基本上C#语言基础是最次要的一个条件,基本看一两天的网上教程,或者直接跟着我那个课程走就没啥了,其次就是Tekla软件熟练度,最起码要知道软件本身有哪些功能有哪些分类,最后就是Tekla Open API要不断的学习积累的看,看不懂没关系,你开发的多了哪天你看着看着就忽然懂了。不要想着一下子全部看懂,讲真的到现在我开发了很多插件,但是的话我只是了解一些我用的功能,剩下的很多我也不知道,还有一点就是开发只要最终效果相同,功能以及方法只是便捷程度对于一个小插件而言不需要讲很多代码的高效性,本来一个插件执行周期就几秒钟,你效率再高其实意义不大,但是精确度要高,这个对于建筑领域来讲一个插件差一点儿整体模型差的可能就有点多了,毕竟插件是一种群体化多的结构才会用的,不是说一两个节点我就专门开发个插件。

下面谈一谈Tekla二次开发关于模型、图纸、报表三大模块。

关于Tekla模型二次开发来讲,我认为是最基础的也是最重要的,怎么说呢,入门容易但是难精通,正常来讲,学习Tekla二次开发都是从模型开发开始的,从最简单的创建Tekla本身的一些墙(Plane)、梁(Beam)、板(Plate)、柱(Column)、螺栓(Bolt)、钢筋(Rebar)、焊缝(Weld)等等。接下来去学习一些组合功能,工作平面,轮廓点等等,最后差不多就能去自己做开发了,已经可以出师了。当然你要想更出色,就需要本身对于钢结构工程和钢筋工程的专业图集知识有更深入理解的前提下去单独设计一些算法来实现复杂结构的建模插件开发。一些动态的建模插件是需要用代码逻辑去提取一些数据达到插件适应所有选择布置插件内容的对象。这里面最重要的我觉得就是提取选择对象的各种属性数据和不停切换的工作平面了,讲真的功能强大的一些插件内部会切换好几个工作平面甚至还有动态的循环工作平面。

接下来讲讲Tekla报表二次开发,这部分我认为是最头疼的一部分,这部分其实可以内部编辑报表模板,但是讲真的一些需要的功能可能满足不了。第二种就是自己做开发插件来提取数据到Datagridview,Excel,PDF,Word这种,纯粹的就是模型数据,而这个最需要的就是看懂开发文档,钢结构这部分一些数据完全可以从代码中逆推出来,但是对于主钢而言(我指的是那种一块型钢需要好几块板来拼接的)可以从建模时候就用板来拼接,但是工程量有些大,可以直接用型钢截面去做,在提取数据到报表时候分开获取腹板、翼缘板就可以达到同样的效果,钢筋的话纯粹就是为难人,提取数据累的要死,有些数据还要单独设计算法,有些数据隐藏在开发文档的某个隐蔽角落需要你自己去找。找出来之后你要从选择的模型中单独过滤出你想要的构件数据。总之报表这块儿要二次开发,最好在模型二次开发熟练之后去做,不然你会一头雾水,最终做出来的就是似是而非的插件。

最后我们来讲讲Tekla二次开发图纸这块儿,其实这块儿我涉入的没有很深入,可能谈的话开发文档有些内容理解的不深很清楚,读者朋友们不要笑出来。这块儿的话呢我觉得就是大同小异,一个插件多种图纸可以共用,①最基础的首先就是你要能获取到文档管理器当中的图纸列表,然后可以过滤出各种类型的图纸,构件图,零件图,浇注体图纸,GA布局图纸,还有一个最重要的多件图,多件图的话相信大家都知道可以链接零件图实现交互,有些工程项目上零件图不是一个零件一张,而是用多件图来链接的(当然你们工程要是每个零件一张图的话这部分就不用管了)。②其次就是学习打开关闭图纸到遍历所有图纸打开-关闭,这部分其实还是挺有用的,可以相对来说自动化的一键智能出图,但是这个项目结构类型都要相似。③接下来你就需要去学习如何在当前打开的图纸中去添加注释,画线,测量距离角度等数据,泡面,节点细部。④好了上面的你全部掌握之后基本就已经是图纸开发的小成功力了,单独去做某个类型的图纸插件已经可以胜任了。⑤接下来你要干啥?接下来你就要深入注释这部分,这个难度有些大,一个零件注释有很多种,了解所有的注释内容,然后根据项目要求去选择你要添加注释的内容,这之后呢,你要了解这个图纸的坐标,就是坐标,这部分说难不难,一看就知道坐标是咋回事,但是难的是在你插件中用图纸坐标去生成一系列动态的坐标点,然后去注释,添加尺寸,改变图纸布局等等。⑥这部分的话我称之为大师级开发人员,掌握所有的开发注释,然后去开发一个图纸系统,可以达到上述的遍历图纸然后自动打开每个图纸去根据当前图纸中的零件去添加注释,尺寸,布局等等,之后关闭图纸,打开下一张图纸......一直循环到当前图纸文档管理器的所有图纸都修改完成,这部分讲真的俺不太会,处在探索试验阶段,这部分怎么说,要是完成以后出图完全可以一个按钮解决的问题。理想状态下是开发一个插件去放几个控件参数来人为调节各个图纸注释的内容,之后就直接按钮一点,一套图纸就等着自己出完,略微做修改就可以了。

下面赠送读者一段构件对象的大部分属性数据代码

代码语言:javascript
复制
//赋予对象基础属性
             object.startpoint=(0,0,0);
             object.Endpoint=(0,0,1000);
             object.Name="SC";//名称
             object.Finish = "FINISH";//抛光
             object.Class = txtClass.Text;//颜色等级
             object.PartNumber.Prefix = "零件前缀是撒";
             object.PartNumber.StartNumber = 1;//零件起始编号
             object.AssemblyNumber.Prefix = "构件前缀:厂房";
             object.AssemblyNumber.StartNumber = 1;//构件起始编号
//对象位置
             object.Position.Plane = Position.PlaneEnum.MIDDLE;//在当前工做平面的位置
             object.Position.PlaneOffset = 0;//在当前工作平面位置的偏移;
             object.Position.Rotation = Position.RotationEnum.FRONT;
             object.Position.RotationOffset = 0;
             object.Position.Depth = Position.DepthEnum.MIDDLE;
             object.Position.DepthOffset = 0;//起点在当前工作平面上的x方向的便宜不改变整体构件位置
//对象偏移
             object.StartPointOffset.Dx = 0;
             object.StartPointOffset.Dy = 0;
             object.StartPointOffset.Dz = 0;
             object.EndPointOffset.Dx = 0;
             object.EndPointOffset.Dy = 0;
             object.EndPointOffset.Dz = 0;                   
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数字科技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 了解更多请关注【灵燕空间】公众号
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档