乐筑天下

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

发几个.Net标注相关的方法

[复制链接]

34

主题

223

帖子

17

银币

后起之秀

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

铜币
352
发表于 2021-7-31 12:14:00 | 显示全部楼层 |阅读模式
只有代码,没有演示,就这么干看着不合适,不适合,来上传个演示看看,演示中所有标准均为这几个标注方法创建!!!

ekgixnf1vhc.gif

ekgixnf1vhc.gif


  1.         ///
  2.         /// 将图形添加到图形文件中---本方法为李小科.Net封装方法
  3.         ///
  4.         /// 图形数据库
  5.         /// 图形对象
  6.         /// ObjectId图元名
  7.         public static ObjectId AddEntityToModelSpace(this Database db, Entity ent)
  8.         {
  9.             //声明ObjectId,用于返回
  10.             ObjectId entId = ObjectId.Null;
  11.             //开启事务处理
  12.             using (Transaction trans = db.TransactionManager.StartTransaction())
  13.             {
  14.                 //打开块表
  15.                 BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);
  16.                 //打开块表记录
  17.                 BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
  18.                 //添加图形到块表记录
  19.                 entId = btr.AppendEntity(ent);
  20.                 //更新数据信息
  21.                 trans.AddNewlyCreatedDBObject(ent, true);
  22.                 //提交事务
  23.                 trans.Commit();
  24.             }
  25.             return entId;
  26.         }
  27.         ///
  28.         /// 创建转角标注
  29.         ///
  30.         /// 标注起始点
  31.         /// 标注结束点
  32.         /// 文字放置点
  33.         /// 标注内容
  34.         /// 是否横向
  35.         /// 标注比例
  36.         /// 标注比例
  37.         /// 标注精度
  38.         /// 图元ObjectId
  39.         public static ObjectId RotatedDim(Point3d pt1, Point3d pt2, Point3d txtpt, string txt, bool IsH, double scal = 1, double lfac = 1, int dec = 0)
  40.         {
  41.             RotatedDimension dim = new RotatedDimension
  42.             {
  43.                 XLine1Point = pt1,
  44.                 XLine2Point = pt2,
  45.                 DimLinePoint = txtpt,
  46.                 TextPosition = txtpt,
  47.                 DimensionText = txt,
  48.                 Dimdec = dec,
  49.                 Dimscale = scal,
  50.                 Dimlfac = lfac
  51.             };
  52.             dim.Rotation = IsH ? 0 : Math.PI * 0.5;
  53.             return db.AddEntityToModelSpace(dim);
  54.         }
  55.         ///
  56.         /// 创建圆弧半径标注
  57.         ///
  58.         /// 圆弧圆心
  59.         /// 圆弧起始角度
  60.         /// 圆弧终点角度
  61.         /// 标注弦点
  62.         /// 标注文字放置点
  63.         /// 标注内容
  64.         /// 标注全局比例
  65.         /// 标注线型比例
  66.         /// 图元ObjectId
  67.         public static ObjectId ArcRadialDim(Point3d center, double startang, double endang, Point3d cpt, Point3d txtpt, string dimstr, double scal, double lfac)
  68.         {
  69.             RadialDimension rdim = new RadialDimension
  70.             {
  71.                 Center = center,
  72.                 ChordPoint = cpt,
  73.                 DimensionText = dimstr,
  74.                 UsingDefaultTextPosition = true,
  75.                 LeaderLength = 5,
  76.                 Dimscale = scal,
  77.                 Dimlfac = lfac,
  78.                 TextPosition = txtpt
  79.             };
  80.             ResultBuffer resBuf = new ResultBuffer();
  81.             resBuf.Add(new TypedValue((int)DxfCode.ExtendedDataRegAppName, "ACAD_DSTYLE_DIMRADIAL_EXTENSION"));
  82.             resBuf.Add(new TypedValue((int)DxfCode.ExtendedDataInteger16, 387));
  83.             resBuf.Add(new TypedValue((int)DxfCode.ExtendedDataInteger16, 1));
  84.             resBuf.Add(new TypedValue((int)DxfCode.ExtendedDataInteger16, 388));
  85.             resBuf.Add(new TypedValue((int)DxfCode.ExtendedDataReal, startang));//圆弧的开始角度
  86.             resBuf.Add(new TypedValue((int)DxfCode.ExtendedDataInteger16, 390));
  87.             resBuf.Add(new TypedValue((int)DxfCode.ExtendedDataReal, endang));//圆弧的结束角度
  88.             rdim.XData = resBuf;
  89.             return db.AddEntityToModelSpace(rdim);
  90.         }
  91.         ///
  92.         /// 创建直径标注
  93.         ///
  94.         /// 第一标注点
  95.         /// 第二标注点
  96.         /// 文字放置点
  97.         /// 标注比例
  98.         /// 标注线型比例
  99.         /// 标注精度
  100.         /// 图元ObjectId
  101.         public static ObjectId DiametricDim(Point3d cpt, Point3d fcpt, Point3d txtpt, string dimstr = "", double scal = 1, double lfac = 1, int dec = 0)
  102.         {
  103.             DiametricDimension dim = new DiametricDimension
  104.             {
  105.                 ChordPoint = cpt,
  106.                 FarChordPoint = fcpt,
  107.                 TextPosition = txtpt,
  108.                 DimensionText = dimstr,
  109.                 Dimdec = dec,
  110.                 Dimscale = scal,
  111.                 Dimlfac = lfac
  112.             };
  113.             return db.AddEntityToModelSpace(dim);
  114.         }
  115.         ///
  116.         /// 创建直线角度标注
  117.         ///
  118.         /// 起始角度直线起始点
  119.         /// 起始角度直线终止点
  120.         /// 终止角度直线起始点
  121.         /// 终止角度直线终止点
  122.         /// 圆弧位置点
  123.         /// 标注比例
  124.         /// 标注线型比例
  125.         /// 标注精度
  126.         /// 图元ObjectId
  127.         public static ObjectId AngularDim(Point3d pt1s, Point3d pt1e, Point3d pt2s, Point3d pt2e, Point3d arcpt, double scal = 1, double lfac = 1, int dec = 0)
  128.         {
  129.             LineAngularDimension2 dim = new LineAngularDimension2
  130.             {
  131.                 XLine1Start = pt1s,
  132.                 XLine1End = pt1e,
  133.                 XLine2Start = pt2s,
  134.                 XLine2End = pt2e,
  135.                 ArcPoint = arcpt,
  136.                 Dimdec = dec,
  137.                 Dimadec = dec,
  138.                 Dimscale = scal,
  139.                 Dimlfac = lfac
  140.             };
  141.             return db.AddEntityToModelSpace(dim);
  142.         }

回复

使用道具 举报

3

主题

31

帖子

6

银币

初来乍到

Rank: 1

铜币
42
发表于 2021-7-31 13:26:00 | 显示全部楼层
lsp 转到C #
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2024-11-21 21:23 , Processed in 0.280139 second(s), 59 queries .

© 2020-2024 乐筑天下

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