近期做的项目要对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并不能支持由天正软件生成的文件,哎。

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

  1. 用函数式编程,从0开发3D引擎和编辑器(三):初步需求分析

    大家好,本文介绍了Wonder的高层需求和本系列对应的具体功能点. 确定Wonder高层需求 业务目标 Wonder是web端3D开发的解决方案,包括引擎.编辑器,致力于打造开放.分享.互助的生态. ...

  2. 农行支付php,农行网上支付平-B2C接口编程指南-PHP_Edition-V1.0.doc

    农行网上支付平-B2C接口编程指南-PHP_Edition-V1.0 中国农业银行网上支付平台 B2C PHP商户接口编程指南 Java Edition V1.0 修订历史纪录 日期版本说明作者200 ...

  3. mysql8.0最低需要多少内存_MySQL8.0内存相关参数总结

    MySQL理论上使用的内存 = 全局共享内存 + max_connections×线程独享内存. 也就是:innodb_buffer_pool_size + innodb_log_buffer_siz ...

  4. python编程 迷你世界_迷你编程下载-迷你世界迷你编程下载 v1.0官方版--pc6下载站...

    迷你世界迷你编程是一款图形化编程软件,可以帮助青少年学习基础的编程知识,提高逻辑思维能力,迷你世界迷你编程还能让用户直观的感受到编程效果,对编程产生兴趣.. 相关软件软件大小版本说明下载地址 迷你世界 ...

  5. MySQL8.0内存相关参数介绍

    MySQL8.0内存相关参数介绍 首先我们给出MySQL内存使用的计算公式: MySQL理论上使用的内存 = 全局共享内存 + max_connections×线程独享内存. 也就是:innodb_b ...

  6. python网络编程需要学什么,python网络编程学习笔记(五):socket的一些补充 Python 网络编程需要学习哪些网络相关的知识...

    python的socket编程问题hdr = recvall(s, 5) if hdr is None: print 'Unexpected EOF receivingstruct在unpack的时候 ...

  7. 鲍威尔方法c语言程序,鲍威尔法编程-powell法编程-c语言编程-c++6.0.doc

    鲍威尔法编程-powell法编程-c语言编程-c++6.0.doc include stdio.hdefine N 2float gsfloat zNfloat f;f10*z0z1-5*z0z1-5 ...

  8. 用编程求FFFF:0到FFFF:F字节型数据的和,结果存放在dx中

    一.代码 assume cs:codecode segment ; 用编程求FFFF:0到FFFF:F字节型数据的和, ;结果存放在dx中;1.做好初始化.即使默认为0 ;2.注意数据从哪里来,到哪里 ...

  9. c语言编程:vc++6.0入门教程及习题_百度文库,C语言编程:vc++6.0入门教程及习题.doc...

    C语言编程:vc++6.0入门教程及习题.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址 ...

最新文章

  1. Mybatis的工作原理,你了解过吗?
  2. 通俗易懂理解~图机器学习导论
  3. 思考:开发者如何挑选最合适的机器学习框架?
  4. WindowsXP中修改本地路由表
  5. CentOS安装oracleJDK
  6. 使用bash上传项目到osc@git上
  7. for oracle中pivot_Oracle PIVOT 行转列方法
  8. 【python常用模块】os.path
  9. 【转】先说IEnumerable,我们每天用的foreach你真的懂它吗?
  10. Cloud for Customer的work center显示逻辑
  11. 过去几小时,以太坊2.0信标链主网超过75位验证者被Slash罚款
  12. POJ 2176 Folding(区间DP)
  13. Redis事务与MySQL事务的区别
  14. spring boot 2.0之安全
  15. 17.1 情感分析全貌 意境级
  16. ASP.NET 实现文件下载
  17. VSA Cluster中小企业无SAN环境解决方案
  18. 学习Python必备的8本书
  19. 京东话费充值系统架构演讲读后感
  20. hctf-2018-Crypto-xorgame

热门文章

  1. 英雄联盟阿卡丽操作技巧
  2. Python爬虫实现百度贴吧文本爬取【每天近千万级数据量】
  3. 温湿度传感器(AM2312)
  4. 鸿蒙操作系统系列——科普篇
  5. 基于Bitbucket和Bamboo的SpringBoot项目CICD(持续集成和部署)
  6. 物流管理软件给物流行业带来哪些好处?
  7. Office2003与Office2010共存
  8. MIMIC探索-抽取颅脑损伤患者信息
  9. 计算机等级考答题状态未作答,计算机等级考试北京考点停电 考生称未存完答题...
  10. Codeforces Round #646 (Div. 2)E. Tree Shuffling 题解(dfs)