Tekla二次开发:如何增加与删除板的端点

通常创建一个板后

板的所有端点已经固定

如果想改变形状只能删了重新造

使用Tekla二次开发

可以在不删除原板的情况下

动态的增加删除端点

再配合端点的移动可以任意改变板的形状!

01 删除板端点


一、代码


Picker 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()获得轮廓板(ContourPlate)和轮廓点(ContourPoint)数据 。

如果拾取的轮廓点在轮廓板的点列表中,说明是板的一个端点,使用函数 Remove 删除它。



02 增加板端点


一、代码


Picker 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) //暂时将精度设为0.001
  {
    listPTs.Insert(i, contourPt);
    break;
  }
  ptPre = ptPost;
}

二、主要逻辑说明

通过拾取函数Picker()获得轮廓板(ContourPlate)和拾取点(ContourPoint)数据 。

遍历板轮廓的所有的线,根据点到线的距离判断拾取点是否在轮廓上,最后使用 Insert 函数完成点的插入工作。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

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

* 公司名称:

姓名不为空

手机不正确

公司不为空