VC做的绘图程序保存的DXF文件用AutoCAD打开不了,哪里有问题
本帖最后由 VisualEleven 于 2013-01-05 17:38:27 编辑 VC做的绘图程序保存的DXF文件用AutoCAD打开不了,AutoCAD里面提示说图形头中出错,位于第3行,保存的DXF文件不是有效文件。
BOOL CTest18Doc::SaveDoc(CStdioFile *pCFile)
{
pCFile->SeekToBegin();
CString str;
str=" 0\r\n";
pCFile->WriteString(str);
str="SECTION\r\n";
pCFile->WriteString(str);
str=" 2\r\n";
pCFile->WriteString(str);
str="HEADER\r\n";
pCFile->WriteString(str);
str=" 0\r\n";
pCFile->WriteString(str);
str="ENDSEC\r\n";
pCFile->WriteString(str);
str=" 0\r\n";
pCFile->WriteString(str);
str="SECTION\r\n";
pCFile->WriteString(str);
str=" 2\r\n";
pCFile->WriteString(str);
str="ENTITIES\r\n";
pCFile->WriteString(str);
///////////////////////////
POSITIONpos = g_pDoc->m_EntityList.GetHeadPosition();
while(pos!=NULL)
{
CEntity* pEntity = (CEntity *) g_pDoc->m_EntityList.GetNext(pos);
CString str;
str=pEntity->SaveDXF();
pCFile->WriteString(str);
}
////////////////////////////
str=" 0\r\n";
pCFile->WriteString(str);
str="ENDSEC\r\n";
pCFile->WriteString(str);
str=" 0\r\n";
pCFile->WriteString(str);
str="EOF\r\n";
pCFile->WriteString(str);
pCFile->Close();
SetModifiedFlag(FALSE);
return TRUE;
}
直线类的SaveDXF()
CString CCircle::SaveDXF()
{
CString str, str1;
str1 = "0\r\n";
str = str + str1;
str1 = "CIRCLE\r\n";
str = str + str1;
str1 = " 8\r\n";
str = str + str1;
str1 = "0\r\n";
str = str + str1;
str1=" 10\r\n";
str=str+str1;
str1.Format("%f",m_center.x/1000);
str=str+str1+"\r\n";
str1=" 20\r\n";
str=str+str1;
str1.Format("%f",m_center.y/1000);
str=str+str1+"\r\n";
str1=" 40\r\n";
str=str+str1;
str1.Format("%f",m_radius/1000);
str=str+str1+"\r\n";
return str;
}
[解决办法]
DXF格式是怎么样的?你保存的DXF文件格式对吗?