摘要:
AcDbPolyline* pLine = new AcDbPolyline;......AcDbObjectId idPline = AddToCurrentSpace(pLine);ads_name namepLine;acdbGetAdsName(namepLine, idPline);acedSSSetFirst(namepLine, NULL);这样不行,是不是因为 namepLine 只是一个实体的名字,而不是选择集呢?怎么转换为选择集呢?[hr]选中实体的话,应该用acedSSGet而不是acedSSSetFirst另外 pLine 在加入database之后需要close..用 阅读全文
posted @ 2013-04-14 13:32
编号一百零二
阅读(605)
评论(0)
推荐(1)
摘要:
#include "dblayout.h"#include "acaplmgr.h"#include "dbplotsetval.h"#include "dbplotsettings.h"/*To query the all the available plot configurations you should use plotDeviceList()method of AcDbPlotSettingsValidator class.And to get the list of available media n 阅读全文
posted @ 2013-04-14 13:31
编号一百零二
阅读(1182)
评论(0)
推荐(1)
摘要:
ads_queueexpr( _T("(command\"_POINT\" \"1,1,0\")") );该函数CAD未公开,使用时提前声明下就可以了。可以参考帮助文件中:Tips and Techniques 。acDocManager->sendStringToExecute(curDoc(), _T("_POINT 2,2,0 "));该函数在Arx帮助中有详细说明。acedCommand(RTSTR, _T("_POINT"), RTSTR,_T("5,5,0" 阅读全文
posted @ 2013-04-14 13:30
编号一百零二
阅读(720)
评论(0)
推荐(1)
摘要:
举例一个在模态对话框中选择点并显示点的功能。在“选择点”按钮的单击事件中,隐藏对话框,提示用户在图形窗口中选择一个点,然后重新显示该对话框,其处理函数为:void CArxDialog::OnButtonPoint()//点击按钮响应函数{// 隐藏对话框把控制权交给AutoCADBeginEditorCommand();// 提示用户输入一个点ads_point pt;if (acedGetPoint(NULL, "\n输入一个点:", pt) == RTNORM){// 如果点有效,继续执行CompleteEditorCommand();m_strXPt.Format( 阅读全文
posted @ 2013-04-14 13:29
编号一百零二
阅读(757)
评论(0)
推荐(1)
摘要:
总是需要在自定义控件上显示DWG图形,如在一个对话框上动态浏览一个DWG图形,于是写了一个控件,专门用来动态浏览DWG,这个控件从CStatic中派生,运用AcGs类库中的AcGsView,AcGsDevice,AcGsModel来协作显示DWG图形。从CStatic派生,使用方便,只要在对话框中放一个CStatic,然后把CStatic的对象名换成fcGsPreviewCtrl即可。fcGsPreviewCtrl.h/********************************************************************日 期: 2007/10/08文件 名: 阅读全文
posted @ 2013-04-14 13:27
编号一百零二
阅读(1048)
评论(1)
推荐(0)
摘要:
AcDbViewTableRecord GetCurrentView(){AcDbViewTableRecord view;struct resbuf rb;struct resbuf wcs, ucs, dcs; // 转换坐标时使用的坐标系统标记wcs.restype = RTSHORT;wcs.resval.rint = 0;ucs.restype = RTSHORT;ucs.resval.rint = 1;dcs.restype = RTSHORT;dcs.resval.rint = 2;// 获得当前视口的“查看”模式acedGetVar("VIEWMODE", 阅读全文
posted @ 2013-04-14 13:23
编号一百零二
阅读(694)
评论(0)
推荐(2)
摘要:
实际上,AutoCAD对于用户自定义命令 (C:xxx) 和她原装的命令并不是一视同仁,而是有亲有疏。具体表现在C:xxx定义的命令:1〉用 (Command) 或者 (VL-CmdF) 函数不能引用。2〉从菜单项引发的用户自定义命令,执行之后不能用回车重复调用。3〉命令反应器不能跟踪。这显然是不方便的,为了克服这个问题,我们曾经探讨了多个行之有效的方法。而目前,Visual LISP 也提供了一种新的解决方案,关键功能函数是 (VLAX-Add-Cmd)。(VLAX-Add-Cmd “命令名”函数名 [“命令别名” 命令标志码])作用:将一个用户函数以内部命令身份加入到AutoCAD命令集之 阅读全文
posted @ 2013-04-14 13:22
编号一百零二
阅读(1137)
评论(0)
推荐(0)
摘要:
#include "StdAfx.h"#include "StdArx.h"#include "stdafx.h"#include "resource.h"#include "acutads.h"#include "dbents.h"#include "dbpl.h"#include "MALLOC.h"#include "STDLIB.h"#include "acedads.h"#include 阅读全文
posted @ 2013-04-14 13:21
编号一百零二
阅读(836)
评论(0)
推荐(0)
摘要:
// DoubleClickEdit.h: interface for the CDoubleClickEdit class.//////////////////////////////////////////////////////////////////////////By freejsutin 2005-08-17#include "AcDblClkEdit.h" //for dinfine AcDbDoubleClickEdit#pragma comment (lib ,"AcDblClkEditPE.lib")#include "ac 阅读全文
posted @ 2013-04-14 13:19
编号一百零二
阅读(794)
评论(0)
推荐(0)
摘要:
大多数ObjectARX函数在处理选择集和实体时,都用名字来识别选择集或实体,该名字用一个长整型对来表示的,并对AutoCAD来维护。在ObjectARX中,该名字的类型为ads_name。在对选择集或实体进行操作之前,ObjectARX应用程序必须通过调用一个返回其名字的库函数来得到选择集或实体名字。注意:选择集和实体的名字是不稳定的,它们仅仅在AutoCAD当前图形工作时有效。如果从AutoCAD退出或切换到另一个图形时其值就会丢失。对于选择集来说,它也是与当前图有关联的,所以其名字的不稳定性不会影响选择集。但是对于实体就不一样了,因为它是被存放在图形数据库中的,名字的不稳定性要影响到对实 阅读全文
posted @ 2013-04-14 13:18
编号一百零二
阅读(855)
评论(0)
推荐(0)
摘要:
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
编号一百零二
阅读(2621)
评论(0)
推荐(0)
摘要:
objectarx 加载菜单-ObjectARX中右键(快捷)菜单的实现方法:网上看到好像网友问到在AutoCAD窗口中实现右键菜单的方法,觉得这种技术很实用,在许多开发应用中都能用得到,所以就写了这篇文章,以供大家参考。由于本人水平有限,不对之处敬请原谅。 右键菜单,也叫快捷菜单,在Windows编程中叫上下文(context)菜单。ObjectARX本身提供了一套处理上下文菜单的机制。在ObjectARX类库中有一个名为AcEdUIContext的类,此类负责在ObjectARX应用中的上下文菜单中添加自己的菜单项,而原菜单项不会被破坏,这也是此种方法的优点之一。用AcEdUIConte. 阅读全文
posted @ 2013-04-14 13:14
编号一百零二
阅读(670)
评论(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
编号一百零二
阅读(553)
评论(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
编号一百零二
阅读(1271)
评论(0)
推荐(0)
摘要:
本实例主要是描述如何用ARX定制CAD的右键菜单,CAD的右键菜单可以分为很多类,但没有选中实体时的菜单只有一类(defaultContextMenu),然而你可以为每一个实体类型定义一个右键菜单类型。整个CAD中针对每个类(objectContextMenu)的处理方法都是这样的,类似于扩展协议一样,如果每一类实体没有自己定义扩展协议,则按CAD默认的处理方法。ContextMenu主要包括的就是defaultContextMenu 和 objectContextMenu,在我们软件中,也用到了这个类型,主要的核心就是,你必须继承一个父类,并且实现三个方法:AcEdUIContext类,并且 阅读全文
posted @ 2013-04-14 13:09
编号一百零二
阅读(1067)
评论(0)
推荐(0)
摘要:
在这个例子中,ARX向我们展示了ACDBTABLE类的一些基本操作方法,ACDBTABLE类是ACAD2005及其以后的产品,应该是说ACDBDATATABLE的升级产品,AcDbDataCell,AcDbDataTable,AcDbDataColumn在ACAD2004中就已经出现。AcDbTable 功能很强大的。从最基本的,能设置表格的行、列数目,行、列高度(废话,这是最基本的),还能设置文字样式,每个单元格的前、背景颜色,文字的线宽,文字的可见性,文字的旋转。表格线的样式,颜色,线宽,可见性。还可以设置自动缩放。合并与拆分单元格。选定子区域(就是选择一部分);还有自定义实体的夹点等等一 阅读全文
posted @ 2013-04-14 13:08
编号一百零二
阅读(2013)
评论(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
编号一百零二
阅读(946)
评论(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
编号一百零二
阅读(2121)
评论(0)
推荐(0)
摘要:
目的:实现夹点操作过程中,一系列要控制的功能(比如:各个夹点的提示语、夹点样子、对应的动态标注等)。我们都知道,CAD的自定义实体中支撑用户自定义夹点的接口(getGripPoints和moveGripPointsAt)。而CAD支持的夹点对象就是AcDbGripData类。所以,如果需要依靠夹点操作这一套机制来实现我们要的一些功能,就需要研究研究这个类,否则就要自己写了(这样,复杂,并且有些效果并不一定能实现)。庆幸的是,ARX为AcDbGripData内置了一系列的回调函数(其实就是钩子函数来获取二次开发者对其的一些行为的定义),下面,我们就来慢慢的剖析这个类。在这其中,我们只需要知道以下 阅读全文
posted @ 2013-04-14 13:04
编号一百零二
阅读(1276)
评论(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
编号一百零二
阅读(988)
评论(0)
推荐(0)
浙公网安备 33010602011771号