APP下载

基于VB6.0的掘进机模型参数化设计系统

2019-10-15赵鹏尹中辉

软件导刊 2019年8期
关键词:体素掘进机控件

赵鹏 尹中辉

摘 要:掘进机模型部件及其结构复杂多样,传统设计通常难以满足用户需求。为了改善掘进机模型产品设计时工作量大、开发周期长、效率水平低等状况,提出一个基于VB6.0的掘进机模型参数化设计系统。以CSG为基本数据结构,以蓝光数字矿山地理信息平台为主要平台,采用VB6.0编程语言对系统进行设计。该系统实现了产品设计的快速化、模块化与参数化,不仅大大缩短了产品开发周期,而且实现了资源的合理配置与重复利用,提高了企业竞争力。

关键词:掘进机;CSG;蓝光数字矿山地理信息平台;VB6.0

DOI:10. 11907/rjdk. 191324 开放科学(资源服务)标识码(OSID):

中图分类号:TP319文献标识码:A 文章编号:1672-7800(2019)008-0092-04

Parametric Design System of Roadheader Model Based on VB6.0

ZHAO Peng,YIN Zhong-hui

(College of Computer Science and Engineering, Shandong University of Science and Technology,Qingdao 266590,China)

Abstract: The model of the roadheader model and its structure are complex and diverse, and the traditional design cannot often meet the needs of users. In order to improve the design of the roadheader model product which involves large workload,long development cycle and low efficiency. A design model of the roadheader model based on VB6.0 is proposed. Using CSG as the basic data structure, the Blu-ray digital mine geographic information platform is the main platform, and the software is realized by VB6.0 programming language. The software realizes the rapid, modular and parameterized product design, which not only greatly shortens the product development cycle, but also realizes the rational allocation and reuse of resources and improves the competitiveness of enterprises.

Key Words:roadheader;CSG ;Blu-ray digital mine geographic information platform;VB6.0

基金项目:国家重点研发计划项目(2017YFC0804406);山東省重点研发计划项目(2016ZDJS02A05)

作者简介:赵鹏(1994-),男,山东科技大学计算机科学与工程学院硕士研究生,研究方向为智慧矿山信息技术、计算机图形学;尹中辉(1995-),男,山东科技大学计算机科学与工程学院硕士研究生,研究方向为智慧矿山信息技术、计算机图形学。

0 引言

掘进机是一种广泛应用于煤矿大断面煤岩掘进,以及隧道、水利工程等巷道掘进的设备[1]。掘进机结构复杂,一体化集成度高,主要由本体部、行走部、截割部等部分组成,每个部分又包括许多驱动设备及零部件。如果对每个零件进行个性化设计,会导致工作量大、开发周期长、效率低下等问题。随着计算机辅助设计向着集成化、智能化方向发展[2],VB6.0[3]、VB.net[4]、VC++[5]等多种编程语言已广泛应用于三维建模与仿真领域。目前在三维模型设计中,主流设计软件有SolidWorks[6-7]、CAD[8]、CAXA[9]、UG2.0[10]等,这些软件各有优势,但在实际应用中,由于掘进机结构与其它模型的差异,往往很难找到一个完全适合于掘进机建模的软件。针对以上问题和现状,本文提出一种参数化设计方法[11],利用VB6.0与蓝光数字矿山地理信息平台相结合的二次开发技术[12],对产品自顶向下进行参数化设计,从而完成掘进机各结构部分的模型设计,并通过参数化驱动实现快速组合装配。

1 CSG体素构造原理

三维造型技术中将三维几何分为规则实体与不规则实体。对于不规则实体采用二维轮廓绘制方法,经拉伸、旋转生成三维模型,对于规则实体将利用CSG(Constructive Solid Geometry)体素构造表示法,该方法是计算机图形学中常用的形体表示方式之一[13]。该构形方法的描述既符合空间形体构形过程,又能满足计算机实体造型要求[14]。体素构造表示法将复杂实体看成由若干较简单的最基本体素(如立方体、圆柱体、圆锥体等)[15],经过一些有序的布尔运算构造出来的。在三维实体模型系统中,可以将实体建模分为两部分,即体素定义与体素布尔运算(交、并、差)[16]。因此,利用CSG体素构造原理,本文将复杂的三维实体数据结构描述为一棵CSG树。在CSG树形数据结构中,叶子节点表示基本体素,中间节点为体素间的布尔运算(见图1)。相较于传统CAD建模,利用CSG原理可以将本系统中掘进机模型的复杂部件快速分解为基本体元,抽调出复杂模型中的基本实体模型,为模型系统快速设计作铺垫,也提高了模型构建效率。

圖1 构造CSG树形数据结构

2 掘进机模型参数化系统设计

2.1 主要技术与平台

基于VB6.0的掘进机模型参数化设计系统是以VB6.0、OLE(Object Linking and Embedding,对象链接与嵌入)为技术支持,以COM(Component Object Model,组件对象模型)为规范,以蓝光数字矿山软件为平台,将VB的API(Application Programming Interface,应用程序接口)函数与蓝光平台相结合作为二次开发接口工具,最终实现参数化系统设计。蓝光数字矿山地理信息平台(以下简称为蓝光软件平台)不仅具备CAD、GIS、数据库管理、三维可视化等功能 [17],而且该平台的所有数据库、符号线性库等都是开放的。国际通用三维文件.3dt格式具有较强的导入导出功能,任意对象可由基础数据直接生成图形,并进行三维建模、渲染以及数据库重建,极大方便了设计人员调用与二次开发。三维文件.3dt格式如图2所示。.3dt格式文件主要记录了三维实体的点(坐标)、面(点生成面)、文本、线、纹理、层、体、线、漫游路线数目等,数据参数均通过VB写入。蓝光软件平台可对.3dt格式文件生成的三维图形进行渲染、缩放、漫游等操作,实现三维可视化。

计算机编程常用开发语言如C++、C、VB等均可用于蓝光软件平台的二次开发,用户可根据需求进行选择。随着VB的发展与功能的逐步完善,VB已成为使用人数最多、应用范围最广的程序设计语言及软件开发工具之一。VB6.0是一种可视化编程语言,其使用面向对象的编程语言,提供了功能完备的应用程序与集成开发环境,其具有的RAD快速应用程序开发功能与良好的GUI图形用户界面均方便开发人员在Windows环境下开发应用程序。在参数化建模过程中,模型零件数量及尺寸等数据的冗杂往往会加大设计人员工作量、降低效率。VB6.0具有多种数据库访问能力,可随时对SQL Server 2008、Access等数据库进行调用与存储,改善系统参数化模型选取、调用、筛选工作流程,设计人员只需筛选合适的零件即可完成相关设计,既缩短了设计时间,又节约了成本。

图2 三维文件.3dt格式

2.2 系统参数化开发工作流程

参数化设计流程如图3所示,具体如下:①用户登录,进入系统用户设计主界面;②设计主页分为6部分,分别为本体部设计、行走部设计、运输机构设计、截割部设计、铲板部设计、后支撑部设计[18];③进入相应设计部分,根据开采矿体选择对应部件分类设计;④根据尺寸型号输入参数,验证是否符合参数规范要求,若符合则运行设计程序,并存储为.3dt格式,若不符合则返回上一级进行验证;⑤设计其它部件并将其装配整合,生成三维模型。

图3 参数化设计流程

2.3 系统功能

由于地下巷道掘进情况复杂,不同煤岩的普氏系数与掘进开采矿体类型不同,部件参数也有很大不同。因此,根据对用户需求的分析,将掘进机模型参数化设计系统分为7个模块,主要功能模块有本体部设计、行走部设计、运输机构设计、截割部设计、铲板部设计、后支撑部设计、整机组合设计等模块,其中截割部设计又可分为两个二层功能模块,分别为截割头设计模块与悬臂设计模块。对复杂系统的各层子系统进行划分,使每个模块间的内部逻辑组织关系更加清晰明了。为了能更高效地生成部分模型,满足用户不同需求,对每个模块的设计没有先后顺序限制。

掘进机模型参数化设计系统功能模块如图4所示。

图4 系统功能模块

3 掘进机模型参数化设计系统实现

3.1 系统界面设计

系统界面设计是人机交互的重要部分,也是用户对软件的第一印象,因此是软件设计的重要组成部分[19]。以铲板部分设计为例,如图6所示为铲板部分设计界面,根据具体需求可将铲板分为星轮式、刮板式、扒爪式3部分进行设计。VB6.0工具箱可提供用于创建用户界面的多种可视化部件对象,从而完成多个窗体控件对系统的整体UI布局。布局时采取分模块输入相关参数(主要有主铲板、左右两侧铲板、星轮半径及主从动轮半径等)的方式,设计时需要保证系统界面简洁明了、参数位置清晰,设计人员可以直接参考工程图进行设计。

在对铲板部分的设计中,选择需要生成的样式,然后用户只需在设计页面模块中的TextBox控件框中输入对应尺寸参数,即可完成参数化建模。后台程序自动验证参数是否正确,如果尺寸参数无误,则参数化建模完成。

参数设置代码如下:

Global po_N As Long '点个数

Global f_N As Long '面个数

Global lin_N As Long '线个数

Global C_n As Long '层个数

Global s_n As Long '体个数

铲板刮板

Public Sub cguanban(r As Double,n As Double)

Call Inig_3dt

For i =0 To n-1

Call add_point(r*Cos(i*80/n*3.1415926/180),0,-r*Sin(i*80/n*3.1415926/180),0,0,0)

Call add_point(r*Cos(i*60/n*3.1415926/180),0.05,-r*Sin(i*60/n*3.1415926/180),0,0,0)

Dialog.filter =”3DT文件|*.3dt”

Dialog.filename=”刮板”

Dialog.ShowSave

Save_3dt(dialog.filename)

End Sub

图5 铲板部参数化设计界面

3.2 ActiveX控件应用

窗体控件设计是VB6.0可视化的重要组成部分。ActiveX为Microsoft一系列策略性面向对象程序技术与工具,其主要技术是组件对象模型(COM)[20],扩展名为OCX,代表“对象链接与嵌入控件(OLE)”。一个COM组件(ActiveX控件)可由多种开发语言开发,具有很强的适用性。系统设计采用了ActiveX控件中的选项卡控件(SSTab)、图像列表控件(ImageList)等。常用ActiveX控件如表1所示。

表1 常用ActiveX控件

3.3 程序驱动装配

以往是通过CAD导入部分零部件,然后根据各机构关系手动进行模型装配,该装配方式往往费时费力。掘进机建模参数化设计系统通过CSG体素构造将模型由复杂实体进行拆分,再利用VB开发语言进行组合装配。在掘进机整机装配界面上选择要组合的各个部件类型,包括截割方式、悬臂类型、铲板类型、运输机类型等,并显示如图6所示组合结果。

图6 掘进机整体装配界面

组合装配是用VB编程语言程序实现坐标定位,然后根据CSG思想解析实体构成,分别实现点、线、面、体遍历构成实体坐标。装配步骤如下:①在部分设计界面上,用户输入各零部件具体参数,定位到实体基点坐标与起点坐标,并通过输入的TextBox控件框将具体参数传入函数;②在组合界面驱动程序,根据坐标定位实体间位置关系(平行、重合、垂直),后台通过计算距离进行移动、旋转、缩放等,实现点、线、面的关系配合;③在程序驱动过程中调用 Cr_s3dt函数在原有基础上插入新生成的零部件,进而实现整机组合。装配完成的掘进机三维模型如图7所示。通过程序驱动装配可节省各部分组合时间,大大提高了系统设计效率。

图7 驱动装配完成的三维模型

自动装配组合代码如下:

Public Sub Cr_s3dt(fff As String, ydX As Double, ydY As Double, ydZ As Double, sf As Double) '在原有基礎上插入3dt装配组合

Open fff For Input As 1

Input #1, tmn, tpn

If kk = 7 Then

Input #1, tpn, tmn, ttn, tln, twn, tcn, tsn, tzn

Else

Input #1, tpn, tmn, ttn, tln, twn, tcn, tsn, tzn, myn '点数目,面数目,文本数目,线(钻孔)数目,纹理数目,层数目,体数目,线列表数,漫游路线数目

End If

ReDim Preserve lu_F(f_N + tmn)

ReDim Preserve lu_P(po_N + tpn)

For j = 1 To tpn

With lu_P(po_N + j)       'lu_p() 点

Input #1, .N, .x, .y, .z, .R, .G, .B   '对坐标进行移动缩放

.x = .x * sf + ydX

.y = .y * sf + ydY

.z = .z * sf + ydZ

.N = po_N + .N

End With

Next j

'面

……

End Sub

4 结语

本文设计并实现了一个掘进机模型参数化设计系统。在理论方面,本文给出了详细的参数化设计流程,可为后续类似系统开发提供参考;在应用方面,该系统可大大降低设计人员工作量,缩短开发周期。该研究成果可应用于三维数据场可视化以及有限元分析等领域,后续还需要进一步提高系统运行效率、改善人机交互界面。

参考文献:

[1] 田云. 基于虚拟样机的掘进机模拟操纵系统研究[D]. 西安:西安科技大学,2011.

[2] 孙家广. 计算机辅助设计技术基础[M]. 北京:清华大学出版社,2000.

[3] 龚沛曾,陈慰民,杨志强. Visual Basic程序设计简明教程[M]. 第2版. 北京:高等教育出版社,2003.

[4] 张谊军,蒋忠宝,刘际华. 基于VB.NET的Pro/E参数化模型库的开发[J]. 机械与电子,2010(12):73-75.

[5] LI Z,YUAN D,FANG Y. C++ programming[M]. De Gruyter,2019.

[6] 张思彧,仲梁维. 基于VB.NET的剪式升降平台参数化设计系统[J]. 软件导刊,2018,17(5):86-89.

[7] 侯笑梅,李军,韦彬. 基于Solidworks的带式输送机自动化建模的研究[J]. 煤矿机械,2018,39(9):168-170.

[8] REDDY E J,SRIDHAR C N V,RANGADU V P. Development of web-based knowledge-based system for CAD modeling and manufacturing[J]. Materials Today: Proceedings,2018.

[9] 邵晋敏. EBH315型掘进机的虚拟建模[J]. 价值工程,2013,32(35):38-40.

[10] 马涛,刘英林. 矿用掘进机行走减速器建模与运动仿真[J]. 机械工程与自动化,2008(2):45-47.

[11] 汪剑,沈景凤,仲梁维. 基于参数化的挤压模具敏捷设计系统研究[J]. 软件导刊,2017,16(4):114-117.

[12] 王晶,方春峰. 浅析蓝光软件在矿图中的应用[J]. 煤矿现代化,2009(5):91-92.

[13] 莫春柳,李冰,谭夏梅. 三维实体造型的教学实践与认识[C]. 全国图学教育研讨会暨制图cai课件演示交流会,2002.

[14] 赵勇. 工程制图基础[M]. 北京:北京交通大学出版社,2005.

[15] 陈辉. 基于实体模型的布尔运算算法与实现[D]. 青岛:山东科技大学,2007.

[16] 王红娟.  三维实体建模及布尔运算造型技术[D]. 青岛:山东科技大学,2007.

[17] 种衍芬. 浅析《蓝光地理信息系统》在煤矿地测中的应用[J]. 山东煤炭科技,2011(6):57-59.

[18] 赵国栋. 悬臂纵轴式掘进机的总体设计[J]. 山西煤炭管理干部学院学报,2006(4):94-95,97.

[19] 周莉莉.  人机交互界面的艺术表现研究[D]. 合肥:合肥工业大学,2009.

[20] 徐庆增,杨硕珩. 利用VB语言实现组态软件组件的开发[J]. 山西电子技术,2017(1):65-67.

(责任编辑:黄 健)

猜你喜欢

体素掘进机控件
基于多级细分的彩色模型表面体素化算法
运用边界状态约束的表面体素加密细分算法
基于体素格尺度不变特征变换的快速点云配准方法
掘进机掘进速度模糊PID控制
掘进机行走部支重轮润滑方式改进
ASP.NET服务器端验证控件的使用
国内首台全断面煤巷高效掘进机诞生并交付
EBZ160型掘进机机载临时支护装置研制
Spreadsheet控件在Delphi数据库系统中的编程与应用