- UID
- 22812
- 积分
- 47
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-12-31
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
各位大虾,我用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<截面(J)/俯视(T)/侧视(F)>:"),&retstr)==RTNORM)
{
if(_tcscmp(&retstr,_T("J"))==0)
{
acedInitGet(RSG_NONULL,_T("C B T"));
TCHAR str;
if(acedGetKword(_T("\n插入基点\n<中心(C)/底部中心(B)/顶部中心(T)>:"),&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();
} |
|