createCircle();//画圆
delete jxs;//删除对象
CDialog::OnOK();
}
AcDbObjectId createCircle()
{
AcGePoint3d center(9.0, 3.0, 0.0);
AcGeVector3d normal(0.0, 0.0, 1.0);
AcDbCircle *pCirc = new AcDbCircle(center, normal, 2.0);
AcDbBlockTable *pBlockTable;
acdbCurDwg()->getBlockTable(pBlockTable,
AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,
AcDb::kForWrite);
pBlockTable->close();
AcDbObjectId circleId;
pBlockTableRecord->appendAcDbEntity(circleId, pCirc);
pBlockTableRecord->close();
pCirc->close();
return circleId;
}
ARX应用程序的升级
使用MFC的ARX应用要想在新版AutoCAD中使用必须进行升级,具体步骤如下:
定义_WINDLL和_AFXDLL
使用“multithreaded DLL runtime library”(发布版)
移走现有的ARX-MFC摸板
移走现有的DLL MFC初始化代码
移走任何CwinApp类的派生对象
把arxmfcdll.cpp和resourcehelper.h加入项目,并作相应调整 (这两个文件都在ObjectARX SDK目录 \objectarx\utils\mfcextras内)
四.结束语
作者在正进行的模具CAD系统的开发中使用了ARX与MFC结合编程的方法,实践证明一方面利用MFC进行Windows风格的编程,另一方面利用ARX提供的类和函数深入到AutoCAD系统内部,实现系统功能要求,大大的提高了开发效率,无疑这是AutoCAD开发者们的最佳选择。 |