摘要: AcDbEntity 是所有具有图形表现的数据库对象的基类。它由AcDbObject派生。创建自定义实体包括以下步骤:1.从AcDbEntity派生一个自定义类;2.重载所有必要的AcDbObject函数;3.重载要求的AcDbEntity函数;4.重载支持自定义功能的其它函数;5.如果要支持MATCHPROP命令,执行AcDbMatchProperties作为扩展协议;6.如果要为自定义实体创建拖曳序列,执行自定义的AcEdJig。(1)必须重载的AcDbEntity函数当从AcDbEntity派生自定义类时,下述函数必须重载:virtual Adesk::Boolean worldDraw 阅读全文
posted @ 2013-04-14 13:15 编号一百零二 阅读(2496) 评论(0) 推荐(0) 编辑
摘要: objectarx 加载菜单-ObjectARX中右键(快捷)菜单的实现方法:网上看到好像网友问到在AutoCAD窗口中实现右键菜单的方法,觉得这种技术很实用,在许多开发应用中都能用得到,所以就写了这篇文章,以供大家参考。由于本人水平有限,不对之处敬请原谅。 右键菜单,也叫快捷菜单,在Windows编程中叫上下文(context)菜单。ObjectARX本身提供了一套处理上下文菜单的机制。在ObjectARX类库中有一个名为AcEdUIContext的类,此类负责在ObjectARX应用中的上下文菜单中添加自己的菜单项,而原菜单项不会被破坏,这也是此种方法的优点之一。用AcEdUIConte. 阅读全文
posted @ 2013-04-14 13:14 编号一百零二 阅读(632) 评论(0) 推荐(0) 编辑
摘要: 本例子主要是讲如何在ARX开发中,使用CAD的状态栏中的进度条,主要由以下几个步骤组成,还是比较简单的。acedSetStatusBarProgressMeter(_T("Test Progress Bar"), 0, 100);//上面一句,是设置进度条的提示语,并肯设置进度条的范围。 for(int i =0; i <= 100; i++) { Sleep(100); acedSetStatusBarProgressMeterPos(i); //上面一句,是设置进度条当前的位置,随着位置的变化,才有进度条的效果 }acedRestoreStatusBar();// 阅读全文
posted @ 2013-04-14 13:12 编号一百零二 阅读(512) 评论(0) 推荐(0) 编辑
摘要: 本实例主要是讲Hook技术在CAD中的使用方法。Hook技术就是所谓钩子技术,在CAD的二次开发过程中,有很多的情况,是需要使用钩子技术的(尽管CAD已经提供了强大的反应器技术),由于CAD也是基于MFC开发的应用程序,我们也可以像HOOK其它应用程序一样的方法来HOOKCAD,但有些时候,一些消息不知道怎么回事,会HOOK不到。比如:按下SHIFT键。 不管怎么样,CAD还是把HOOKCAD消息的处理方法封装了一下。很好用,主要有以下几种:// Define callback function for apps that want windows messagestypedef void ( 阅读全文
posted @ 2013-04-14 13:11 编号一百零二 阅读(1218) 评论(0) 推荐(0) 编辑
摘要: 本实例主要是描述如何用ARX定制CAD的右键菜单,CAD的右键菜单可以分为很多类,但没有选中实体时的菜单只有一类(defaultContextMenu),然而你可以为每一个实体类型定义一个右键菜单类型。整个CAD中针对每个类(objectContextMenu)的处理方法都是这样的,类似于扩展协议一样,如果每一类实体没有自己定义扩展协议,则按CAD默认的处理方法。ContextMenu主要包括的就是defaultContextMenu 和 objectContextMenu,在我们软件中,也用到了这个类型,主要的核心就是,你必须继承一个父类,并且实现三个方法:AcEdUIContext类,并且 阅读全文
posted @ 2013-04-14 13:09 编号一百零二 阅读(1001) 评论(0) 推荐(0) 编辑
摘要: 在这个例子中,ARX向我们展示了ACDBTABLE类的一些基本操作方法,ACDBTABLE类是ACAD2005及其以后的产品,应该是说ACDBDATATABLE的升级产品,AcDbDataCell,AcDbDataTable,AcDbDataColumn在ACAD2004中就已经出现。AcDbTable 功能很强大的。从最基本的,能设置表格的行、列数目,行、列高度(废话,这是最基本的),还能设置文字样式,每个单元格的前、背景颜色,文字的线宽,文字的可见性,文字的旋转。表格线的样式,颜色,线宽,可见性。还可以设置自动缩放。合并与拆分单元格。选定子区域(就是选择一部分);还有自定义实体的夹点等等一 阅读全文
posted @ 2013-04-14 13:08 编号一百零二 阅读(1799) 评论(0) 推荐(0) 编辑
摘要: 本文档主要是针对于自定义实体(基于Amodeler::Body)与Objectarx中的AcDb3dSolid实体之间的转换。1. 从Amodeler::Body到AcDb3dSolid的转换a) 传统的方式:由于Amodeler::Body中,你可以迭代得到它的基本几何元素(面、线、点、表面等),你可以根据这些数据,对应生成AcDb3dSolid应该要包括的基本几何元素,从而实体转换。b) 中间文本方式:我们都知道Amodeler和ACAD都是基本ACIS几何内核的,而ACIS几何内核都可以用SAT文件来描述,所以,我们可以把Amodeler或ACAD中的几何模型导出成SAT文件,然后再导入 阅读全文
posted @ 2013-04-14 13:07 编号一百零二 阅读(900) 评论(0) 推荐(0) 编辑
摘要: 2D Arrangement类型简介:给定一组平面曲线,2D Arrangement能够将这组曲线所组成的图形细分成顶点、边和面这些最基本的几何单位。其中给定的曲线能够相互相交,甚至能自相交。其组成的图形在2D Arrangemen 中描述成双边连接数据结构(doubly-connected edge list data-structure (D CEL for short))即把一条边变成两条半边来描述,其中,这个数据结构包含了对顶点、边、面的描述。如上图,通过线段构造的2D Arrangements表现成了顶点(vn)、边(un)、面(fn)的形式。 其中f0是一个没有被包装的面(un_b 阅读全文
posted @ 2013-04-14 13:06 编号一百零二 阅读(1935) 评论(0) 推荐(0) 编辑
摘要: 目的:实现夹点操作过程中,一系列要控制的功能(比如:各个夹点的提示语、夹点样子、对应的动态标注等)。我们都知道,CAD的自定义实体中支撑用户自定义夹点的接口(getGripPoints和moveGripPointsAt)。而CAD支持的夹点对象就是AcDbGripData类。所以,如果需要依靠夹点操作这一套机制来实现我们要的一些功能,就需要研究研究这个类,否则就要自己写了(这样,复杂,并且有些效果并不一定能实现)。庆幸的是,ARX为AcDbGripData内置了一系列的回调函数(其实就是钩子函数来获取二次开发者对其的一些行为的定义),下面,我们就来慢慢的剖析这个类。在这其中,我们只需要知道以下 阅读全文
posted @ 2013-04-14 13:04 编号一百零二 阅读(1137) 评论(0) 推荐(0) 编辑
摘要: 一、模块介绍:模块AsdkHlrApi17是用来帮助计算AutoCAD图形的消隐线的,它返回一些线实体,用户程序可以决定是否把这些返回线实体加入当前的图形数据库或其它的数据库。该模块主要由Cyrille Fauvel & Phil Holcombe两个Autodesk Developer Consulting Group中的大牛于1999年编写。二、HlrApi模块中,类的介绍:1. AsdkHlrControl枚举enum AsdkHlrControl{kProject =0x0001, //----- 是不是线实体都投影到一个平面kShowAll =0x0002, //-----是 阅读全文
posted @ 2013-04-14 13:03 编号一百零二 阅读(917) 评论(0) 推荐(0) 编辑