[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();
}
}
AutoCAD.NET Solid3d倒圆角
于 2024-07-24 13:42:04 首次发布