对于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. 关于用舞蹈链DLX算法求解数独的解析

    欢迎访问——该文出处-博客园-zhouzhendong 去博客园看该文章--传送门 描述 在做DLX算法题中,经常会做到数独类型的题目,那么,如何求解数独类型的题目?其实,学了数独的构建方法,那么DL ...

  2. vmware + centos 7安装vmtools时提示The path "" is not a valid path to the xxx kernel header

    在安装vmtools时无意中出现了这样的问题 1.gcc错误 Searching for GCC- The path "" is not valid path to the gcc ...

  3. tensorflow下基于DNN实现实时分辨人脸微表情

    参加学校的国创比赛的时候,我们小组的项目有一部分内容需要用到利用摄像头实现实时检测人脸的表情,因为最近都在看深度学习方面的相关知识,所以就自己动手实现了一下这个小Demo.参考网上的资料,发现大部分是 ...

  4. mysql底层原理

    1.索引底层数据结构B+Tree详解 索引的本质 索引是帮助MySQL高效获取数据的排好序的数据结构 索引存储在文件里 索引的结构 二叉树 (红黑树[平衡二叉树]).HASH.BTREE[多叉树] 索 ...

  5. Linux 中 Windows 中文乱码

    Linux 下 Windows 源代码中文乱码 由于 windows 和 linux 对文本的编码方式不同,所以经常会有 windows 中生成的文本在 linux 中打开乱码的情况. 比如: 我面临 ...

  6. sql - 递归update

    declare v_rlt ):; l_sql ); -- variable that contains a query l_c sys_refcursor; -- cursor variable(w ...

  7. Redis自学笔记:3.5入门-集合类型

    3.5集合类型 3.5.1介绍 在集合中的每个元素都是不同的,且没有顺序 表3-4集合类型和列表类型的对比 - 集合类型 列表类型 存储内容 至多232-1个字符串 至多232-1个字符串 有序性 否 ...

  8. 洛谷.3805.[模板]manacher算法

    题目链接 之前做很早了没写这篇,补上. 记录当前ex[]最大的回文中心id和最远延伸范围mx! 关于串的构造: 应该是 @ #A#B#C#B#A# $ ,而不是 @ A#B#C#B#A $ 比如 @a ...

  9. java发送邮件高级篇

    package com.xiets.javamaildemo; import java.util.Date; import java.util.Properties; import javax.act ...

  10. Mybatis的延迟加载和缓存

    1. MyBatis中的延迟加载,也称为懒加载,是指在进行关联查询时,按照设置延迟加载规则推迟对关联对象的select查询.延迟加载可以有效的减少数据库压力.       注意:MyBatis的延迟加 ...