点选一点,动态标注改点坐标。
用objectARX实现了一个复杂实体的Jig..

//坐标标注JIg类class ZBJig : DrawJig{public readonly static double TextHeight = 8;public readonly static double Len = 80;private Point3d mLocation;private string strZb = "";private DBText mText;private Polyline mPline;public void Bzb(){Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;Database db = HostApplicationServices.WorkingDatabase;PromptPointOptions opt = new PromptPointOptions("\n选择标注点:");PromptPointResult res = ed.GetPoint(opt);if (res.Status != PromptStatus.OK){return;}Point3d FirstPoint = res.Value;strZb = string.Format("X={0:0.0000},Y={1:0.0000}", FirstPoint.X, FirstPoint.Y);mText = new DBText();// mText.TextStyleId = TextStyles.AddTextStyle("hztxt");mText.Position = FirstPoint;mText.TextString = strZb;mText.Height = TextHeight;mText.WidthFactor = 0.7;mText.Rotation = 0.00;mPline = new Polyline();mPline.AddVertexAt(0, new Point2d(FirstPoint.X, FirstPoint.Y), 0, 0, 0);mPline.AddVertexAt(1, new Point2d(FirstPoint.X, FirstPoint.Y), 0, 0, 0);mPline.AddVertexAt(2, new Point2d(FirstPoint.X + Len, FirstPoint.Y), 0, 0, 0);PromptResult res2 = ed.Drag(this);if (res2.Status == PromptStatus.OK){AppendEntity();}}protected override SamplerStatus Sampler(JigPrompts prompts){JigPromptPointOptions jigOpts = new JigPromptPointOptions();jigOpts.UserInputControls =UserInputControls.Accept3dCoordinates |UserInputControls.NoZeroResponseAccepted |UserInputControls.NoNegativeResponseAccepted;jigOpts.Message = "\n标注位置:";PromptPointResult res = prompts.AcquirePoint(jigOpts);Point3d positionTemp = res.Value;if (positionTemp != mLocation){mLocation = positionTemp;}elsereturn SamplerStatus.NoChange;if (res.Status == PromptStatus.Cancel)return SamplerStatus.Cancel;elsereturn SamplerStatus.OK;}protected override bool WorldDraw(Autodesk.AutoCAD.GraphicsInterface.WorldDraw draw){try{Update();draw.Geometry.Draw(mPline);draw.Geometry.Draw(mText);}catch (System.Exception){return false;}return true;}private void Update(){mPline.SetPointAt(1, new Point2d(mLocation.X, mLocation.Y));mPline.SetPointAt(2, new Point2d(mLocation.X + Len, mLocation.Y));mText.Position = mLocation;}//在当前图形文件中添加实体private void AppendEntity(){Database db = HostApplicationServices.WorkingDatabase;using (Transaction tr = db.TransactionManager.StartTransaction()){BlockTableRecord btr = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite, false);          Update();btr.AppendEntity(mText);tr.AddNewlyCreatedDBObject(mText, true);btr.AppendEntity(mPline);tr.AddNewlyCreatedDBObject(mPline, true);tr.Commit();}}}

增加一个AutoCAD命令

      [CommandMethod("Bzb")]static public void Cmd5() // This method can have any name{ZBJig bzb1 = new ZBJig();bzb1.Bzb();}

实现效果如下:

用objectARX实现了一个复杂实体的Jig相关推荐

  1. Java基类共同属性设置_java – 你有一个Hibernate实体的基类吗?

    你有一个Hibernate实体的共同基类,即具有id,version和其他常见属性的MappedSuperclass?有什么缺点吗? 例: @MappedSuperclass() public cla ...

  2. 一个用户实体应该有它自己的实体验证,即一个实体应该有它的属性,方法,扩展属性及验证机制组成...

    一个存储验证信息的公用类: /// <summary>      /// 验证信息实体类      /// </summary>      public class RuleV ...

  3. 我写了一个java实体类,implements了Serializable接口,然后我如何让serialversionUID自动生成...

    写了一个java实体类,implements了Serializable接口,让serialversionUID自动生成方法: 1.点击类旁边的警告符号: 2.选择Add generated seria ...

  4. LKDHelper使用LKDBHelper以实体类对象进行数据库的操作,例如新建一个新闻实体类,以这个类来

    LKDBHelper以实体类对象进行数据库的操作,例如新建一个新闻实体类, 很早的时候用过,是基于FMDB基础上封装的,现在记录下使用过程,年纪大了容易健忘 哈哈 #import "Base ...

  5. C#ObjectArx Cad插入一个实体

    /// <summary>/// 将数据以表格形式插入图形/// </summary>/// <param name="db"></par ...

  6. 推荐一个 Java 实体映射工具 MapStruct

    声明: 1.DO(业务实体对象),DTO(数据传输对象). 2.我的代码中用到了 Lombok ,不了解的可以自行了解一下,了解的忽略这条就好. 在一个成熟的工程中,尤其是现在的分布式系统中,应用与应 ...

  7. MSDN Visual系列:在MOSS中创建一个BDC实体

    原文:http://msdn2.microsoft.com/en-us/library/bb410048.aspx   业务数据目录--BDC(Business Data Catalog)是MOSS中 ...

  8. java jersey get_java – Jersey GET请求可以返回一个多态实体吗​​?

    我有一个Resource类,试图返回一个接口类型,比如说"Shape": public interface Shape {...} @XmlRootElement public c ...

  9. 【Revit二次开发】创建一个拉伸实体(正方体)+创建一个自定义族类型

    写在前面 这个例子是在族文件是测试的(打开Revit,选择新建族,选择公制常规模型,如下图一).创建好以后是空白的,如下图二 图一 图二 实现例子前有几个疑问: 拉伸实体是什么?创建拉伸实体的方法是什 ...

最新文章

  1. JAVA学习笔记--初始化与清理
  2. Stanford UFLDL教程 数据预处理
  3. add1顶部菜单html,add1.html
  4. Linux设置Oracle开机自启动
  5. .NET平台开发必须掌握的XML知识(二)
  6. 升级鸿蒙系统有没有翻车,被寄予厚望的华为鸿蒙系统,这次要翻车?原来并不是我们想的那样...
  7. 华北水利水电大学计算机实验报告怎么写,考试类:华北水利水电大学C语言实验报告.doc...
  8. Win10系列:C#应用控件基础7
  9. 环形队列的输出_循环队列的基本操作详细讲解
  10. vnpy软件架构分析
  11. 游戏计算机代码大全,DNF各类错误代码大全及解决方法
  12. python饼状图显示其比例_Python学习笔记--使用matplotlib绘制饼状图
  13. 遗传算法求解函数最大值的python实现
  14. #10015. 「一本通 1.2 练习 2」扩散(二分+最短路径)
  15. 我的世界java版钻石剑附魔_我的世界钻石剑怎么附魔 钻石剑附魔100级指令
  16. ubuntu下深度启动盘制作工具
  17. 祝大家新年快乐,鼠年平安健康、阖家幸福如意!
  18. 【ML】MoG与EM:从EM到MoG
  19. 2020计算机考研985,2020考研:这几所985一个A+学科快来看看吧
  20. html倒计时代码+微信可用,微信页面倒计时代码(解决safari不兼容date的问题)

热门文章

  1. Python小技巧 - argmax
  2. 我和计算机做游戏课后反思,语言活动设计《我和风儿做游戏》
  3. 天池_二手车交易价格预测
  4. 第十六篇玩转【斗鱼直播APP】系列之内容简介
  5. linux也是x86架构吗,linux下X86架构IDT解析
  6. Metacat 简介
  7. python-批量生成指定名字的图片名
  8. 四元数与向量乘积的意义
  9. php调试排错技巧大全
  10. 数学基础 —— 向量运算(叉乘)