明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1560|回复: 0

调试Autodesk官方例题出现的问题

[复制链接]
发表于 2010-5-7 09:36 | 显示全部楼层 |阅读模式

        [CommandMethod("createLayer")]
        public ObjectId CreateLayer()   //-----------------------------------1-------------------------------
        {
            ObjectId layerId=new ObjectId(); //它返回函数的值
            Database db = HostApplicationServices.WorkingDatabase;
            Editor ed = Autodesk.AutoCAD.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------处去掉,则可正常建立层,这是为什么?

另外,要将建立的层设为当前层,我该怎么做?

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-8 01:16 , Processed in 0.151608 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表