cad.net 替换Polyline2d的点
2021-03-01 05:28
标签:enum 复杂 arp get 微软 next 其他 continue new Polyline2d和Polyline3d的点更改,它和其他的图元处理起来不一样. 先看一个通用的提取点集的做法, IsClockwise 判断是否顺时针,可参考叉乘判断 (完) cad.net 替换Polyline2d的点 标签:enum 复杂 arp get 微软 next 其他 continue new 原文地址:https://www.cnblogs.com/JJBox/p/14423632.html
因为这些是复杂实体,需要通过枚举值来处理.提取点集
GetStretchPoints可以作用在:轻多段线/二维多段线/三维多段线
你只需要将Polyline2d改成其他即可.
之所以改成List///
将二维多段线的点集逆序
//打开图元
var ent = tr.GetObject(item, OpenMode.ForWrite) as Entity;
if (ent is Polyline2d pl2d)
{
var pts3d = pl2d.GetPoint3ds();
if (!IsClockwise(pts3d))//判断是否顺时针
{
continue;
}
int j = 0;
var pl2dEnu = pl2d.GetEnumerator();
while (pl2dEnu.MoveNext())
{
if (j > 0)
{
var id = (ObjectId)pl2dEnu.Current;
var vtx = tr.GetObject(id, OpenMode.ForWrite) as Vertex2d;
vtx.Position = pts3d[pts3d.Count - j];
}
j++;
}
}
上一篇:HTML免费教程导航
文章标题:cad.net 替换Polyline2d的点
文章链接:http://soscw.com/index.php/essay/58420.html