- UID
- 781079
- 积分
- 33
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2018-10-28
- 最后登录
- 1970-1-1
|
发表于 2018-10-30 09:57:18
|
显示全部楼层
class AddSolid {
public void Add()
{
Solid3d T = Torus(200, 30);
Move(T, new Point3d(100, 100, 0));
ToModelSpace(T); Solid3d B = Box(100, 300,100);
Move(B, new Point3d(-300, -300, 0)); ToModelSpace(B);
}
/// <summary> /// 添加对象到模型空间
/// </summary>
/// <param name="ent">要添加的对象</param>
/// <returns></returns>
public static ObjectId ToModelSpace(Entity ent) {
Database db = HostApplicationServices.WorkingDatabase;
ObjectId entId;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);
BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
entId = btr.AppendEntity(ent);
trans.AddNewlyCreatedDBObject(ent, true);
trans.Commit();
}
return entId;
}
/// <summary> /// 圆环 /// </summary>
/// <param name="MajorRadius">主圆半径</param>
/// <param name="MinorRadius">圆环半径</param>
/// <returns></returns>
public static Solid3d Torus(double MajorRadius, int MinorRadius)
{
Solid3d Solid = new Solid3d();
Solid.CreateTorus(MajorRadius, MinorRadius);
return Solid;
}
/// <summary> /// 创建长方体 /// </summary>
/// <param name="X">长</param>
/// <param name="Y">宽</param>
/// <param name="Z">高</param> ///
/// <returns></returns>
public static Solid3d Box(double X, double Y, double Z)
{
Solid3d Solid = new Solid3d();
Solid.CreateBox(X, Y, Z);
return Solid;
}
/// <summary> /// 以原点为基点,指定目标点移动实体 /// </summary>
/// <param name="ent">实体对象</param>
/// <param name="pt">目标点</param>
public static void Move(Entity ent, Point3d pt)
{
Matrix3d mt = Matrix3d.Displacement(pt - new Point3d());
ent.TransformBy(mt);
}
}
}
虽然不知道你是不是要3d的实体。试试这段代码吧。 |
|