Tribon图纸中Symbols符号的解析
By eattonton
摘要:Symbols符号库作为Tribon图纸的重要组成,是构成快速便捷的Tribon出图系统的重要组成部分。Symbols库作为单独的sbs格式文件保存,也引起了我们的兴趣。希望通过存储文件的研究,深度的挖掘Tribon系统所未公开的信息。也为学习和借鉴符号库设计提供帮助。
关键词:Tribon,Symbol
1. 概述
Tribon系统有着完善的出图系统,在一份图纸中包含线型,文字,还有符号,这篇文字讲解如何解析Tribon中的符号解决方案。符号(Symbols)可以被定义一次,然后很容易地放置在图上。相关的符号构成一组符号类型。每一种类型被一个唯一的数字标识。Tribon提供了许多系统使用以及可以用户自定的符号,这些符号可以被用于图面上,但是无法被修改。对于开发的人员来说,符号在图面上的几何信息也是不能被读取的。
1.1 Symbols的创建/修改
开打Tribon的Planar Hull模块可以在Tools->Symbol菜单中创建和修改Symbol的功能。Symbol是被创建在一个511x511大小范围的几何图形,这些几何图形可以是直线,圆弧,圆。在Tribon中还有为Symbol提供了可用户自定义的自动碰靠定位的属性,Connection Point 和Text Connection Point。其中Connection Point通过设置不同的值可以被 系统识别为不同的碰靠方式,Text Connection Text定义Symbol的开始位置。这个具体的参数设置可以看Tribon document,这里就不赘述了。
1.2 Symbols的保存
Symbol图纸按照FONTSYMB
而Symbols的存储文件是在环境变量SBB_SYMBDIR所指目录下的d012sy
2. TWSymbolLib库的类
TWSymbolLib函数库是专门为读取Symbols存储文件中的Symbol而设计。下面将介绍一下TWSymbolLib中一些关键的类。
2.1 CSymbolSBS类
此类记录了某一个d012sy
bool HasValid(int SymbNo) : 判断此symbol number是否有效,如果有效范围true;
CSymbol GetSymbolAt(int SymbNo):返回一个CSymbol对象,如果没有就返回一个null值;
Bitmap GetSymbolImageAt(intSymbNo):返回一个511x511大小的图像,如果没有就返回一个null值;
string GetJson():范围整个文档的json格式,json格式广泛用于网络数据之间的传输,可以把读取的数据很方便的用于网络;
2.2 CSymbol类
CSymbol类记录了某个Symbol符号,这里有一个符号的所有信息(geometry,Connection Point和Text Connection Point),这里我们先提供了geometry信息。
Int SymbolID属性表示symbol number;
Int Count属性表示包含几何体得数量;
List
Bitmap GetImage():此方法返回一个511x511大小的图像,如果为空就范围一个null值;
string GetJson():获得单个symbol符号的json格式
2.3 CSymbolGeo类
CSymbolGeo此类记录了Symbol中的一个线段,可以是直线,圆弧或者圆。
List
2.4 CSymbolPoint类
CSymbolPoint此类记录了一个线段所在的具体位置,
Type属性表示此点的性质,0表示直线,1表示圆弧,2表示圆
Amp属性表示圆弧的凸度或者圆的半径
X属性表示水平方向数值
Y属性表示竖直方向的数值
3 TWSymbolLib使用实例
TWSymbolLib函数库为外部访问Symbol提供了可能,下面通过一个实例来讲解如何通过此库解析一个Tribon项目的Symbol符号。
3.1 Symbol文件地址
通过TBEnvironment的get_Variable函数获得SBB_SYMBDIR环境值的Symbol存储目录。通过扫描此地址空间中的d012sy
3.2 实例化一个CSymbolSBS对象
通过new CSymbolSBS(Symbol文件地址)可以实例化一个Symbol库对象,此时CSymbolSBS的FontID被计算出来,如果格式不对FontID就被设置为-1。
3.3 CSymbolSBS的Load()函数
Load()函数是真正的解析此Symbol文件,并生成一个CSymbol列表。在此基础上就可以很轻松的访问Symbol里面的几何数据了。
3.4 界面设计
下面就是一个WinForm程序的截图,左侧就是sbs文件的列表,右边就是选择的sbs文件所包含的Symbols。
4 小结
Symbols是图纸的重要组成部分,在图面上往往无法直接访问到Symbol里面所包含的几何信息。而通过TWSymbolLib这个库就可以很方便的读取里面的几何信息。Tribon 中的Symbol除了在图纸中使用,还可以使用在水尺放样中。通过这种读取技术,也为外部开发水尺放样提供了方法。
Tribon作为一个成熟的船舶设计软件,我们除了熟练的使用他之外,也要学习它的设计思路,包括算法的设计和程序的设计。基于Tribon这个平台成千上万的船舶被成功设计和建造,这说明Tribon本身就是一个伟大的系统工程,而不是简单的一个软件工具。我们国内缺少这样的行业专家级得软件作品,在这里通过深入的解析 Tribon,也为今后能够开发出更高水平的专家级软件作出一点点的努力。
TWSymbolLib的下载地址