netDxf实现对cad文件的读取与写入

工程项目中CAD作为常用的设计软件

有大量的设计数据及信息需要在项目中使用,通过C#的netDxf reader读取cad文件的元数据

github地址:

GitHub - haplokuon/netDxf: .net dxf Reader-Writer

代码示例:

写入dxf

    public static void Main()
    {
        // your DXF file name
        string file = "sample.dxf";

        // create a new document, by default it will create an AutoCad2000 DXF version
        DxfDocument doc = new DxfDocument();
        // an entity
        Line entity = new Line(new Vector2(5, 5), new Vector2(10, 5));
        // add your entities here
        doc.AddEntity(entity);
        // save to file
        doc.Save(file);
    }

读取dxf

public static void Main()
    {

        // your DXF file name
        String file = "sample.dxf";

        bool isBinary;
        DxfVersion dxfVersion = DxfDocument.CheckDxfFileVersion(file, out isBinary);

        // check if the file is a dxf
        if (dxfVersion == DxfVersion.Unknown)
        {
            Console.WriteLine("THE FILE {0} IS NOT A VALID DXF OR THE DXF DOES NOT INCLUDE VERSION INFORMATION IN THE HEADER SECTION", file);
            Console.WriteLine();
            return null;
        }

        // check if the dxf file version is supported
        if (dxfVersion < DxfVersion.AutoCad2000)
        {
            Console.WriteLine("THE FILE {0} IS NOT A SUPPORTED DXF", file);
            Console.WriteLine();

            Console.WriteLine("FILE VERSION: {0}", dxfVersion);
            Console.WriteLine();
            return null;
        }

        DxfDocument dxf = DxfDocument.Load(file);

        var LwPolylines = dxf.LwPolylines.ToList();

        Console.WriteLine("多段线条数:" + LwPolylines.Count);
    }

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在DXF文件中,我们最关心的是如何得到模型上各个点的坐标,并且用这些点连成许多个三用形,构成面,进而绘制出整个模型。在DXF文件的结构中,我们已经看到,DXF文件先叙述实体上各个点的坐标,然后叙述实体上有多少个面,每个面由哪些点构成。这样,我们至少需要2个数组来存储一个实体的信息,一个用于存储点的坐标,一个用于存储点序,我们可以把这2个数组放到一个结构中,如果模型中实体的数目不止一个是,我们就用这个结构来定义一个数组。在本文中,我们使用      Visual C++ 6.0 来写一个读取DXF文件的小程序。     在实际应用中,模型中实体的数目以及实体中点和面的数目都是不定的,为了有效地利用内存,我们选择MFC类库中的聚合类CobArray类所创建的对象vertex,      sequence来存储和管理实体的点坐标和点序。     CObArray类是一个用来存放数组类的聚合类,它能根据要存进来的数组(或结构)多少自动进行自身大小的高速,而且这个类本身具有的成员函数使得我们对它的对象的操作更加方便、快捷,用它编的程序也易于读懂。     三维实体模型的模型信息中的一部分信息可以在标题段中读出,通过读取变量名为$UCSORG的三个变量,可以得到三维实体在世界坐标系中自身所定义的用户坐标系原点的三维坐标。通过读取$EXTMAX,$EXTMIN可以获知三维实体在世界坐标系中的范围,而其它部分的信息只有读完了全部DXF文件后才可以通过计算确定。对于三维实体模型的全部点坐标、点序,可以在实体段中按照前面介绍的DXF文件基本结构读出。现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值