求助VC++怎样读取DXF文件格式下的连续直线,急需!!!!!!!!!
//*************************读取dxf文件*************************************************//*************************************************************************************
BOOL CDXFDoc::Loadstl(CArchive &ar)
{
CString str;
CVertex *p_Vertex=NULL;
POINT2D Vertex[2];//直线的起点和终点
do
{//********
ar.ReadString(str); //读出一行文本
if (strnicmp(str , "LINE",4)==0)//调用直线
{
CLine* p_Line=new CLine();
do//***************直线读取*********DO***************
{
ar.ReadString(str);//读取一行文本10
if (strnicmp(str," 10",3)==0)
{
ar.ReadString(str);//读取一行文本
sscanf(str," %f", &Vertex[0].x);//得到起点X坐标
}
if (strnicmp(str," 20",3)==0)
{
ar.ReadString(str);//读取一行文本
sscanf(str," %f", &Vertex[0].y);//得到起点X坐标
}
if (strnicmp(str," 11",3)==0)
{
ar.ReadString(str);//读取一行文本11
sscanf(str," %f", &Vertex[1].x);//得到终点X坐标
}
if (strnicmp(str," 21",3)==0)
{
ar.ReadString(str);//读取一行文本21
sscanf(str," %f", &Vertex[1].y);//得到终点y坐标
}
} while(strnicmp(str," 0",3)!=0);
//***************直线读取********DO****************
for(int j=0; j<2; j++)//直线两点
LineAddVertex(Vertex[j], p_Line,j);//加入点表
m_LineArray.Add(p_Line);//加入线表
}//******************if****************
////////////////////////////连续直线的读取////////////////////////////
else if (strnicmp(str , "AcDbPolyline",12)==0)
{
??????、
}
}while(strnicmp(str,"EOF",3)!=0);//*****************
return TRUE;
}
void CDXFDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
CString str;
//保存直线代码****************************************8
CLine* p_Line;
for(int LineCount = 0; LineCount<m_LineArray.GetSize(); LineCount++)//数量
{
p_Line=m_LineArray[LineCount];
str.Format("LINE\r\n");//保存LINE
ar.WriteString(str);//
//起点x部
str.Format(" 10\r\n");//保存 10
ar.WriteString(str);//
str.Format("%f\r\n", p_Line->LineVex[0]->CVertexCoord.x);
ar.WriteString(str);//保存x方向上向量的信息
//起点Y部
str.Format(" 20\r\n");//保存 20
ar.WriteString(str);//
str.Format("%f\r\n", p_Line->LineVex[0]->CVertexCoord.y);
ar.WriteString(str);//保存x方向上向量的信息
//终点x部
str.Format(" 11\r\n");//保存 11
ar.WriteString(str);
str.Format("%f\r\n", p_Line->LineVex[1]->CVertexCoord.x);
ar.WriteString(str);//保存x方向上向量的信息
//终点y部
str.Format(" 21\r\n");//保存 21
ar.WriteString(str);
str.Format("%f\r\n", p_Line->LineVex[1]->CVertexCoord.y);
ar.WriteString(str);//保存x方向上向量的信息
str.Format(" 0\r\n");//保存 0
ar.WriteString(str);
}
str.Format("EOF\r\n");//保存 EOF
ar.WriteString(str);
//////////////////////////////////////////////////////////////////////////
CPline* p_Pline;
for(int PlineCount = 0; PlineCount<m_PlineArray.GetSize(); PlineCount++)//数量
{
??????
}
[ 本帖最后由 cbx2009 于 2010-1-17 15:19 编辑 ]