明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1188|回复: 1

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

[复制链接]
发表于 2021-7-31 12:14:00 | 显示全部楼层 |阅读模式
本帖最后由 fangmin723 于 2021-7-31 12:26 编辑

只有代码,没有演示,就这么干看着不合适,不适合,来上传个演示看看,演示中所有标准均为这几个标注方法创建!!!

  1.         /// <summary>
  2.         /// 将图形添加到图形文件中---本方法为李小科AutoCAD.Net教程封装方法
  3.         /// </summary>
  4.         /// <param name="db">图形数据库</param>
  5.         /// <param name="ent">图形对象</param>
  6.         /// <returns>ObjectId图元名</returns>
  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.         /// <summary>
  28.         /// 创建转角标注
  29.         /// </summary>
  30.         /// <param name="pt1">标注起始点</param>
  31.         /// <param name="pt2">标注结束点</param>
  32.         /// <param name="txtpt">文字放置点</param>
  33.         /// <param name="txt">标注内容</param>
  34.         /// <param name="IsH">是否横向</param>
  35.         /// <param name="scal">标注比例</param>
  36.         /// <param name="lfac">标注比例</param>
  37.         /// <param name="dec">标注精度</param>
  38.         /// <returns>图元ObjectId</returns>
  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.         /// <summary>
  56.         /// 创建圆弧半径标注
  57.         /// </summary>
  58.         /// <param name="center">圆弧圆心</param>
  59.         /// <param name="startang">圆弧起始角度</param>
  60.         /// <param name="endang">圆弧终点角度</param>
  61.         /// <param name="cpt">标注弦点</param>
  62.         /// <param name="txtpt">标注文字放置点</param>
  63.         /// <param name="dimstr">标注内容</param>
  64.         /// <param name="scal">标注全局比例</param>
  65.         /// <param name="lfac">标注线型比例</param>
  66.         /// <returns>图元ObjectId</returns>
  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.         /// <summary>
  92.         /// 创建直径标注
  93.         /// </summary>
  94.         /// <param name="cpt">第一标注点</param>
  95.         /// <param name="fcpt">第二标注点</param>
  96.         /// <param name="txtpt">文字放置点</param>
  97.         /// <param name="scal">标注比例</param>
  98.         /// <param name="lfac">标注线型比例</param>
  99.         /// <param name="dec">标注精度</param>
  100.         /// <returns>图元ObjectId</returns>
  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.         /// <summary>
  116.         /// 创建直线角度标注
  117.         /// </summary>
  118.         /// <param name="pt1s">起始角度直线起始点</param>
  119.         /// <param name="pt1e">起始角度直线终止点</param>
  120.         /// <param name="pt2s">终止角度直线起始点</param>
  121.         /// <param name="pt2e">终止角度直线终止点</param>
  122.         /// <param name="arcpt">圆弧位置点</param>
  123.         /// <param name="scal">标注比例</param>
  124.         /// <param name="lfac">标注线型比例</param>
  125.         /// <param name="dec">标注精度</param>
  126.         /// <returns>图元ObjectId</returns>
  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.         }



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2021-7-31 13:26:37 | 显示全部楼层
  lsp 转到C #
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 04:24 , Processed in 0.148362 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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