objectARX说明函数(3)

2020-04-21 00:53

//# 类似函数: //# 替换函数: //# 现存缺陷: //# 示例程序: //# 测试要求:

//# 历史记录: 2003年11月24日 , zjw ,完成 //

//# DOC.END

int oxaGetVar(const CString strSym, double &vOut ) {

resbuf rbVar;

int iRt=acedGetVar(strSym, &rbVar) ; if (iRt!=RTNORM) {

return iRt; }

if (rbVar.restype==RTREAL) {

vOut=rbVar.resval.rreal; }

return RTNORM; }

///////////////////////////////////////////////////////////////////////////////// //# DOC.BEGIN

//# 函数名称: oxaGetVar //# 函数编号: OXA //# 函数声明:

//# 函数参数: const CString strSym, // CString &vOut //# 返回值: int //# 函数分类:

//# 函数功能:获取系统变量, 封装acedGetVar() //# 注意事项: //# 涉及的全局变量: //# 调用的OXARX函数: //# 函数算法:

//# ACAD版本:R14 R15 R16 //# 配合函数: //# 类似函数: //# 替换函数: //# 现存缺陷: //# 示例程序: //# 测试要求:

//# 历史记录: 2003年11月24日 , zjw ,完成 //

//# DOC.END

int oxaGetVar(const CString strSym, CString &vOut ) {

resbuf rbVar;

int iRt=acedGetVar(strSym, &rbVar) ; if (iRt!=RTNORM) {

return iRt; }

if (rbVar.restype==RTSTR) {

vOut=rbVar.resval.rstring; }

return RTNORM; }

// 函数名 : SetCurTextStyle // 描述 : 设置当前TextStyle // 返回 : Acad::ErrorStatus // 参数 : const char* lpStyleName

// 参数 : AcDbDatabase* pDb/* = NULL */

Acad::ErrorStatus SetCurTextStyle(const char* lpStyleName, AcDbDatabase* pDb/* = NULL */) {

AcDbDatabase* pCurDb = pDb; if (pCurDb == NULL)

pCurDb = acdbHostApplicationServices()->workingDatabase();

AcDbTextStyleTableRecordPointer spRecord(lpStyleName, pCurDb, AcDb::kForRead); Acad::ErrorStatus es = spRecord.openStatus();

if (es == Acad::eOk) {

es = pCurDb->setTextstyle(spRecord->objectId()); } return es; }

// Function name : SetCurLayer // Descrīption : 设置当前层 // Return type : Acad::ErrorStatus // Argument : const char* lpLayerName // Argument : AcDbDatabase* pDb/* = NULL */

Acad::ErrorStatus SetCurLayer(const char* lpLayerName, AcDbDatabase* pDb/* = NULL */) {

AcDbDatabase* pCurDb = pDb; if (pCurDb == NULL)

pCurDb = acdbHostApplicationServices()->workingDatabase();

AcDbLayerTableRecordPointer spRecord(lpLayerName, pCurDb, AcDb::kForRead); Acad::ErrorStatus es = spRecord.openStatus(); if (es == Acad::eOk) {

es = pCurDb->setClayer(spRecord->objectId()); } return es; }

//获取属性块中所有属性的字符串值,并且存于链表中 CODE:

void FEGroups::iterateDictionary() {

//obtain the GROUP dictionary by looking up \//

/* AcDbDictionary *pNamedobj;

acdbHostApplicationServices()->workingDatabase()

->getNamedObjectsDictionary(pNamedobj, AcDb::kForRead); // Get a pointer to the ASDK_DICT dictionary. //

AcDbDictionary *pDict;

pNamedobj->getAt(\ AcDb::kForRead); pNamedobj->close(); */

// Get a pointer to the ACAD_GROUP dictionary AcDbDictionary *pDict;

acdbHostApplicationServices()->workingDatabase() ->getGroupDictionary(pDict, AcDb::kForRead); // Get an iterator for the ASDK_DICT dictionary. //

AcDbDictionaryIterator* pDictIter = pDict->newIterator(); AcDbGroup *pGroup; char* name;

for (; !pDictIter->done(); pDictIter->next()) { // Get the current record, open it for read, and // print its name. //

pDictIter->getObject((AcDbObject*&)pGroup, AcDb::kForRead); pGroup->getName(name); pGroup->close();

acutPrintf(\}

delete pDictIter; pDict->close(); }

//检测AutoCAD是否已经运行 CODE:

void Autocadtest() {

// TODO: Add your control notification handler code here IAcadApplication m_autocad; IAcadDocuments m_acaddocs;

IAcadDocument m_acaddoc; IAcadModelSpace m_acadmodel; LPDISPATCH pDisp; LPUNKNOWN pUnk; CLSID clsid; BeginWaitCursor();

::CLSIDFromProgID(L\ if(::GetActiveObject(clsid,NULL,&pUnk)==S_OK) {

VERIFY(pUnk->QueryInterface(IID_IDispatch,(void**) &pDisp)==S_OK); m_autocad.AttachDispatch(pDisp); pUnk->Release(); } else {

if(!m_autocad.CreateDispatch(\ {

AfxMessageBox(\ exit(1); } }

m_autocad.SetVisible(true);

m_acaddocs.AttachDispatch(m_autocad.GetDocuments(),true); m_acaddoc.AttachDispatch(m_acaddocs.Add(vtMissing),true); m_acadmodel.AttachDispatch(m_acaddoc.GetModelSpace(),true); m_acadmodel.AddCircle(pVal,100);

m_acadmodel.ReleaseDispatch(); m_acaddoc.ReleaseDispatch(); m_acaddocs.ReleaseDispatch(); m_autocad.ReleaseDispatch(); }

//计算多边形的形心坐标

BOOL GetPolyCentroid(AcDbPolyline * pPline, ads_point CenPt) {

unsigned int i, iCount = 0;

AcDbVoidPtrArray curveSegments, regions;


objectARX说明函数(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(道歉信)给女友的感人道歉信范文3篇

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: