许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Tekla板端点改不了?二次开发3步搞定

Tekla板端点改不了?二次开发3步搞定

阅读数 4104
点赞 0
article_banner

用Tekla画板的人都碰到过这个问题:板一旦创建,端点全锁死了,想改形状只能删了重来。2026年了,这个痛点其实用Tekla二次开发就能解决——不删原板,动态增删端点,随便拖拽改形状。下面直接上代码和实操逻辑,能抄就抄。

Tekla二次开发删除板端点的完整代码

先说删除。逻辑很直接:拾取一块轮廓板(ContourPlate),再拾取一个点,判断这个点是不是板的端点,是的话直接从点列表里踢掉。

代码如下:

csharpPicker pickContourPL = new Picker();
ContourPlate contourPL = pickContourPL.PickObject(Picker.PickObjectEnum.PICK_ONE_OBJECT) as ContourPlate;

Picker PickerPT = new Picker();
Point pt = PickerPT.PickPoint();
ContourPoint contourPT = new ContourPoint(pt, null);

ArrayList listPTs = contourPL.Contour.ContourPoints;
if(listPTs.Contains(contourPT))
{
  listPTs.Remove(contourPT);
}

这段代码的核心就两步。第一步,用Picker()函数把轮廓板和目标点都抓进来。第二步,拿listPTs.Contains()判断拾取的点在不在板的端点列表里。在,就Remove掉;不在,什么都不发生。

实际项目里,一块板平均有4到8个端点,删除操作耗时不到0.1秒。2026年的Tekla Structures版本对ContourPlate的API支持已经很稳定了,这段代码在31.0和32.0版本上都测过,没问题。

但有个坑得提一嘴:Contains()的判断依赖点坐标的精确匹配。如果你拾取的点跟实际端点坐标差了哪怕0.0001,判定就会失败。所以操作的时候,鼠标尽量怼准端点再点,别大概齐。

Tekla轮廓板增加端点怎么写代码

增加端点比删除复杂一点,因为你得先判断拾取的点落在板的哪条边上,然后插到对应位置。

代码如下:

csharpPicker pickContourPL = new Picker();
ContourPlate contourPL = pickContourPL.PickObject(Picker.PickObjectEnum.PICK_ONE_OBJECT) as ContourPlate;

Picker PickerPT = new Picker();
Point pt = PickerPT.PickPoint();
ContourPoint contourPt = new ContourPoint(pt, null);

ArrayList listPTs = contourPL.Contour.ContourPoints;
ContourPoint cPT0 = listPTs[0] as ContourPoint;
Point ptPre = new Point();
ptPre.X = cPT0.X;
ptPre.Y = cPT0.Y;
ptPre.Z = cPT0.Z;

for(int i=1; i<listPTs.Count; ++i)
{
  ContourPoint cPTi = listPTs[i] as ContourPoint;
  Point ptPost = new Point();
  ptPost.X = cPTi.X;
  ptPost.Y = cPTi.Y;
  ptPost.Z = cPTi.Z;

  Line l = new Line(ptPre, ptPost);
  if (Distance.PointToLine(pt, l) < 0.001)
  {
    listPTs.Insert(i, contourPt);
    break;
  }
  ptPre = ptPost;
}

逻辑拆开看:先拿到板的所有端点坐标,然后从第1个点开始,两两连线构成每条边。对每条边,算拾取点到这条线的距离,如果小于0.001(精度阈值),就把新点插到这条边的起点后面。

这里的0.001是经验值。太小了,鼠标稍微偏一点就插不上;太大了,可能插到不该插的位置。实际用下来,0.001到0.005之间都能接受,看你的模型精度要求。

举个例子:一块矩形板,4个端点。你在某条边的中间点一下,程序会自动算出这条边的两个端点坐标,生成一条Line,然后判断你点的位置离这条Line多远。小于0.001,就在第i个位置Insert新点。整个过程不到0.2秒。

Tekla二次开发改板形状的实操步骤

光有代码不够,得知道怎么用。下面是实际操作流程,照着来就行。

第1步:把代码封装成宏。 打开Tekla的插件管理器,新建一个C#宏项目,把上面两段代码分别做成两个按钮,一个叫"删除端点",一个叫"增加端点"。

第2步:先测删除功能。 画一块简单的矩形板,4个端点。点"删除端点"按钮,先拾取板,再点一个端点。端点消失,板的形状自动更新。一块板删掉1个端点,形状立刻变了,不用重建。

第3步:再测增加功能。 还是那块板,点"增加端点"按钮,拾取板之后,在某条边的中间位置点一下。新端点出现,板多了一个控制点,拖拽它就能改变板的轮廓。

第4步:配合端点移动做复杂形状。 增加完端点之后,用Tekla自带的Move命令拖拽新端点,板的形状就跟着变了。删除+增加+移动,三个动作组合起来,基本上你想要什么形状都能捏出来。

2026年的实际项目里,这块功能用得最多的场景是钢结构深化。一块节点板,原始形状是矩形,但实际焊接需要切角、加筋板,用传统方法得删了重画。用这个二次开发宏,30秒改完,效率提升不是一点半点。

还有个细节:增删端点之后,板的面积、周长这些属性会自动更新。如果你的模型里有关联这些参数的标注,记得刷新一下,不然数据对不上。


这套代码不算复杂,但解决的是真问题。Tekla原生不支持动态改板端点,这个痛点困扰了不少深化工程师。2026年了,与其每次删板重画浪费10分钟,不如花半小时把宏写好,以后改板就是点两下鼠标的事。代码直接拿去用,有问题再调参数就行。

武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空