对于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. mysql解决数据库死锁问题

    为了保证数据的正确性,对数据库进行操作的时候都会进行上锁,也就是进行修改数据的时候同一时间只能有一个进程,当这个进程处理完了,释放锁了,其他进程才可以进行操作! 总是会碰见一些意外情况,导致数据库死锁 ...

  2. js让元素获取焦点

    js让元素获取焦点$("#startAddress").focus();

  3. 040 Http与RPC

    一直在说,但是没有系统的文档理解过. 1.本质 目前有很多Java的RPC框架,有基于Json的,有基于XML,也有基于二进制对象的. 他们最本质的区别,就是RPC主要是基于TCP/IP协议的,而HT ...

  4. 029 c3p0的小测试

    今天被问到这个问题,就实验了一下,后续会继续补充一些配置项的意思. 一:操作步骤 1.大纲 2.新建sql -- ---------------------------- -- Table struc ...

  5. Flume的概述和安装部署

    一.Flume概述 Flume是一种分布式.可靠且可用的服务,用于有效的收集.聚合和移动大量日志文件数据.Flume具有基于流数据流的简单灵活的框架,具有可靠的可靠性机制和许多故障转移和恢复机制,具有 ...

  6. JAVA基础中的注意点(一)

    1.标识符 标识符:标识某些事物用于区分的符号.  (即区分某些事物的符号) 四条硬性规定: a.不能是 关键字.true.false.null. b.可以包含 字母.数字(0-9).下划线(_)或美 ...

  7. mybatis查询语句的背后之封装数据

    转载请注明出处... 一.前言 继上一篇mybatis查询语句的背后,这一篇主要围绕着mybatis查询的后期操作,即跟数据库交互的时候.由于本人也是一边学习源码一边记录,内容难免有错误或不足之处,还 ...

  8. PHP.ini 文件大小限制

    post_max_size=80000000000M upload_max_filesize=2000000000M

  9. XamarinSQLite教程添加列

    XamarinSQLite教程添加列 如果开发者想要在现有的表中添加列,并不需要删除重新创建数据表,只需要修改数据表.操作步骤如下. (1)右击需要添加列的表,单击Add column…(beta)命 ...

  10. DRF分页组件

    为什么要使用分页 其实这个不说大家都知道,大家写项目的时候也是一定会用的, 我们数据库有几千万条数据,这些数据需要展示,我们不可能直接从数据库把数据全部读取出来, 这样会给内存造成特别大的压力,有可能 ...