CrockettScience 发表于 2019-10-11 17:22:25

将一组连接的直线和圆弧转换为折线

一些应该相对简单的事情已经成为我几天来的噩梦。
我有一组位于z=0平面上的直线和圆弧,它们都是端点到起点的连接(例如曲线
。端点==曲线。起点)。我需要将它们转换成一条折线。此时我拥有的代码如下:
var poly = new Polyline();
                  
poly.AddVertexAt(0, Point2d.Origin, 0, 0, 0);
foreach (var curve in curves) {
                  
   poly.SetPointAt(poly.NumberOfVertices - 1, new Point2d(curve.StartPoint.X, curve.StartPoint.Y));
   poly.JoinEntity(curve);
                  
   curve.Erase();
   curve.Dispose();
}

此代码在poly上失败。与enot适用的接合性。通常,这意味着他们没有正确连接,但使用现场调试器,我可以看到,目前聚。执行JoinEntity(恰好是循环的第二次迭代),poly的端点确实等于曲线的起点。显而易见,我用SetPointAt方法强制它。
我什么都试过了,现在我确信这是某种奇怪的坐标系统头骨性交。根据大多数类似的帮助线程(所有这些线程都只解决将一条弧或线转换为折线的问题),由于我不知道的原因,它们的转换通常涉及一些ECS内容,并且根据AutoCAD帮助中心论坛上帮助那些人的代码礼仪,所有代码都只是狗屎,没有解释或上下文。
现在我拥有的代码是这样的代码1]
这实际上可以编译和运行,但是生成的折线是一团乱麻。
您知道我该何去何从,和/或对ECS部分正在完成的工作有什么见解吗?
**** Hidden Message *****

gile 发表于 2019-10-11 17:36:09

您好,
您应该尝试使用PolylineSegmentCollection。来自GeometryExtensions库的Join()方法(和PolylineSegment类)。
页: [1]
查看完整版本: 将一组连接的直线和圆弧转换为折线