这次来点儿重口味的。设置实体透明度的方法。通过本方法可以实现控制实体显示时的材质。也可以用来突出显示某一实体,或者某一组实体。
核心代码:
MaterialOpacityComponent oc = new MaterialOpacityComponent(percentage, matMap);
mat.Opacity = oc;
代码说明:
输入:透明度的比例0--100;材质名称:客户提供,或者因项目功能需求而定。
输出:无
调用时,示例代码如下:
AddMaterial(70, "wood");
ent.Material = "wood";
/// <summary>
/// 设置透明度
/// </summary>
/// <param name="percentage">透明度</param>
/// <param name="name">材质名称</param>
public void AddMaterial(Double percentage, string name)
{
using (DocumentLock docLock = Application.DocumentManager.MdiActiveDocument.LockDocument())
{
using (Database db = HostApplicationServices.WorkingDatabase)
{
using (Transaction trans = db.TransactionManager.StartTransaction())
{
using (DBDictionary matDict = (DBDictionary)trans.GetObject(db.MaterialDictionaryId, OpenMode.ForWrite))
{
using (Material mat = new Material())
{
mat.Name = name;
using (WoodTexture wdTexture = new WoodTexture())
{
using (MaterialMap matMap = new MaterialMap(Source.Procedural, wdTexture, 0.5, null))
{
MaterialOpacityComponent oc = new MaterialOpacityComponent(percentage, matMap);
mat.Opacity = oc;
mat.Mode = Mode.Realistic;
matDict.SetAt(name, mat);
trans.AddNewlyCreatedDBObject(mat, true);
trans.Commit();
}
}
}
}
}
}
}
}