Tribon图纸中Symbols符号的解析
来源:互联网 发布:定位兔软件下载 编辑:程序博客网 时间:2024/04/28 06:03
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图纸按照FONT<font number>SYMB<symbol number>的格式保存,其中symbol number表示的是Symbol的序号,font number表示Symbol在那个包中。
而Symbols的存储文件是在环境变量SBB_SYMBDIR所指目录下的d012sy<xxx>.sbs,其中<xxx>就是上面说的font number,其范围为1至999。Symbols所包含的信息都存储在这些文件中,在配置工程时,可以直接复制拷贝。但是如果这些文字丢失,图面上所用的符号也就丢失了。
2. TWSymbolLib库的类
TWSymbolLib函数库是专门为读取Symbols存储文件中的Symbol而设计。下面将介绍一下TWSymbolLib中一些关键的类。
2.1 CSymbolSBS类
此类记录了某一个d012sy<xxx>.sbs文件,这个类中有FontID=<xxx>属性和包含Symbol数量的Count属性,考虑到我们主要是访问其中的几何信息,下面提供了以下几种方法:
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<CSymbolGeo> geos属性表示所包含的几何对象,可以是直线,弧线或者圆;
Bitmap GetImage():此方法返回一个511x511大小的图像,如果为空就范围一个null值;
string GetJson():获得单个symbol符号的json格式
2.3 CSymbolGeo类
CSymbolGeo此类记录了Symbol中的一个线段,可以是直线,圆弧或者圆。
List<CSymbolPoint> pts属性就记录了此线段所包含的点
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<xxx>.sbs文件,就可以获得Symbol文件地址。
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的下载地址
- Tribon图纸中Symbols符号的解析
- Tribon自定义图纸类型
- 从Tribon库中获取图纸名称列表
- Tribon自定义图纸类型-删除图纸
- Unity3d中脚本定义符号的使用 Scripting Define Symbols
- Tribon自定义图纸类型深度分析
- 建筑图纸符号大全
- AVEVA Marine图纸文件(SDB)的解析
- linux中对象文件的符号表symbols查看工具nm简介
- SVG技术在存储Tribon图纸中的研究
- 设置图纸中标注的比例
- 使用Tribon的PipeSupport
- 什么是符号(Symbols)?
- Symbols 错误符号分析
- Windows应用程序调试必备的--符号文件(Symbols)
- Windows应用程序调试必备的--符号文件(Symbols)
- 将图纸中所有的块的名称改为大写
- Tribon参数化建模之__对型材端切的参数化建模解析
- The certificate used to sign "app名" has either expired
- ConcurrentHashMap源代码解读
- 表示数值的字符串
- Ubuntu 下 使用 adb logcat 显示 Android 日志
- 设计模式-装饰模式
- Tribon图纸中Symbols符号的解析
- JavaScript利用数组、对象和迭代实现高效率fibonacci数列
- ThinkPHP框架学习(1)
- 操作系统 进程的三种状态及其转换
- .NET—Spring.NET保持数据现场测试
- Databus系统构想 Client端(一)
- 学习Java Web开发中遇到的问题,及其解决方法
- JAVA之旅(二十)—HashSet,自定义存储对象,TreeSet,二叉树,实现Comparator方式排序,TreeSet小练习
- jquery的$F()函数