- 背景
遇到了需要大批量在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的支持,功能实现和调试过程会比较友好。
经过以上多种方法的尝试,采用了上述黑体方法最终实现功能,开发和调试难度较低,编程和代码维护体验比较好,所以个人比较推荐。
使用教程: