AutoCAD进阶学习之增加超级编辑命令

loading 分享 2026-8-21 下载文档

笨笨铺子 分享知识 快乐学习

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(\

笨笨铺子 分享知识 快乐学习

n.\\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(\and nothing to be modified.\\n\return Acad::eOk; }

为简单起见,我们只对直线和圆定义超级编辑命令, 在此定义有关line和circle类。在tempapp.cpp 文件中增加CircleTemperature和LineTemperature类,定义如下:

class CircleTemperature : public EntTemperature


AutoCAD进阶学习之增加超级编辑命令.doc 将本文的Word文档下载到电脑
搜索更多关于: AutoCAD进阶学习之增加超级编辑命令 的文档
相关推荐
相关阅读