乐筑天下

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

块属性是否可以设置为多行?

[复制链接]

23

主题

122

帖子

7

银币

后起之秀

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

铜币
214
发表于 2010-6-8 10:31:00 | 显示全部楼层 |阅读模式
块属性是否可以设置为多行?   我想做个块,块的某个属性我想让它像多行文字一样显示为多行,是否可以实现?

回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-6-8 19:23:00 | 显示全部楼层

  1.         [CommandMethod("tt")]
  2.         public static void Test()
  3.         {
  4.             var db = HostApplicationServices.WorkingDatabase;
  5.             var doc = Application.DocumentManager.GetDocument(db);
  6.             using (var tr = db.TransactionManager.StartTransaction())
  7.             {
  8.                 var bt = db.BlockTableId.GetObject(OpenMode.ForWrite) as BlockTable;
  9.                 //创建一个无名块定义
  10.                 var blkdef = new BlockTableRecord();
  11.                 blkdef.Name = "*U";
  12.                 bt.Add(blkdef);
  13.                 tr.AddNewlyCreatedDBObject(blkdef, true);
  14.                 //向块定义添加实体
  15.                 Line line = new Line(Point3d.Origin, new Point3d(10, 0, 0));
  16.                 blkdef.AppendEntity(line);
  17.                 tr.AddNewlyCreatedDBObject(line, true);
  18.                 //向块定义添加多行属性
  19.                 AttributeDefinition attdef =
  20.                     new AttributeDefinition
  21.                     {
  22.                         Prompt = "Input A1:",
  23.                         Tag = "A1",
  24.                         Height = 5,
  25.                         IsMTextAttributeDefinition = true,
  26.                         Position = Point3d.Origin,
  27.                     };
  28.                 attdef.SetDatabaseDefaults();
  29.                
  30.                 //在当前空间创建块引用
  31.                 var btr = db.CurrentSpaceId.GetObject(OpenMode.ForWrite) as BlockTableRecord;
  32.                 var blkref = new BlockReference(Point3d.Origin, blkdef.ObjectId);
  33.                 btr.AppendEntity(blkref);
  34.                 tr.AddNewlyCreatedDBObject(blkref, true);
  35.                 //在块引用中添加属性
  36.                 AttributeReference attref = new AttributeReference();
  37.                 attref.SetAttributeFromBlock(attdef, blkref.BlockTransform);
  38.                 attref.SetDatabaseDefaults();
  39.                 blkref.AttributeCollection.AppendAttribute(attref);
  40.                 tr.AddNewlyCreatedDBObject(attref, true);
  41.                 //更改属性的多行文字内容
  42.                 MText mt = attref.MTextAttribute;
  43.                 mt.Contents = @"123\p456";
  44.                 attref.MTextAttribute = mt;
  45.                 attref.UpdateMTextAttribute();
  46.                 tr.Commit();
  47.             
  48.             }
  49.         }
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-6-8 20:59:00 | 显示全部楼层
123
回复

使用道具 举报

32

主题

651

帖子

8

银币

中流砥柱

Rank: 25

铜币
779
发表于 2010-6-8 21:27:00 | 显示全部楼层
学习了,原来块属性也可以用多行文本
回复

使用道具 举报

adc

36

主题

138

帖子

8

银币

后起之秀

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

铜币
280
发表于 2012-4-24 15:40:00 | 显示全部楼层
完全外行,请教一下怎样编译成可执行的文件?多谢了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-29 19:00 , Processed in 1.042765 second(s), 82 queries .

© 2020-2025 乐筑天下

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