lisp创建PaletteSet_晓东CAD家园-论坛-ObjectARX-[求助]:关于CAdUiPalette的问题求助-各位大虾,我用CAdUiPalette和CAdUiPaletteSet作了...

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

各位大虾,我用CAdUiPalette和CAdUiPaletteSet作了一个自定义图形的工具,在CAdUiPalette中加入了一个ChildDlg模板,有一个Button类按钮,用此按钮绘制图形,可在绘制时出现无法以AcDb::kForWrite方式打开块表记录(AcDbBlockTableRecord)的问题,以AcDb::kForRead方式可以打开(当然也无法绘图),不知是何原因,请指教!!!!!!!!!!

void GZGPaletteChildDlg::OnBnClickedButtonInsert()

{

// TODO: 在此添加控件通知处理程序代码        double rh,rb,rd,rt,rr,rr1;

CString numstr;

rh=_wtof(m_datalist.get_TextMatrix(1,1));

rb=_wtof(m_datalist.get_TextMatrix(2,1));

rd=_wtof(m_datalist.get_TextMatrix(3,1));

rt=_wtof(m_datalist.get_TextMatrix(4,1));

rr=_wtof(m_datalist.get_TextMatrix(5,1));

rr1=_wtof(m_datalist.get_TextMatrix(6,1));

double scale;

AcGePoint3d basePt;

int retcade=acedGetReal(_T("\n比例<1>:"),&scale);

if(retcade!=RTERROR && retcade!=RTCAN)

{

if(retcade==RTNONE)

scale=1;

acedInitGet(RSG_NONULL,_T("J T F"));

TCHAR retstr;

if(acedGetKword(_T("\n选择视图\n:"),&retstr)==RTNORM)

{

if(_tcscmp(&retstr,_T("J"))==0)

{

acedInitGet(RSG_NONULL,_T("C B T"));

TCHAR str;

if(acedGetKword(_T("\n插入基点\n:"),&str)==RTNORM)

{

if(_tcscmp(&str,_T("C"))==0)

{

basePt.set(0,0,0);

}

DrawGZGSection(scale,basePt, rh,rb,rd,rt,rr,rr1);

}

}

}

}

}

void GZGPaletteChildDlg::DrawGZGSection(double scale, AcGePoint3d inpt, double h, double b, double d, double t, double r, double r1)

{

ads_name Last_Line,GZGss;

acedSSAdd(NULL,NULL,GZGss);

//Acad::ErrorStatus es;

AcDbDatabase * CurDataBase = NULL;

CurDataBase = acdbHostApplicationServices()->workingDatabase();

if(CurDataBase == NULL)

{

acutPrintf(_T("\n图形错误!"));

return;

}

AcDbBlockTable* CurBlockTable;

if((CurDataBase->getSymbolTable(CurBlockTable,AcDb::kForRead))!=Acad::eOk)

{

acutPrintf(_T("\n块表打开错误!"));

return;

}

AcDbBlockTableRecord* CurBlockTableRec;

if(CurBlockTable->getAt(ACDB_MODEL_SPACE,CurBlockTableRec,AcDb::kForWrite,false)!=Acad::eOk)//出现问题

{

CurBlockTable->close();

acutPrintf(_T("\n块表记录打开错误!"));

return;

}

CurBlockTable->close();

//-----------------------------------------------

CurBlockTableRec->close();

}

广告位,后台可以设置,支持js

您好,您暂时不能浏览帖子的全部内容,请 登录

| 没有账号? 请 注册

你可能感兴趣的:(lisp创建PaletteSet_晓东CAD家园-论坛-ObjectARX-[求助]:关于CAdUiPalette的问题求助-各位大虾,我用CAdUiPalette和CAdUiPaletteSet作了...)