有关auocad编程和CadLib4.0的相关总结
近期做的项目要对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的相关总结相关推荐
- 用函数式编程,从0开发3D引擎和编辑器(三):初步需求分析
大家好,本文介绍了Wonder的高层需求和本系列对应的具体功能点. 确定Wonder高层需求 业务目标 Wonder是web端3D开发的解决方案,包括引擎.编辑器,致力于打造开放.分享.互助的生态. ...
- 农行支付php,农行网上支付平-B2C接口编程指南-PHP_Edition-V1.0.doc
农行网上支付平-B2C接口编程指南-PHP_Edition-V1.0 中国农业银行网上支付平台 B2C PHP商户接口编程指南 Java Edition V1.0 修订历史纪录 日期版本说明作者200 ...
- mysql8.0最低需要多少内存_MySQL8.0内存相关参数总结
MySQL理论上使用的内存 = 全局共享内存 + max_connections×线程独享内存. 也就是:innodb_buffer_pool_size + innodb_log_buffer_siz ...
- python编程 迷你世界_迷你编程下载-迷你世界迷你编程下载 v1.0官方版--pc6下载站...
迷你世界迷你编程是一款图形化编程软件,可以帮助青少年学习基础的编程知识,提高逻辑思维能力,迷你世界迷你编程还能让用户直观的感受到编程效果,对编程产生兴趣.. 相关软件软件大小版本说明下载地址 迷你世界 ...
- MySQL8.0内存相关参数介绍
MySQL8.0内存相关参数介绍 首先我们给出MySQL内存使用的计算公式: MySQL理论上使用的内存 = 全局共享内存 + max_connections×线程独享内存. 也就是:innodb_b ...
- python网络编程需要学什么,python网络编程学习笔记(五):socket的一些补充 Python 网络编程需要学习哪些网络相关的知识...
python的socket编程问题hdr = recvall(s, 5) if hdr is None: print 'Unexpected EOF receivingstruct在unpack的时候 ...
- 鲍威尔方法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 ...
- 用编程求FFFF:0到FFFF:F字节型数据的和,结果存放在dx中
一.代码 assume cs:codecode segment ; 用编程求FFFF:0到FFFF:F字节型数据的和, ;结果存放在dx中;1.做好初始化.即使默认为0 ;2.注意数据从哪里来,到哪里 ...
- c语言编程:vc++6.0入门教程及习题_百度文库,C语言编程:vc++6.0入门教程及习题.doc...
C语言编程:vc++6.0入门教程及习题.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址 ...
最新文章
- Mybatis的工作原理,你了解过吗?
- 通俗易懂理解~图机器学习导论
- 思考:开发者如何挑选最合适的机器学习框架?
- WindowsXP中修改本地路由表
- CentOS安装oracleJDK
- 使用bash上传项目到osc@git上
- for oracle中pivot_Oracle PIVOT 行转列方法
- 【python常用模块】os.path
- 【转】先说IEnumerable,我们每天用的foreach你真的懂它吗?
- Cloud for Customer的work center显示逻辑
- 过去几小时,以太坊2.0信标链主网超过75位验证者被Slash罚款
- POJ 2176 Folding(区间DP)
- Redis事务与MySQL事务的区别
- spring boot 2.0之安全
- 17.1 情感分析全貌 意境级
- ASP.NET 实现文件下载
- VSA Cluster中小企业无SAN环境解决方案
- 学习Python必备的8本书
- 京东话费充值系统架构演讲读后感
- hctf-2018-Crypto-xorgame
热门文章
- 英雄联盟阿卡丽操作技巧
- Python爬虫实现百度贴吧文本爬取【每天近千万级数据量】
- 温湿度传感器(AM2312)
- 鸿蒙操作系统系列——科普篇
- 基于Bitbucket和Bamboo的SpringBoot项目CICD(持续集成和部署)
- 物流管理软件给物流行业带来哪些好处?
- Office2003与Office2010共存
- MIMIC探索-抽取颅脑损伤患者信息
- 计算机等级考答题状态未作答,计算机等级考试北京考点停电 考生称未存完答题...
- Codeforces Round #646 (Div. 2)E. Tree Shuffling 题解(dfs)