C# Teigha(Auto Cad), как установить количество элементов mline?
В качестве вопроса. Вот как я получаю количество элементов:
using (var trans = myDatabase.TransactionManager.StartTransaction())
{
BlockTableRecord btrec = (BlockTableRecord)trans.GetObject(myDatabase.CurrentSpaceId, OpenMode.ForWrite);
foreach (ObjectId objid in btrec)
{
Entity ent = trans.GetObject(objid, OpenMode.ForWrite) as Entity;
if (ent.GetType().Name.Contains("Mline"))
{
Mline dbtxta = (Mline)ent;
// mline style
MlineStyle mlsta = ((MlineStyle)dbtxta.Style.GetObject(OpenMode.ForRead));
// The result is i wanna get.
int result = mlsta.Elements.Count;
}
}
}
введите описание изображения здесь
И, как в этой mline, счетчик равен 4. После обработки моим алгоритмом я хочу нарисовать mline из 5 линий (Counts). Как я могу это сделать. Это я рисую код:
using (var trans = database.TransactionManager.StartTransaction())
{
for (int i = 0; i < xyz.Count; i++)
{
Mline mine = new Mline();
//mine.Style.
mine.Scale = 0; //?
mine.AppendSegment(new Point3d(xyz[i].X, xyz[i].Y, xyz[i].Z));
mine.Element(new Point3d(xyz[i].X, xyz[i].Y, xyz[i].Z));
// The comment code is also drawing mline,but the number of mline cannot be specified
//Point2d point2D1 = new Point2d(xyz[i].X, xyz[i].Y); // start point
//Point2d point2D2 = new Point2d(xyz[i+1].X, xyz[i + 1].Y); // end point
//Teigha.DatabaseServices.Polyline pl = new Teigha.DatabaseServices.Polyline();
//pl.AddVertexAt(0, point2D1, 0,1,1);
//pl.AddVertexAt(1, point2D2, 0,1,1);
BlockTableRecord btr = trans.GetObject(database.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;
btr.AppendEntity(mine);
mine.Layer = LayerName;
trans.AddNewlyCreatedDBObject(mine, true);
}
trans.Commit();
database.Save();
}
Каким образом можно нарисовать mline с 5 элементами (функция count только get, а не set), так как я могу это сделать, например:
mline.style.Elements.Count = 5;