The following C# sample demonstrates the use of "Solid3d.FilletEdges" method:
[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();
}
}
<
p style=”line-height: normal;margin: 0in 0in 0pt” class=”MsoNormal”>

Leave a Reply