对于CAD开发,无疑较强大的方式是Lisp、AutoCAD二次开发,且学习资源丰富,依靠强大的AutoCAD的环境可以干很多事,省很多力。但若要脱离AutoCAD环境,那就当属Teigha了。

名称问题

Teigha(我读着"胎压",没有标准语音)是ODA的一个产品名称。ODA(Open Design Alliance),开放设计联盟,于1998年创建,一个致力于实现CAD数据格式交换和共享的非盈利国际组织,它的Teigha是一套面向对象的支持多平台、多版本、多格式的CAD文件的类库,可脱离AutoCAD环境实现读写操作、绘制渲染和转换输出等。

Teigha for .dwg(曾用名OpenDWG、DWGdirect)是Teigha的一个子集,除操作dwg文件外,它还有操作BIM(revit), Civil, Architecture, Mechanical等子集。也就是说对于Autodesk公司的产品,它基本都有相应的SDK。刚接触它很容易被它的名称搞晕。2010年,ODA将其所有的软件统一命名为" Teigha",而在2018年9月官方宣布将弃用"Teigha"这个产品名。这是他们的LOGO和标语,我不作评论。

在没改名前,它们的类库依赖关系是:

其中,Teigha.NET是我们接下来要讲的一套基于.NET读写CAD文件的类库。

收费问题

同名称一样,这是很多人都没搞清楚的问题。ODA是一个会员制的组织,会员由软件公司、软件开发人员以及使用者组成。所以我们非会员无法下载类库、查看帮助文档等(官网www.opendesign.com )。会员负责向联盟和其他会员提供ODA技术平台、创建图形化应用程序的工具等。在版权方面,对于非商业应用,可以自由使用ODA提供的工具和软件包;对于商业应用,需要交纳会员注册费用。ODA会员的会费为ODA平台软件研发提供资金支持,研发的成果供所有会员使用。基于ODA平台,会员可以集中精力解决业务方面的问题,不再为读写CAD文件而花费时间。

兼容性问题

本文使用的版本是Teigha.NET 4.00_10,与Autocad的兼容性也非常好。原因是它们有错综复杂、理还乱的关系:

由于CAD市场较好,有很多类似AutoCAD的软件要来分一杯羹,界面、命令、甚至二次开发都完全一样,兼容性也非常好,它们大部分基于IntelliCAD(ITC)和BricsCAD(比如中望CAD基于IntelliCAD,目前只有IntelliCAD和浩辰CAD能摆脱ITC内核),而开发BricsCAD的公司原来是ITC的成员,而IntelliCAD也是ODA的成员,现在IntelliCAD正用ODA的库重写IntelliCAD。ODA是由IntelliCAD的老东家Visio牵头成立的……我都说晕了,也不画图来解释了,这也不是重点。总之,由于这些公司和品牌由很多关联关系,所以出来的产品兼容性也很好!

Teigha.NET开发入门1- Teigha介绍的更多相关文章

  1. Arduino可穿戴开发入门教程LilyPad介绍

    Arduino可穿戴开发入门教程LilyPad介绍 Arduino输出模块 LilyPad官方共提供了4种输出模块,他们分别是单色LED模块(图1.5).三色LED模块(图1.6).蜂鸣器模块(图1. ...

  2. mxgraph进阶(二)mxgraph的初步介绍与开发入门

    mxgraph的初步介绍与开发入门 前言 由于小论文实验需求,需要实现根据用户日志提取出行为序列,然后根据行为序列生成有向图的形式,并且连接相邻动作的弧上标有执行此次相邻动作的频次.为此,在大师兄徐凯 ...

  3. Arduino可穿戴开发入门教程Arduino开发环境介绍

    Arduino可穿戴开发入门教程Arduino开发环境介绍 Arduino开发环境介绍 Arduino不像我们使用的PC端操作系统一样,可以直接在操作系统中安装软件为操作系统编程.Arduino的软件 ...

  4. Arduino可穿戴开发入门教程LilyPad和LilyPad Simple的介绍

    Arduino可穿戴开发入门教程LilyPad和LilyPad Simple的介绍 LilyPad和LilyPad Simple的介绍 LilyPad和LilyPad Simple是LilyPad微控 ...

  5. 【转载】salesforce 零基础开发入门学习(五)异步进程介绍与数据批处理Batchable

    salesforce 零基础开发入门学习(五)异步进程介绍与数据批处理Batchable   本篇知识参考:https://developer.salesforce.com/trailhead/for ...

  6. 【转载】salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)

    salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)   salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesfo ...

  7. 【转载】salesforce 零基础开发入门学习(一)Salesforce功能介绍,IDE配置以及资源下载

    salesforce 零基础开发入门学习(一)Salesforce功能介绍,IDE配置以及资源下载   目前国内已经有很多公司做salesforce,但是国内相关的资料确是少之又少.上个月末跳槽去了新 ...

  8. openresty 前端开发入门五之Mysql篇

    openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户 操作mysql主要用到了lua-resty-my ...

  9. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解

    原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...

随机推荐

  1. day65 request对象,以及方法,response对象,render,redirect

    这里的都是我们会频繁使用到的,用得多了自然就会了,我们写项目都是少不了这些用法的,所以这就把老师的博客粘过来就好了, Request对象 官方文档 属性 所有的属性应该被认为是只读的,除非另有说明. ...

  2. 记录pageHelper分页orderby的坑

    pageHelper的count查询会过滤查询sql中的order by条件! pageHelper分页功能很强大,如果开启count统计方法,在你执行查询条件时会再执行一条selet count(* ...

  3. python系统性能模块笔记

    内存信息psutil.cpu_times()            使用cpu_times方法获取cpu完整信息,需要显示所有逻辑cpu信息(指定变量percpu=True)psutil.cpu_ti ...

  4. 最长不下降子序列nlogn

    b[i]表示长度为i的最长不下降子序列的最小末尾元素的值显然它是单调递增的,满足二分性质,然后就可以愉快地二分啦. #include<iostream> #include<cstdi ...

  5. python selenium phantomjs 报错

    报错: webdriver.PhantomJS() raise exception_class(value)selenium.common.exceptions.WebDriverException: ...

  6. 【Spring Boot】构造、访问Restful Webservice与定时任务

    Spring Boot Guides Examples(1~3) 参考网址:https://spring.io/guides 创建一个RESTful Web Service 使用Eclipse 创建一 ...

  7. 超越halcon速度的二值图像的腐蚀和膨胀,实现目前最快的半径相关类算法(附核心源码)。

    我在两年前的博客里曾经写过 SSE图像算法优化系列七:基于SSE实现的极速的矩形核腐蚀和膨胀(最大值和最小值)算法  一文,通过SSE的优化把矩形核心的腐蚀和膨胀做到了不仅和半径无关,而且速度也相当的 ...

  8. emoji

    嗯...闲的... emoji:(博客园的markdown支持emoji编码...惊了) http://getemoji.com/ http://www.fhdq.net/emoji/emojifuh ...

  9. 匪警请拨110——C++

    问题描述 匪警请拨110,即使手机欠费也可拨通! 为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练! 某批警察叔叔正在进行智力训练: 1 ...

  10. java项目中Excel文件的导入导出

    package poi.excel; import java.io.IOException; import java.io.InputStream; import java.io.OutputStre ...