调试autodesk官方例题是的问题
public ObjectId CreateLayer() //-----------------------------------1-------------------------------
{
ObjectId layerId=new ObjectId(); //它返回函数的值
Database db = HostApplicationServices.WorkingDatabase;
Editor ed = Autodesk..ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
Transaction trans = db.TransactionManager.StartTransaction();
//首先取得层表……
LayerTable lt = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForWrite);
//检查EmployeeLayer层是否存在……
if (lt.Has("EmployeeLayer"))
{
layerId = lt["EmployeeLayer"];
}
else
{
//如果EmployeeLayer层不存在,就创建它
LayerTableRecord ltr = new LayerTableRecord();
ltr.Name = "EmployeeLayer"; //设置层的名字
ltr.Color = Color.FromColorIndex(ColorMethod.ByAci, 2);
layerId = lt.Add(ltr);
trans.AddNewlyCreatedDBObject(ltr, true);
}
trans.Commit(); trans.Dispose();
return layerId; //-----------------------------------2-------------------------------
}
调试时报错,但将程序返回类型改为void:-----1--------处改为public void CreateLayer() ,-------2------处去掉,则可正常建立层,这是为什么?
另外,要将建立的层设为当前层,我该怎么做?
记住他的格式,命令函数必须是无返回值的,呵呵
将建立的层设为当前层
Database.Clayer Property
Accesses the object ID of the LAYER specified by the current CLAYER value of the database.
See the System Variables section of the AutoCAD Command Reference for information on CLAYER.
谢谢
页:
[1]