# 0. 引言
学习了如何创建图形后,需要分析如何对图形进一步操作,如:颜色改变、移动、复制、旋转、镜像、删除等,这些都是一些基本操作。
还是同样的配方,我们将这些操作都封装成一个一个的方法,以后需要的时候调用即可!
# 1. 封装
这里需要说明的是,对图形操作如改变颜色、移动、复制等这些操作需要分为图形是否已经添加到图形数据库中,也就是图形是不是新创建的。
用代码说话,看代码就明白了:
## (1)改变颜色
如果图形已经在图形数据库中:
我们传入图形对象的ObjectId就行了,因为图形已经在图形数据库中了,后面的一个参数colorIndex是颜色索引,用来传入颜色
颜色编辑完整代码:
/// <summary>
/// 改变图形颜色
/// </summary>
/// <param name="c1Id">图形的ObjectId</param>
/// <param name="colorIndex">颜色索引</param>
/// <returns>图形的ObjectId</returns> 图形已经添加图形数据库
public static ObjectId ChangeEntityColor(this ObjectId c1Id, short colorIndex)
{
// 图形数据库
Database db = HostApplicationServices.WorkingDatabase;
// 开启事务处理
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);
// 获取图形对象
Entity ent1 = (Entity)c1Id.GetObject(OpenMode.ForWrite);
// 设置颜色
ent1.ColorIndex = colorIndex;
trans.Commit();
}
return c1Id;
}
如果图形没有添加到图形数据库中:
与上面不同的是这时候我们直接传入图形对象作为参数
此外我们需