对于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. BZOJ1455 罗马游戏 左偏树 可并堆

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1455 题意概括 n个人,2种操作. 一种是合并两个人团,一种是杀死某一个人团的最弱的人. 题解 左 ...

  2. README 语法记录

    转自:nblogs.com/liugang-vip/p/6337580.html 正文: 1.标题的几种写法: 第一种:     前面带#号,后面带文字,分别表示h1-h6,上图可以看出,只到h6,而 ...

  3. SpringMVC(十七-二十) ModelAttribute 注解

    有点难理解. 修饰方法是表示在该控制器的所有目标方法执行前都执行该modelattribute注解的方法. 修饰参数是表示什么?修饰参数时@modelattributes(value="xx ...

  4. angular笔记_3

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. UVA 207 PGA Tour Prize Money

    知识补充: ①:ssprintf: int sprintf(char *str, const char *format, ...) 发送格式化输出到 str 所指向的字符串. char str[80] ...

  6. Java性能调优zz

    写Java也有n年了,现在还是有不少的坏的代码习惯,也通过学习别人的代码学到了不少好的习惯.这篇文章主要是整理的资料.留给自己做个警戒,提示以后写代码的时候注意!在文章的后面,会提供整理的原材料下载. ...

  7. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛.B.跳一跳,很简单的(Hash 倍增)

    题目链接 首先变换的周期是\(26\),而所有字符是同时变的,所以一共就只有\(26\)种树,我们对\(26\)棵树分别处理. 求某节点到根路径上的字符串,可以从根往下哈希,\(O(n)\)预处理出. ...

  8. 洛谷.3808/3796.[模板]AC自动机

    题目链接:简单版,增强版 简单版: #include <cstdio> #include <cstring> const int N=1e6+5,S=26; char s[N] ...

  9. JavaScript基础笔记(二)变量、作用域和内存问题

    变量.作用域和内存问题 一.基本类型和引用类型的值 基本类型值:简单的数据段 引用类型值:由多个值构成的对象 基本类型是按值访问的,引用类型是按引用访问的. 不能给基本类型的值添加属性,尽管不会报错. ...

  10. [CSAcademy]Sum of Powers

    [CSAcademy]Sum of Powers 题目大意: 给定\(n,m,k(n,m,k\le4096)\).一个无序可重集\(A\)为合法的,当且仅当\(|A|=m\)且\(\sum A_i=n ...