C#中如何创建边界?
我现在有一个功能是在Winform的界面中有一个按钮,点击后到AutoCAD中根据拾取点得到边界线段,并返回这个多段线。记得有高手说过用ray旋转扫略 logoin 发表于 2012-8-13 22:36 static/image/common/back.gif
记得有高手说过用ray旋转扫略
请问有没有详细的资料呢? /// <summary>
/// 通过选择点创建边界
/// </summary>
public class CreateBound
{
/// <summary>
/// 创建边界,边界对象已加入数据库
/// </summary>
/// <returns></returns>
public static ObjectId MakeBound()
{
ObjectId id = new ObjectId();
PromptPointResult ppr = Tools.Editor.GetPoint("\n请选择内部点: ");
using (Transaction tr = Tools.Database.TransactionManager.StartTransaction())
{
if (ppr.Status != PromptStatus.OK)
{
tr.Commit();
return id;
}
try
{
DBObjectCollection objs = Tools.Editor.TraceBoundary(ppr.Value, false);
if (objs.Count == 0)
{
tr.Commit();
return id;
}
id = Tools.AddToCurrentSpace(objs as Entity);
tr.Commit();
return id;
}
catch
{
tr.Commit();
return id;
}
}
}
} 这是我的部分源代码,仅供参考使用,不过核心方法已给出 本帖最后由 liuxu042 于 2012-8-17 16:45 编辑
if (ppr.Status != PromptStatus.OK)
{
return id;
}
这句放到事务前面多好,并且objs.Count == 0或者异常的没必要提交事务呀
你这个方法应该只能在cad2011以上版本才支持
这个需要CAD版本去支持的,我现在还用CAD2006呢,实现不了,除非你用C++去开发!
页:
[1]