AutoCAD.NET Solid3d倒圆角

[CommandMethod("TestFillet")]

public void TestFillet()
{
    Document doc = Application.DocumentManager.MdiActiveDocument;
    Database db = doc.Database;
    using (Transaction Tx = db.TransactionManager.StartTransaction())
    {
        BlockTableRecord blkRec =
       Tx.GetObject(db.CurrentSpaceId, OpenMode.ForWrite, false)  as BlockTableRecord;
        Solid3d solid = new Solid3d();
        solid.CreateBox(500.0, 400.0, 1000.0);

        blkRec.AppendEntity(solid);
        Tx.AddNewlyCreatedDBObject(solid, true);

        ObjectId[] ids = new ObjectId[] { solid.ObjectId };

        SubentityId subentId = new SubentityId( SubentityType.Null, IntPtr.Zero);

        FullSubentityPath path = new FullSubentityPath(ids, subentId);
        List<SubentityId> subentIds = new List<SubentityId>();
        DoubleCollection radii = new DoubleCollection();
        DoubleCollection startSetback = new DoubleCollection();
        DoubleCollection endSetback = new DoubleCollection();

        using (Autodesk.AutoCAD.BoundaryRepresentation.Brep brep = new Autodesk.AutoCAD.BoundaryRepresentation.Brep(path))
        {
            foreach (Autodesk.AutoCAD.BoundaryRepresentation.Edge  edge in brep.Edges)
            {
                subentIds.Add(edge.SubentityPath.SubentId);
                radii.Add(10.0);
                // Setback fillets. Defines a setback distance
                // from a vertex at which the fillets start to blend
                startSetback.Add(5.0);
                endSetback.Add(5.0);
            }
        }

        solid.FilletEdges(
            subentIds.ToArray(),
            radii,
            startSetback,
            endSetback);
        Tx.Commit();
    }
}

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值