我正在努力计算在一定距离内与现有线的平行线。

我努力了:OdGeLine2d::getTrimmedOffset()OdGeLineSeg2d::getTrimmedOffset()OdGeLine3d::getTrimmedOffset()OdGeLineSeg3d::getTrimmedOffset()
但它们所有人都抛出“未实现” 异​​常。

比我尝试使用OdGeOffsetCurve2d类。此类的构造不会引发异常,但是任何尝试获得此曲线点的尝试都会引发异常。同样的异常(exception):“未实现”。

那么,如何获得OdGeOffsetCurve2d上的要点呢?还是有其他方法可以计算偏移曲线?

这些getTrimmedOffset()方法有什么用?只是抛出异常?

PS:我没有足够的声誉来创建新的 Teigha 标签。请这样做并编辑我的问题。 Teigha是用于开发CAD应用程序https://www.opendesign.com/的核心库。

最佳答案

如果我正确理解,您正在尝试创建与现有线平行的线。

如果您不是专门寻找OdGeLine2d,那么我对OdDbLine有类似问题的解决方案。
如您所知,如果我们有终点,要构造一条新线就是比赛。因此,我将帮助您找到具有OdDbLine类的平行线的终点。
您可以尝试从中得出。
我的代码是.Net版本代码,而不是c++版本代码。

如果您有OdDbLine类的对象,可以说OdDbLine line

  • a)获取终点
    OdGePoint3d startPoint = new OdGePoint3d();line.getStartPoint(startPoint);OdGePoint3d endPoint = new OdGePoint3d();line.getEndPoint(endPoint);
  • 获取线方向,用它来计算垂直方向OdGeVector3d lineVector = GetLineVector(line);OdGeVector3d perpendicularVec = lineVector.perpVector(); perpendicularVec.normalize();perpendicularVec = perpendicularVec.Mul(-1);
  • Off将线终点设置为计算的偏置终点
    偏移值是距当前行的数字距离perpendicularVec.setToProduct(perpendicularVec, offSetValue);
  • 在偏移位置计算新的终点OdGePoint3d newOffsetStartPt = startPoint.Add(perpendicularVec);OdGePoint3d newOffsetEndPt = endPoint.Add(perpendicularVec);
    您可以使用新的端点来构造新的线。

  • 希望能帮助到你 !!

    10-06 00:05