一些应该相对简单的事情已经成为我几天来的噩梦。
我有一组位于z=0平面上的直线和圆弧,它们都是端点到起点的连接(例如曲线
。端点==曲线[i+1]。起点)。我需要将它们转换成一条折线。此时我拥有的代码如下:
- 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部分正在完成的工作有什么见解吗?
本帖以下内容被隐藏保护;需要你回复后,才能看到! 游客,如果您要查看本帖隐藏内容请 回复 |