DGNLib:阅读与写入DGN文件的C/C++库

需积分: 12 7 下载量 149 浏览量 更新于2024-09-10 收藏 111KB TXT 举报
"Intergraph Standard File Formats (Element Structure) 是一套由Intergraph公司用于MicroStation和Interactive Graphics Design System (IGDS)的文件格式。这个标准现在对公众开放,使得Intergraph的客户和第三方开发者能够创建自定义应用,读取和写入ISFF格式,而无需从Intergraph获得许可。ISFF包含了设计文件头、基本和复杂元素、元素表示、通用元素参数、层符号(Type10)、库单元头(Type1)、单元头(Type2)、线元素(Type3)、线串(Type4)、形状(Type6)、曲线(Type11)和B样条、极点元素(Type21)、文本节点头(Type7)、复杂链头(Type12)和复杂形状头(Type14)、椭圆元素(Type15)、弧元素(Type16)、文本元素(Type17)、3D表面头(Type18)和3D实体头(Type19)、点串元素(Type22)以及锥形元素等。 DGNLib是一个小型的C/C++库,专门用于读取和写入DGN文件。目前提供的是dgnlib-1.11.zip版本,包含源代码和dgndump示例程序。DGNLib并不支持所有的DGN元素,但大多数2D和3D元素被支持,如线条、线串、曲线、B样条、椭圆、弧和文本元素,同时可以提取颜色表和主坐标信息。对于一些较为复杂的元素,它仅以原始数据模式读取,但不进行解释。 DGNLib不支持Microstation V8的DGN文件,因为它们是不同的格式。OpenDWG联盟的DGNdirect库则支持DGN v8格式。DGNLib具有较好的可移植性,可以在Linux、MacOS和Windows上运行,但可能需要根据平台调整cpl_port.h和cpl_config.h文件。 在内存使用方面,DGNLib通常不会占用大量内存,因为每次只在内存中存储一个元素。如果文件被索引,每个元素会额外占用12字节的内存,但这不是必需的。 DGNLib不包含用于绘制DGN元素的代码,但它提供了一份文档,指导如何正确地根据DGNLib返回的结构来绘制元素。OGR层将这些绘图信息重新解释为OGR Feature Style格式,该格式被某些应用程序(如UMN MapServer)理解。 DGNLib使用MIT/X风格的开源许可证,这意味着它可以在商业和免费产品中自由使用,无须担心授权问题。源文件头部包含了完整的许可证文本。 在写入DGN文件方面,最新版本的DGNLib提供了初步的支持,包括2D和3D DGN文件的写入功能。 目前有详细的DGN Library API参考文档,但尚无教程式的使用指南。dgndump.c实用程序可以作为有限的示例。虽然初始项目已完成,但作者对修复错误和添加次要功能感兴趣,并欢迎改进。"