用objectARX实现了一个复杂实体的Jig
点选一点,动态标注改点坐标。
用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相关推荐
- Java基类共同属性设置_java – 你有一个Hibernate实体的基类吗?
你有一个Hibernate实体的共同基类,即具有id,version和其他常见属性的MappedSuperclass?有什么缺点吗? 例: @MappedSuperclass() public cla ...
- 一个用户实体应该有它自己的实体验证,即一个实体应该有它的属性,方法,扩展属性及验证机制组成...
一个存储验证信息的公用类: /// <summary> /// 验证信息实体类 /// </summary> public class RuleV ...
- 我写了一个java实体类,implements了Serializable接口,然后我如何让serialversionUID自动生成...
写了一个java实体类,implements了Serializable接口,让serialversionUID自动生成方法: 1.点击类旁边的警告符号: 2.选择Add generated seria ...
- LKDHelper使用LKDBHelper以实体类对象进行数据库的操作,例如新建一个新闻实体类,以这个类来
LKDBHelper以实体类对象进行数据库的操作,例如新建一个新闻实体类, 很早的时候用过,是基于FMDB基础上封装的,现在记录下使用过程,年纪大了容易健忘 哈哈 #import "Base ...
- C#ObjectArx Cad插入一个实体
/// <summary>/// 将数据以表格形式插入图形/// </summary>/// <param name="db"></par ...
- 推荐一个 Java 实体映射工具 MapStruct
声明: 1.DO(业务实体对象),DTO(数据传输对象). 2.我的代码中用到了 Lombok ,不了解的可以自行了解一下,了解的忽略这条就好. 在一个成熟的工程中,尤其是现在的分布式系统中,应用与应 ...
- MSDN Visual系列:在MOSS中创建一个BDC实体
原文:http://msdn2.microsoft.com/en-us/library/bb410048.aspx 业务数据目录--BDC(Business Data Catalog)是MOSS中 ...
- java jersey get_java – Jersey GET请求可以返回一个多态实体吗?
我有一个Resource类,试图返回一个接口类型,比如说"Shape": public interface Shape {...} @XmlRootElement public c ...
- 【Revit二次开发】创建一个拉伸实体(正方体)+创建一个自定义族类型
写在前面 这个例子是在族文件是测试的(打开Revit,选择新建族,选择公制常规模型,如下图一).创建好以后是空白的,如下图二 图一 图二 实现例子前有几个疑问: 拉伸实体是什么?创建拉伸实体的方法是什 ...
最新文章
- JAVA学习笔记--初始化与清理
- Stanford UFLDL教程 数据预处理
- add1顶部菜单html,add1.html
- Linux设置Oracle开机自启动
- .NET平台开发必须掌握的XML知识(二)
- 升级鸿蒙系统有没有翻车,被寄予厚望的华为鸿蒙系统,这次要翻车?原来并不是我们想的那样...
- 华北水利水电大学计算机实验报告怎么写,考试类:华北水利水电大学C语言实验报告.doc...
- Win10系列:C#应用控件基础7
- 环形队列的输出_循环队列的基本操作详细讲解
- vnpy软件架构分析
- 游戏计算机代码大全,DNF各类错误代码大全及解决方法
- python饼状图显示其比例_Python学习笔记--使用matplotlib绘制饼状图
- 遗传算法求解函数最大值的python实现
- #10015. 「一本通 1.2 练习 2」扩散(二分+最短路径)
- 我的世界java版钻石剑附魔_我的世界钻石剑怎么附魔 钻石剑附魔100级指令
- ubuntu下深度启动盘制作工具
- 祝大家新年快乐,鼠年平安健康、阖家幸福如意!
- 【ML】MoG与EM:从EM到MoG
- 2020计算机考研985,2020考研:这几所985一个A+学科快来看看吧
- html倒计时代码+微信可用,微信页面倒计时代码(解决safari不兼容date的问题)