怎么增加与删除板的端点(Tekla二次开发)

一、用途

通常创建一个板后,板的所有端点已经固定,如果想改变形状只能删了重新造,使用Tekla二次开发可以在不删除原板的情况下,动态的增加删除端点,再配合端点的移动可以任意改变板的形状!

二、删除板端点

  1. 代码
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);
}
  1. 主要逻辑说明
    通过拾取函数Picker()获得轮廓板(ContourPlate)和轮廓点(ContourPoint)数据 。
    如果拾取的轮廓点在轮廓板的点列表中,说明是板的一个端点,使用函数 Remove 删除它。

三、增加板端点

  1. 代码
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;
}
  1. 主要逻辑说明
    通过拾取函数Picker()获得轮廓板(ContourPlate)和拾取点(ContourPoint)数据 。
    遍历板轮廓的所有的线,根据点到线的距离判断拾取点是否在轮廓上,最后使用 Insert 函数完成点的插入工作。

四、文章来源

更多内容,请关注"闭目鸽" 工重号。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值