none
求助VC++怎样读取DXF文件格式下的连续直线,急需!!!!!!!!! RRS feed

  • 问题




  • 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);//保存y方向上向量的信息
                //终点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);//保存y方向上向量的信息
                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++)//数量
      {


       

      }
    ///////////////////////////////////////////////////////////////////////////////////////
      }
     else
     {
       // TODO: add loading code here
     }
    }
    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);//得到起点X坐标
        }
        } 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 , " LWPOLYLINE",10)==0)
      {


    ///////////////??????

      }

      }while(strnicmp(str,"EOF",3)!=0);//*****************
          return TRUE;
    }

    2010年1月16日 13:08

答案

  • 去autodesk的论坛问,autodesk的文件格式Visual C++不支持。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 Nancy Shao 2010年1月25日 7:22
    2010年1月23日 15:25
    版主

全部回复

  • DXF格式...没听说过.

    不过你要是把连续直线的储存数据格式发上来我们可以帮你分析下:)


    0xBAADF00D
    2010年1月16日 16:27
    版主
  • DXF格式...没听说过.

    不过你要是把连续直线的储存数据格式发上来我们可以帮你分析下:)


    0xBAADF00D
    是AutoCAD 的文件,那个很复杂的,需要第三方库支持,好像都是收费的。
    2010年1月16日 23:25
    版主
  • 去autodesk的论坛问,autodesk的文件格式Visual C++不支持。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 Nancy Shao 2010年1月25日 7:22
    2010年1月23日 15:25
    版主