应用netdxf(C#)实现dxf文件读写(替代dwg文件编辑的方案)

  1. 背景

       遇到了需要大批量在AutoCAD中绘制特殊参数曲线,并批量出图的需求。尝试以下几种解决方案:

  • 初期打算应用AutoCAD自带的lisp语句实现,后发现因为函数式语言本身的限制,功能修改和版本控制不方便,且学习时间成本高,故最终没有采用。又打算通过CAD的api实现该功能,后发现不同AutoCAD版本对应的api不同,兼容性差。
  • 通过C#程序代码生成CAD的command指令集,并贴入命令行来实现,该方法可以成功绘图。但是看执行记录,有不明原因报错。并且只能在单个文件中绘图,绘图时间长,中断后需要重新执行,指令集的规则也不太统一,需要多次尝试。
  • 通过python调用pyautocad库,通过库函数来操纵CAD语句执行。该方法要求AutoCAD程序必须是打开的,并且需要手动新建dwg文件,在大批量绘图的需求下不实用。

       因为不同版本cad的dwg文件的格式标准不同,因此放弃了与AutoCAD直接通信或生成dwg文件的想法,打算看看是否能直接生成相对通用的dxf格式文件来实现。

  • 通过python调用dxfwrite库直接生成dxf通用格式的文件。该方法收到python本身的限制,在数据格式不统一的时候工具不报错也没结果,并且只能绘制图像,无法读取图像,在配合dxf读取库,如dxfgrabber库时,兼容性不好,且文档和使用说明不全,需要靠读源码来应用库函数。
  • 通过C#调用netdxf库来实现dxf文件的读写和绘图。该方法能实现大部分所需功能,如dxf文件的读、写、注释和标注的实现等。对表格没有特殊支持,不过可以自己通过图形绘制,文档和范例相对比较齐全,没有太大的应用难度,再加上有宇宙最强IDE Visual Studio的支持,功能实现和调试过程会比较友好。

       经过以上多种方法的尝试,采用了上述黑体方法最终实现功能,开发和调试难度较低,编程和代码维护体验比较好,所以个人比较推荐。

使用教程:

1、安装或下载netdxf插件

2、引用命名空间

3、读写dxf文件

4、绘制图形

5、图形变换

6、注释和标注

  • 10
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
基于C的编程是指使用C语言来进行软件开发和编程。C语言是一种高级的程序设计语言,它被广泛地应用于各种计算机平台和操作系统中。 C语言具有简洁、高效、灵活和可移植等特点,这使得它成为了许多程序员的首选语言。基于C的编程可以提供快速的开发和高效的执行,适用于开发各种类型的应用软件。 使用C语言进行编程可以进行系统级编程和应用级编程。在系统级编程中,可以利用C语言的底层特性和直接访问硬件的能力开发操作系统、驱动程序和嵌入式系统。而在应用级编程中,可以使用C语言开发各种类型的应用软件,如桌面应用程序、Web应用程序和移动应用程序等。 基于C的编程还可以提供丰富的库和工具支持。C语言拥有庞大的标准库和第三方库,这些库提供了各种常用的函数和数据结构,以便程序员可以更加方便地开发应用程序。此外,还有许多开发工具和集成开发环境可用于编写、调试和测试C语言程序。 基于C的编程也可以与其他语言进行结合。C语言可以通过调用外部函数接口(如C++、Java和Python等)来与其他语言进行交互,实现跨语言的开发。这使得程序员可以根据需要选择不同的编程语言,并在不同的环境中交互和共享代码。 总之,基于C的编程是一种广泛应用的软件开发方法,它提供了快速、高效和灵活的方式来开发各种类型的应用软件。无论是系统级编程还是应用级编程,都可以利用C语言的特性和工具来进行开发,并与其他语言进行结合,以满足不同的需求和开发环境。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值