蔬菜日光温室设计系统的开发

时间:2022-07-24 09:12:13

蔬菜日光温室设计系统的开发

摘要:为满足生产上对蔬菜日光温室设计的需求,以SolidWorks为基础平台,以Visual Basic语言为开发工具,提出了蔬菜日光温室参数化设计系统开发思路和开发流程,并完成了蔬菜日光温室设计系统的开发。应用实践表明,通过该系统可以实现对蔬菜日光温室的参数化设计。

关键词:日光温室;设计系统;SolidWorks;Visual Basic

中图分类号:S625;S126 文献标识码:A 文章编号:0439-8114(2013)19-4800-04

近年来,在农业扶持政策的引导下,北京市设施农业建设取得了较大发展,设施农业已成为京郊农业增效、农民增收的一条重要途径,在保障首都农产品供应中发挥了重要作用。北京设施农业的发展不仅设施类别日益丰富,年产量不断增加,而且设施覆盖面积也不断扩大[1]。北京设施农业生产的基本功能逐步从以生产产品为主要目标向集观光、采摘、休闲、体验、生态、传承农业文化等多种功能转变。在设施生产中,以蔬菜生产占主导地位。日光温室作为一类蔬菜生产主要园艺设施,在建造过程中结构设计不够规范,造成使用性能受到一定影响,为此开发出一种蔬菜日光温室设计系统,该系统通过参数设定完成日光温室的建模,设计出符合行业标准的日光温室。

1 系统开发平台及工具的选择

SolidWorks是基于Windows平台的一套三维CAD软件,它支持参数化和特征建模技术,能够方便、快捷地创建任何复杂形状的实体,并且可以实现实体的参数化驱动。由于其界面友好、操作方便、简单易学,目前已成为微机平台上流行的三维设计软件。更为重要的是SolidWorks提供了大量的API(Application Program Interface,应用程序接口)函数用于二次开发,这些API函数是SolidWorks的OLE(Object Linkingand Embedding,对象的嵌入与链接)或COM(Component Object Model,组件对象模型接口),使用户能够直接访问SolidWorks,并可以使用多种高级语言,如Visual Basic、C++、C#、Delphi等语言均可用于SolidWorks的二次开发[2]。进行二次开发时,通过调用SolidWorks的API函数,令API向高级语言程序提供所需要的对象及这些对象的方法和属性以完成零件建模[3-4]。运行时采用交互式界面,由用户指定尺寸,由程序自动求解关键点坐标完成建模[5]。

Visual Basic是运行在Windows环境下的可视化编程语言,其具有语言规则简单、功能齐全、使用简捷等优点,程序开发周期短、具有可视化设计界面等特点,使用Visual Basic来开发软件,开发周期短,代码效率高[6],已有很多科研工作者利用Visual Basic语言对SolidWorks进行了二次开发[7]。

因此,以SolidWorks为基础平台,以Visual Basic语言为开发工具,对蔬菜日光温室设计系统进行开发。

2 蔬菜日光温室设计系统的设计要求和系统使用流程

为满足用户对蔬菜日光温室设计的需求,本设计系统要能够达到以下设计要求。

1)能够根据用户输入的温室长度、温室高度数值,自动计算所需设计的日光温室的温室跨度、外墙高、内墙高、后屋面投影长、墙体厚度等各个设计参数。如因某种原因需要修改设计参数,用户可以对自动计算的设计参数进行修改,最终确定设计参数。

2)按最终确定的设计参数,系统自动生成日光温室的三维模型,完成日光温室的设计。

3)如用户对完成的日光温室设计结果不够满意,可以重新修改设计参数,直到满意为止。

本系统的用户使用流程如图1所示。

3 蔬菜日光温室设计系统的开发

3.1 日光温室参数化建模系统开发思路

根据本系统的设计要求,确定本系统的开发流程如图2所示。

该系统开发思路如下:

1)根据日光温室的理论模型,确定本系统温室长度、温室高度、温室跨度、外墙高度、内墙高度、后屋面投影长度、墙体厚度等主要建模参数数值。

2)使用SolidWorks软件完成日光温室所有零件及装配体基本三维模型建模。首先在SolidWorks中创建日光温室米单元模型(即东西长度为1 m的温室单元模型),该模型包括拱杆、拉杆、杆固定卡、后墙、后墙保温材料、后屋面顶板、后屋面盖板、后屋面保温材料、地面等部分,然后再创建东、西山墙及缓冲间等三维模型,最后装配形成日光温室装配体三维模型。在零件建模时,要在相应的模型文件中找到关键参数的设计变量,并记录变量的名称。

3)利用Visual Basic语言编写用户设计界面如图3所示,本系统交互式界面包括关键参数输入、自动参数计算、温室建模、退出系统等。该VB程序的主要功能有:根据用户输入的温室长度、温室高度数据,自动计算温室跨度、外墙高度、内墙高度、后屋面投影长度、墙体厚度等参数,并显示于设计界面上;用户可以对程序自动计算的参数进行修改;根据用户确定的参数,通过VB调用SolidWorks API函数,驱动SolidWorks建立所需的日光温室三维模型;如用户对设计结果不满意可以重新对设计参数进行修改,然后根据新的参数重建日光温室三维模型。

3.2 系统代码

下面是实现北京地区果菜类日光温室建模的程序代码:

Sub para(a1 As Integer, b1 As Integer, c1 As Integer, d1 As Integer, e1 As Integer, f1 As Integer, g As Integer, h As Integer)

Dim swapp As Object, part As Object, assembly As Object

Set swapp = CreateObject("sldworks.application")

swapp.Visible = True

Set part = swapp.OpenDoc("F:\温室\米单元.sldprt", swDocPART)

Set part = swapp.ActiveDoc

part.Parameter("D7@草图1").SystemValue =

a1 / 1000

part.Parameter("D8@草图1").SystemValue = b1 / 1000

part.Parameter("D3@草图3").SystemValue =

c1 / 1000

part.Parameter("D1@草图1").SystemValue = d1 / 1000

part.Parameter("D2@草图1").SystemValue =

e1 / 1000

part.Parameter("D2@草图3").SystemValue =

f1 / 1000

part.Parameter("D5@草图1").SystemValue =

g / 1000

part.Parameter("D6@草图1").SystemValue =

h / 1000

part.EditRebuild

part.Save'以上程序为更新米单元的尺寸参数

Set part = swapp.OpenDoc("F:\温室\西山墙.sldprt", swDocPART)

part.Parameter("D8@草图118").SystemValue = a1 / 1000

part.Parameter("D7@草图118").SystemValue = b1 / 1000

part.Parameter("D3@草图3").SystemValue =

c1 / 1000

part.Parameter("D5@草图118").SystemValue = d1 / 1000

part.Parameter("D6@草图118").SystemValue = e1 / 1000

part.Parameter("D2@草图3").SystemValue =

f1 / 1000

part.Parameter("D3@草图118").SystemValue = g / 1000

part.Parameter("D4@草图118").SystemValue = h / 1000

part.EditRebuild

part.Save '以上程序为更新西山墙的尺寸参数

Set part = swapp.OpenDoc("F:\温室\东山墙.sldprt", swDocPART)

part.Parameter("D8@草图118").SystemValue = a1 / 1000

part.Parameter("D7@草图118").SystemValue = b1 / 1000

part.Parameter("D3@草图3").SystemValue =

c1 / 1000

part.Parameter("D5@草图118").SystemValue = d1 / 1000

part.Parameter("D6@草图118").SystemValue = e1 / 1000

part.Parameter("D2@草图3").SystemValue =

f1 / 1000

part.Parameter("D3@草图118").SystemValue = g / 1000

part.Parameter("D4@草图118").SystemValue = h / 1000

part.EditRebuild

part.Save '以上程序为更新东山墙的尺寸参数

Set assembly = swapp.OpenDoc("F:\温室\西山墙装配.sldasm", swDocASSEMBLY)

Set assembly = swapp.ActiveDoc

assembly.Save'以上程序为更新西山墙装配体

Set assembly = swapp.OpenDoc("F:\温室\日光温室.sldasm", swDocASSEMBLY)

Set assembly = swapp.ActiveDoc

assembly.Save'以上程序为更新日光温室装配体

End Sub

4 蔬菜日光温室设计系统应用实例

现以长度为80 m,高度为3.7 m的蔬菜日光温室建模为例,操作步骤如下:

1)打开蔬菜日光温室设计系统界面;

2)在设计界面对应位置输入温室长度80、温室高度数值3.7,点击“生成参数”按钮,系统自动产生温室跨度、外墙高度、内墙高度、后屋面投影长度、墙体厚度等自动参数;

3)如果有必要,可对自动计算生成的参数进行修改,确定建模参数,实例未做修改;

4)点击“温室建模”按钮,系统自动启动Solid Works软件,并根据建模参数重建日光温室的三维模型;

5)三维模型自动绘制完成之后,此时的图形若不能完全满足设计者的要求,还可以对建模参数进行修改,直到得到满意的模型;

6)点击“退出系统”按钮,退出系统。

由系统设计的日光温室三维模型如图4所示。

5 结论

1)所开发的蔬菜日光温室设计系统界面友好、操作简单、建模准确、设计结果直观,降低了设计成本,提高了设计自动化程度,能够满足生产上的需求。

2)以SolidWorks为基础平台,以Visual Basic语言为开发工具,本文所提出的对蔬菜日光温室参数化设计系统的开发思路、开发流程及所开发出的系统,经过实践证明切实可行。

3)系统设计过程具有一定的通用性,而且通过修改系统参数,可以实现对果树、花卉等其他结构形式的日光温室的参数化建模。

参考文献:

[1] 王志刚,李腾飞.设施农业的发展分析及未来展望——以北京市为例[J].农业展望,2012(5):25-27.

[2] 张 华,陈定方,杨艳芳.Visual Basic为基的SolidWorks二次开发与应用[J].湖北工业大学学报,2010,25(4):36-38.

[3] 胡林岚,郁玲玲.基于VB与SolidWorks的齿轮设计与三维造型系统[J].机械工程与自动化,2012(6):34-36.

[4] 林杨乔.基于SolidWorks的零件快速设计平台[J].硅谷,2012(7):53.

[5] 尹新涛,郭贵生,王海平,等.旋耕机齿轮箱直齿圆柱齿轮的参数化设计[J].农机化研究,2012(5):128-131.

[6] 陈克源,王得胜.基于SolidWorks二次开发的支撑脚零件参数化设计[J].机械研究与应用,2011(2):87-89.

[7] 顿国强,陈海涛.基于VB的SolidWorks排种盘建模二次开发[J].大豆科学,2012,31(4):630-634.

上一篇:两种绿化植物叶片中元素含量分析 下一篇:稻瘟菌激活蛋白基因的克隆及表达