您的位置:首页 > 新闻 > 热点要闻 > 幼儿园主题活动网络图_软件设计原则_网站流量统计_刚刚刚刚刚刚刚刚刚刚刚刚刚刚

幼儿园主题活动网络图_软件设计原则_网站流量统计_刚刚刚刚刚刚刚刚刚刚刚刚刚刚

2024/10/7 15:50:15 来源:https://blog.csdn.net/yongshiqq/article/details/142662641  浏览:    关键词:幼儿园主题活动网络图_软件设计原则_网站流量统计_刚刚刚刚刚刚刚刚刚刚刚刚刚刚
幼儿园主题活动网络图_软件设计原则_网站流量统计_刚刚刚刚刚刚刚刚刚刚刚刚刚刚

如图所示原始坐标格式,xy按空格分开,将坐标按顺序在cad中画成多段线:

 坐标xy分开并按行重新输入txt,效果如下:

代码如下 :

using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AcTools;
using Autodesk.AutoCAD.Geometry;
using System.IO;namespace Acdemo
{public class Acdemo{private void Addl(Entity ent ) {Database db = HostApplicationServices.WorkingDatabase;using (Transaction tr = db.TransactionManager .StartTransaction ()){BlockTable bt = (BlockTable)tr.GetObject (db.BlockTableId ,OpenMode .ForRead  );BlockTableRecord btr = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord .ModelSpace ],OpenMode.ForWrite );btr.AppendEntity (ent);tr.AddNewlyCreatedDBObject(ent,true );tr.Commit ();   }}[CommandMethod("xx")]public void Demo(){Database db = HostApplicationServices.WorkingDatabase;string filename = @"E:\d\8.txt";string filename1 = @"E:\d\999.txt";try{File.Delete(filename1); string contents = File.ReadAllText(filename);List<List<string>> list = new List<List<string>>();Polyline pl = new Polyline();  pl.Closed = true;   pl.ColorIndex = 3;string[] cont = contents.Split(new char[] { ' ', '\n' });double x, y;File.AppendAllLines(filename1, cont);for (int i = 0; i < cont.Length / 2; i++){   x = Convert.ToDouble (cont[2*i]);y = Convert.ToDouble(cont[2*i+1]);pl.AddVertexAt(i, new Point2d(x, y),0.0,0.0,0.0);}Addl (pl);}catch (System.Exception){throw;}}  }
}

其中有个封装函数addl,为封装事务写入实体到数据库的函。

若输入坐标格式有误,则用以下程序,可在命令行提示错误信息:

using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AcTools;
using Autodesk.AutoCAD.Geometry;
using System.IO;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.ApplicationServices;namespace Acdemo
{public class Acdemo{private void Addl(Entity ent ) {Database db = HostApplicationServices.WorkingDatabase;using (Transaction tr = db.TransactionManager .StartTransaction ()){BlockTable bt = (BlockTable)tr.GetObject (db.BlockTableId ,OpenMode .ForRead  );BlockTableRecord btr = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord .ModelSpace ],OpenMode.ForWrite );btr.AppendEntity (ent);tr.AddNewlyCreatedDBObject(ent,true );tr.Commit ();   }}[CommandMethod("xx")]public void Demo(){Database db = HostApplicationServices.WorkingDatabase;string filename = @"E:\d\8.txt";string filename1 = @"E:\d\999.txt";try{File.Delete(filename1); string contents = File.ReadAllText(filename);List<List<string>> list = new List<List<string>>();Polyline pl = new Polyline();  pl.Closed = true;   pl.ColorIndex = 3;string[] cont = contents.Split(new char[] { ' ', '\n' });double x, y;File.AppendAllLines(filename1, cont);for (int i = 0; i < cont.Length / 2; i++){   //x = Convert.ToDouble (cont[2*i]);//y = Convert.ToDouble(cont[2*i+1]);bool bx = double.TryParse(cont[2*i], out x);bool by = double.TryParse (cont[2*i + 1],out y);if (bx==false ||  by == false ) {Editor ed = Application .DocumentManager.MdiActiveDocument .Editor ;ed.WriteMessage($"有错误,{cont[2 * i]},{cont[2 * i+1]}");}pl.AddVertexAt(i, new Point2d(x, y),0.0,0.0,0.0);}Addl (pl);}catch (System.Exception){throw;}}  }
}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com