Tribon数据抽取-Outfitting L…

本文介绍使用Tribon自带的Outfitting List.xls进行结构数据抽取的方法,其中包括利用VBA源代码直接获取Structure部件数量及各部件Pos号的过程。

前两天有朋友咨询用VB进行Structure数据抽取的问题,我建议他看看Tribon自带的Outfitting List.xls,这里面包含了Tribon公司提供的用VBA进行数据抽取的源代码。Outfitting List.xls的快捷方式位于开始菜单\Tribon M3\Outfitting。打开如下图,Excel 2007中点击开发工具-Visual Basic即可查看源代码(Excel 2003查看VBA源代码的方式有所不同,或者你会遇到没有“开发工具”,或者宏没有启动等等问题,请用搜索引擎,不在本文讨论之列。)

image

UserForm分别对应Excel界面上的几个按钮,双击按钮即可查看到该事件下的代码。

image

使用Outfitting List.xls不仅可以直接获得VBA代码,对于使用VB开发数据抽取应用来说非常方便,而且通过查看其中的代码,也可以学习Tribon数据抽取的脉络,例如下面节选出来的代码,显示了Structure数据抽取过程中,先获得Structure的Part数量,然后循环Part获得每个Part的Pos号。

 1: 'Extract the structure
 2: DexStr = "STRU.ITEM(" + Chr$(39) + ModelName + Chr$(39) + ").GROUP(1)."
 4: DexStr_1 = DexStr + "NPART"
 5: Extract.DoDataExtraction DexStr_1
 6: Val = Extract.GetValue
 7: If TypeName(Val) = "Long" Then
 8:    n = Val
 9: End If
 10:  
 11: Dim PosNo As String
 12: For I = 1 To n
 13:     DexStr_1 = DexStr + "PART(" + Trim(Str(I)) + ").POS"
 14:     Extract.DoDataExtraction DexStr_1
 15:     Val = Extract.GetValue
 16:     PosNo = ""
 17:     If TypeName(Val) = "String" Then
 18:         PosNo = Val
 19:     End If

基本上VB程序可以直接拷贝这里面的代码使用,加上VB简易的拖拽生成界面的特点,才促使现在仍有人使用VB来进行开发。

与Vitesse数据抽取相比,速度比较慢,数据抽取代码也不能被高级Vitesse程序调用。VB较弱的面向对象特性,也不能很好的封装数据抽取方法,使得抽取字符串裸露在程序中。

在处理如 `SBH-ENDCUT-CTRL` 这一类特定功能模块时,通常涉及的是船舶设计或制造领域的自动化控制逻辑。尽管没有直接的代码示例可以提供,但可以根据 Tribon M3 的开发环境和常用编程实践推测其实现方式。 ### 代码结构与实现逻辑 Tribon M3 使用 `.sbl` 脚本语言进行二次开发,其语法类似于 C 语言,并支持函数、变量、条件判断和循环等基本编程结构。对于 `SBH-ENDCUT-CTRL` 这样的模块,可能用于控制船体端部切割的逻辑处理,例如根据不同的几何特征选择相应的切割策略。 以下是一个模拟的 `.sbl` 函数片段,展示如何定义一个用于控制端部切割行为的函数: ```c // 定义 SBH-ENDCUT-CTRL 控制函数 void SBH_ENDCUT_CTRL(int cutType, double length, double angle) { if (cutType == 1) { // 直线切割逻辑 printf("执行直线切割,长度: %f\n", length); } else if (cutType == 2) { // 斜角切割逻辑 printf("执行斜角切割,角度: %f\n", angle); } else { // 默认切割方式 printf("未知切割类型\n"); } } ``` 该函数接受三个参数:`cutType` 表示切割类型(如直线或斜角),`length` 和 `angle` 分别表示切割长度和角度。通过条件判断语句,函数能够根据不同输入值执行不同的切割操作。 ### 使用方法 在 Tribon M3 中调用此类函数时,通常需要将其集成到更大的程序中,或者通过用户界面触发。例如,在某个菜单项被点击时调用上述函数: ```c // 模拟菜单项点击事件 void onMenuItemClick() { int cutType = 1; // 假设选择直线切割 double length = 100.0; double angle = 45.0; SBH_ENDCUT_CTRL(cutType, length, angle); // 调用控制函数 } ``` 此外,还可以通过 Tribon 提供的 API 与数据库交互,读取或写入相关数据。例如,获取当前选中的构件信息并传递给 `SBH-ENDCUT-CTRL` 函数进行处理。 ### 数据库交互示例 假设需要从 Tribon 数据库中获取构件的几何信息,并基于这些信息决定切割参数: ```c #include "tribon_api.h" void processSelectedComponent() { Component comp = getSelectedComponent(); // 获取当前选中构件 if (comp.isValid) { int cutType = determineCutType(comp.geometry); // 根据几何形状确定切割类型 double length = calculateLength(comp.geometry); // 计算所需切割长度 double angle = calculateAngle(comp.geometry); // 计算切割角度 SBH_ENDCUT_CTRL(cutType, length, angle); // 调用切割控制函数 } else { printf("未选中有效构件\n"); } } ``` 此示例展示了如何将 `SBH-ENDCUT-CTRL` 函数与其他 Tribon API 结合使用,以实现更复杂的业务逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值