[CommandMethod("ck", CommandFlags.UsePickSet)]
public void ck()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
PromptSelectionResult psr = ed.SelectImplied();
if (psr.Status != PromptStatus.OK)
{
psr = ed.GetSelection();
}
if (psr.Status != PromptStatus.OK)
{
ed.WriteMessage("没有选中\n");
return;
}
SelectionSet sSet = psr.Value;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
// ed.WriteMessage($"选中了{sSet.Count}个东西\n");
// 初始化边界框变量
Extents3d totalExtents = new Extents3d();
// 遍历选择集中的每个对象,合并边界
foreach (SelectedObject selObj in sSet)
{
Entity ent = (Entity)trans.GetObject(selObj.ObjectId, OpenMode.ForWrite);
totalExtents.AddExtents(ent.GeometricExtents);
}
double 长 = Math.Round(totalExtents.MaxPoint.X - totalExtents.MinPoint.X, 1);
double 宽 = Math.Round(totalExtents.MaxPoint.Y - totalExtents.MinPoint.Y, 1);
ed.WriteMessage($"长:{长}" +
$",宽:{宽}\n");
// 提交事务
trans.Commit();
}
}
c# cad 得到选中图形 长宽边界
于 2024-07-10 16:50:35 首次发布