Teigha .dwg文件开发——从零开始

 最近要求做cad文件的第三方开发,尝试申请了Teigha的免费试用版(要注册账号申请,官网上有教程,不懂得可以咨询我,在下方评论也可以),以下是我总结的基础内容


1.一个工程制图文件,也就是drawing(图纸),其实是一个数据库,这个数据库记录图形和非图形对象。一共有3种不同类型的对象:1.实体 2. 容器(管理和存储对象) 3.其余对象(包括特殊的没有布局之类的对象)

其中容器主要包括下列:1.系统符号表,系统中有九张这样的表,不能改变表格的数量,但是你可以向表格里面添加内容 2.一个字典(Dictionaries),存储各种CAD对象的容器,你可以添加新的字典并且往里面添加对象,新建的数据库文件里面有一个默认的字典,名称叫做Object Dictionary,这个字典是所有数据库字典的根字典。
    九种主要的系统符号表:
   1.块表(Block Table),图纸实体记录在块表记录中
   2.图层表(Layers Table),包含图纸的图层,每个图层可以设置属性:ON/OFF, FROZEN/THAWED,颜色和线条种类
   3 线条种类表(Linetypes Table)包含图纸的线的类型。每个线型都有一个名字,一个string来描述它的外观和一个数据来存储线型的参数
   4 文字类型表(TextStyle Table)包含图纸的文字风格。每个字型都一个名字,使用的字体,高度,清晰角度和其他一些参数
   5 视图表(View Table)包含了图纸的已命名的视图定义。每个视图定义都指定了一个3d视图
   6 视点表(Viewports Table)包含了图纸的视点定义。已命名的视点组有一系列的视点,并且有相同的命名。当前的视点或者视点组拥有"ACTIVE"属性
   7 维度样式表(DimStyles Table)包含了对图像的维度样式定义。维度样式是一个拥有很多变量的容器,其中变量指示维度是怎么创建的
   8 UCSs表包含了图纸中已命名的用户坐标系统(UCS)的定义。用户系统系统是规范的坐标系统而不是世界坐标系统
   9 注册应用表 包含了图纸注册的应用,那些把自身注册到CAD系统中的应用。


2.在数据库中,主要有两种主要的对象:容器和对象本身。在系统中有十个内嵌的根对象,九个符号表和一个字典。
  对象可以属于或者不属于一个数据库,拍段的依据是看这个对象是否加入正确的容器中,如果一个对象没有正确的放入数据库中(例如图层放入了块表中),那么它就是non-resident(怎么翻译好呢,感觉可以翻译成非原住对象、无效对象等)
  例如,在数据库中新建一个图层的过程:1.打开图层表来写入 2.新建图层表记录来代表图层 3.在插入表之前设置一些属性 4.把图层记录对象放入表中,数据库中
  在模型空间中新建一个实体的过程:1.打开快表(包含所有实体)来写入 2.打开代表模型空间的块记录 3创建一个新实体对象 4.在模型空间块记录中添加新实体对象。


3 实体是图形的代表对象,块是实体对象的拥有者。实体是图形的代表,典型的有线条、圆、文字等。每个实体都有一些通用的属性,定在entity类中,比如颜色、是否可见、所属图层等。
   创建一个数据实体你需要如下的步骤:1.创建几何对象 2.打开块表 3.打开存储几何对象的块记录对象 4.使用appending方法来插入到表中


4.图纸中的图纸(层)相当于基于纸张绘图的覆盖(画完一张放在另一张上面)。任何绘画分为许多图纸(层),这些图纸(层)组织信息功能和执行标准。 每个图都可以有无限数量的图纸(层),但必须至少有一个。所有的实体图必须与一图纸(层)有关。例如,建筑线条、文本和维度可以位于不同的层。当然还有布局的概念,相信大家在使用autocad的时候就有所了解了。

你可能感兴趣的:(C++)