Polyline的坑

Polyline 是CAD.NET 中的对象,今天需要不断地修改多段线的顶点位置,发现了一个坑。在此记录一下,方便同仁引以为戒。
如果用到了创建多段线下边的语句:
Polyline poly = new Polyline(5);
会以为该条新建的多段线有5个顶点,然后就去跟新顶点位置了(SetPointAt)。这时候会一直报错误(SetPointAt时的索引不对)。
然后找半天发现都没有问题啊,怎么会这样?
最后发现有一个坑,Polyline poly = new Polyline(5);
该语句中看似有5个顶点,但是监视发现并没有,而是0个。惊不惊喜,意不意外!
想解决该问题还需要真正的初始化,

for (int i = 0; i < 5; i++)
{
    poly.AddVertexAt(i, Point2d.Origin, 0, 0, 0);
}

这样,在此创建之后监视发现,多段线的顶点个数就确定了。
这里写图片描述

由于水平有限难免理解的有差错,敬请指正。

使用 ACadSharp 绘制路面病害图例,可按以下思路进行操作。首先要明确路面病害图例包含的基本图形元素,如裂缝(通常用线条表示)、槽(可用圆形或多边形表示)等,然后利用 ACadSharp 提供的实体类来创建这些图形元素,并添加到 CAD 文档中。 以下是一个简单示例,假设要绘制一条裂缝(用直线表示)和一个槽(用圆形表示): ```csharp using ACadSharp; using ACadSharp.Entities; using ACadSharp.IO; using System; class Program { static void Main() { // 创建一个新的 CAD 文档 CadDocument doc = new CadDocument(); // 绘制裂缝(用直线表示) Line crack = new Line(); crack.StartPoint = new ACadSharp.Tables.Coordinates.XYZ(0, 0, 0); crack.EndPoint = new ACadSharp.Tables.Coordinates.XYZ(10, 0, 0); doc.Entities.Add(crack); // 绘制槽(用圆形表示) Circle pothole = new Circle(); pothole.Center = new ACadSharp.Tables.Coordinates.XYZ(5, 5, 0); pothole.Radius = 2; doc.Entities.Add(pothole); // 保存为 DXF 文件 DxfWriter writer = new DxfWriter("pavement_damage.dxf", doc); writer.Write(); Console.WriteLine("DXF 文件已创建。"); } } ``` ### 代码解释 - 创建一个新的 `CadDocument` 对象,用于存储 CAD 图形元素。 - 创建 `Line` 实体来表示裂缝,设置其起和终坐标,并将其添加到文档的 `Entities` 集合中。 - 创建 `Circle` 实体来表示槽,设置其圆心坐标和半径,并将其添加到文档的 `Entities` 集合中。 - 使用 `DxfWriter` 将文档保存为 DXF 文件。 如果路面病害图例更复杂,可能需要使用更多的实体类,如 `Polyline` 来绘制不规则的裂缝形状,或者使用 `Hatch` 来填充槽等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值