有关auocad编程和CadLib4.0的相关总结

来源:互联网 发布:mac book能下载爱剪辑 编辑:程序博客网 时间:2024/05/22 12:25
近期做的项目要对autodesk公司的autocad软件生成的.dwg和.dxf文件进行操作,所以在网上查阅了相关知识,以下是我总结的:
   1.autocad有二次开发编程的,如ObjectArx(天正建筑软件就是基于这个开发的),但是这是基于软件的开发,脱离autocad软件是不能单独运行的。


   2.autocad有自己的第三方开发库——RealDWG(目前只适用于windows),很全面,但是价格昂贵,每年2500美元,第一年要支付5000美元!土豪可以考虑考虑


   3.Open Design Alliance(ODA)相对于RealDWG来说要便宜了很多,它是跨平台的,能在多种操作系统上完美运行,我对这个不是很了解,毕竟它还是要钱>_<


   4.那么是否有开源软件呢,有,由Free Software Foundation(FSF)开发的基于LibDWG的LibreDWG软件,当初设计的目的就是替代ODA的,当时找到这个泪流满面,但是发现LibDWG支持到DWG 2004格式(对应autocad 2005和2006)的文件,以后的版本就不支持了,其实这跟autodesk公司有关,这公司一直反对对dwg或dxf文件格式的开源,一直维持着dwg和dxf文件的版权,没办法,毕竟是人家公司的摇钱树。


   5.最后我找到了CadLib4.0(C#),其实一直有很多公司在破解dwg和dxf等相关文件并在网上售卖相关的运行库,这样也不会涉及到autodesk公司的利益,因为破解版的并不是很好用也不是很全面,总有不能破解的部分。CadLib4.0是WoutWare公司的软件,在国内有破解版的,百度一下CadLib4.0破解版即可。

   
     CadLib4.0的相关资料可以在官方的帮助文档里查找或者这里的下载链接获得:
http://download.csdn.net/detail/u012397189/9574251 (里面有很多demo代码),如果遇到相关问题的话,可以在woutware上的官方论坛上查找即可,网址:https://www.woutware.com/forum,关于CadLib4.0以下是我近期总结的:


  1.如果你想打开一个现有的dwg文件然后保存为另一个dwg文件的话,可以通过DxfModel model=DwgReder.Read(文件路径),再通过DwgWriter.Write(文件名,model)即可,如果用autocad打开你新保存的文件时,发现有小点,放大一看,会显示CadLib evaluation version这些文字,很是烦躁,那是否有相关方法呢?有的,通过实践得到:在DwgWriter.Write(文件名,model)之前添加DxfWriter.Write(文件名,model)即可,具体愿意不详,可能是缓存的原因。


  2.任何通过CadLib4.0保存的dwg/dxf文件在autocad里面打开时候都会弹出对话框说这不是autodesk开发的文件,是否打开?这是因为通过autocad软件编辑生成的文件都会在这个文件中嵌入autodesk生成的密钥,只有autodesk才能识别它,CadLib等相关破译软件并不能获取、破解或者编造这个密钥。


  3.如果dwg活着dxf中有代理图形,可以通过CadReader.Read(文件名,true)来读取,其中第二参数为是否读取代理对象。


  4.Cadlib4.0并不能渲染所有自定义的对象,Cadlib4.0在生成dwg或者dxf文件时,是通过渲染model里面的Entities来实现的,如果用户读取了一个autocad生成的dwg文件(里面有代理图形,如通过天正软件编辑出来的图形),那么会把那些Cadlib不能识别的对象保存在DxfUnkownEntity中,如果你的Model中存在DxfUnkownEntity,在渲染的时候可能不能渲染DxfUnkownEntity(取决于其ProxyGraphics的DrawCommands是否能被系统识别),就会出错,遗憾的是,Cadlib4.0并不能支持由天正软件生成的文件,哎。
2 0
原创粉丝点击