Vb教程 Vb.net教程 Vfp教程 C/C++教程 Vc/Vc++教程 Delphi教程 Java教程 Powerbuilder
  杀毒频道 | 短信频道 | 网络电视 | 论文中心 | 学上网 | 学软件 | 网页特效 | 电脑基础 | 论坛  
  NCRE | 软考 | CET | 职称英语 | 司法考试 | 报关员 | 公务员 | CATTI | CPA考试  
  Html教程 | Css教程 | Xml教程 | Asp教程 | Asp.net | Php教程 | Jsp教程 | Linux教程 | QQ技巧  
Photoshop Illustrator ImageReady Maya教程 3D Max教程 Lightscape Coredraw教程 Authorware Autocad教程 Freehand教程
Access教程 Mysql教程 Sql server Oracle教程 Word教程 Excel教程 Powerpoint Frontpage Asp.net源码 Php源代码
Flash教程 Fireworks Dreamweaver C#教程 outlook教程 系统安装 vbscript教程 Javascript Jsp源代码 Asp源代码
您的位置:首页 >> Autocad教程 >> 正文

给AutoCAD 增加超级编辑命令
文章来源:互联网

---- AutoCAD在中国有很广泛的用户基础,同时也有很多专业的、业余的开发人员。从R13版本开始,Autodesk 提供了ARX开发工具,面向对象的特性使开发人员如沐春风。有关ARX编程与ADS编程的比较这里不再赘述,此处只讲如何用ARX实现我们所要求的功能,不足之处请指正。

---- 许多二次开发软件均提供超级编辑命令,如Genius 14、HMCAD 6.0等等。读者或许对这些命令很感兴趣,能不能自己开发类似的功能呢?只要您对C++和ARX编程有一些了解,利用Autodesk提供的ObjectARX SDK软件包(可以到Autodesk网址上免费下载),您能很方便的写出此类程序,虽说不能和专业人员提供的超级编辑命令相媲美,但也能给您带来不少方便。本文利用ObjectARX提供的范例程序(缺省安装ObjectARX SDK后的路径是X:\OBJECTARX\ARXLABS\LAB07)进行简单的修改即可实现我们所要求的功能。以下是采用ObjectARX SDK 2.0,在MSVC 5.0编译环境下测试通过。

---- 首先我们要修改enttemp.h文件:

---- 原文件如下:

class EntTemperature : public AcRxObject

{

public:

ACRX_DECLARE_MEMBERS(EntTemperature);

virtual double reflectedEnergy(AcDbEntity* pEnt) const = 0;

};

将斜体部分修改成如下:

virtual Adesk::Boolean HgyModify(AcDbEntity* pEnt)

const = 0;

---- 因为我们以后要以EntTemperature作为基类,而且HgyModify函数在继承类中要重写并要求实现动态调用,故此处必须声明为虚拟函数。Virtual关健字即为C++面向对象的重要的特性。

---- 第二、删除tempapp.def文件中的energy文本。

---- 第三、修改tempapp.cpp文件:

---- 1、 删除CircleTemperature、RigonTemperature及EllipseTemperature类的所有相关内容。

---- 2、 修改原文件中如下的内容:


class DefaultTemperature : public EntTemperature

{

public:

virtual double reflectedEnergy(AcDbEntity* pEnt) const;

};

double DefaultTemperature::reflectedEnergy

(AcDbEntity* pEnt) const

{

ads_printf("\nThis entity has no area, and no reflection.\n");

return -1.0;

}

修改后的内容如下:

class DefaultTemperature : public EntTemperature

{

public:

virtual Adesk::Boolean HgyModify(AcDbEntity* pEnt) const;

};

Adesk::Boolean DefaultTemperature::

HgyModify(AcDbEntity* pEnt) const

{

ads_printf("\nThe entity hasn't defined,

and nothing to be modified.\n");

[返回]

编程语言 web开发 数据库 网络技术 操作系统 服务器 网页设计 图形设计 办公软件 常用软件 学电脑

Copyright© www.bianceng.cn Powered by 编程入门网 All Rights Reserved.
关于本站 | 版权声明 | 联系我们 | 友情链接 |
编程入门网 版权所有