乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 43|回复: 2

按名称和描述创建图层

[复制链接]

30

主题

125

帖子

30

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
218
发表于 2016-1-13 03:02:31 | 显示全部楼层 |阅读模式
你好!
我不明白为什么我不能为新图层设置描述。Name和Decription都是作为字符串的属性,但我只得到正确的图层名称而不是图层描述?!
  1. public static void CreateLayer(string layName, string layDescr)
  2.         {
  3.             {
  4.                 Document doc = Application.DocumentManager.MdiActiveDocument;
  5.                 Database db = doc.Database;
  6.                 Editor ed = doc.Editor;
  7.                 using (Transaction tr = db.TransactionManager.StartTransaction())
  8.                 {
  9.                     try
  10.                     {
  11.                         // Get the layer table from the drawing
  12.                         LayerTable lt = (LayerTable)tr.GetObject(db.LayerTableId, OpenMode.ForRead);
  13.                         if (lt.Has(layName))
  14.                             ed.WriteMessage("\nLayername: {0} already exists.", layName);
  15.                         else
  16.                         {
  17.                             // Create our new layer table record...
  18.                             LayerTableRecord ltr = new LayerTableRecord();
  19.                             // ... and set its properties
  20.                             ltr.Name = layName;
  21.                             ltr.Description = layDescr;
  22.                             // Add the new layer to the layer table
  23.                             lt.UpgradeOpen();
  24.                             ObjectId ltId = lt.Add(ltr);
  25.                             tr.AddNewlyCreatedDBObject(ltr, true);
  26.                             // Set the layer to be current for this drawing
  27.                             db.Clayer = ltId;
  28.                             // Report what we've done
  29.                             ed.WriteMessage("\nCreated layer named {0}", layName);
  30.                         }
  31.                     }
  32.                     catch
  33.                     {
  34.                         // An exception has been thrown, indicating the
  35.                         // name is invalid
  36.                         ed.WriteMessage("\nInvalid layer name.");
  37.                     }
  38.                     // Commit the transaction
  39.                     tr.Commit();
  40.                 }
  41.             }
  42.         }

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

0

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
2
发表于 2016-1-13 03:05:40 | 显示全部楼层
谢谢你,完美的作品!
但是我真的不明白,为什么我必须首先创建Layertablerecord类型的层,然后将Layertablerecord的Description-property作为字符串。
是不是和Acad-API有点不一致?!使用Layername属性,它在我创建新层之前工作。
回复

使用道具 举报

30

主题

125

帖子

30

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
218
发表于 2016-1-13 05:37:05 | 显示全部楼层
谢谢大家,我明白了!/D
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 21:55 , Processed in 0.142566 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表