使用工具==CAD2019+VS2022
主要作用==在CAD中选择多个点,将选中的点的XYZ坐标导入txt文件中
代码内容
Database db = HostApplicationServices.WorkingDatabase;
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
List<DBPoint> dbPoints = new List<DBPoint>();//点集合
PromptSelectionResult psRsult = ed.GetSelection();
if (psRsult.Status == PromptStatus.OK)
{
ObjectId[] ids = psRsult.Value.GetObjectIds();
using (Transaction trans = db.TransactionManager.StartTransaction())
{
foreach (ObjectId item in ids)
{
Entity ent = trans.GetObject(item,OpenMode.ForRead) as Entity;
if (ent is DBPoint point)
{
dbPoints.Add(point);
}
else
{
wind.MessageBox.Show("选择的不是点");
}
}
}
}
else
{
wind.MessageBox.Show("未选择实体");
}
//txt文件
wind.SaveFileDialog savedlg = new wind.SaveFileDialog();
savedlg.Filter = "文本文件(*.txt)|*.txt";
string fileName = Path.GetFileName(db.Filename);
savedlg.FileName = fileName.Substring(0, fileName.IndexOf('.'));
wind.DialogResult savePath = savedlg.ShowDialog();
if (savePath == wind.DialogResult.OK)
{
string[] datas = new string[dbPoints.Count];
for (Int32 i = 0; i < dbPoints.Count; i++)
{
datas[i] = dbPoints[i].Position.X.ToString() + ","+
dbPoints[i].Position.Y.ToString() + "," +
dbPoints[i].Position.Z.ToString();
}
File.WriteAllLines(savedlg.FileName, datas);
wind.MessageBox.Show("文件保存成功");
}
else//没有选择保存
{
wind.MessageBox.Show("没有选择保存");
}