基于autocad的三维窗自动生成器的研究与开发信息管理与信息系统专业毕业论文终稿内容摘要:

,选择添加页,共三页,对应三种窗的类型 ; ⑹ 在 multipage 中,将 page1 的 caption 改为推拉窗,并在 page1 中插入一个 label,一个 Combobox 和一个 frame。 将 label 和 frame 的 caption 改为扇数 和顶窗形状 , 并在 frame 中插入 2 个 OptionButton,从上至下分别设 caption 为 矩形 、圆拱形; ⑺ 在 multipage 中,将 page2 的 caption 改为平开窗,并在 page2 中插入 2 11 frame。 将两个 frame 的 caption 分别设为顶窗形状和窗户页数,并在顶窗形状frame5 中插入 2 个 OptionButton,从左至右分别设 caption 为矩形、圆拱形,在窗户页数 frame4 中插入 2 个 OptionButton,从左至右分别设 caption 为单页和双页 ⑻ 在 multipage 中,将 page3 的 caption 改为固定窗,并在 page3 中插入 1 frame,将其 caption 改为“说明”,在 frame 中插入一个 label,用于说明固定窗生成时的相关信息 ; ⑼ 在窗体上放入 3 个 CommandButton,分别设 caption 为确定( Ok)、复位( Reset)、退出( Exit) ,取名为 cmdok、 cmdReset、 cmdExit。 其界面在运行 前 的组件使用及分布情况如下图 所示: 图 窗体设计界面 结构设计 系统结构图 12 与系统功能相对应的 系统 模块 结构如 图 所示。 图 模块结构图 系统流程图 根据系统设计思想 以及 功能需求,系统 按照如 图 所示运行。 三维窗自动生成器 窗洞尺寸、材质参数输入 :宽、高、厚 b. 材质:木质、铝合金、塑钢 窗的类型选择 不同类型具体参数设置 13 图 系统 流程图 选择 窗户材质 : 铝合金材质、木材质、塑钢材质 三维窗自动 生成器 选择窗的类型:推拉窗、平开窗、固定窗 显示结果 Ok Reset 退出生成器 Exit 根据所选窗的类型,选择设置窗的扇数和顶窗形状 判断数据是否在范围之内 是 输入窗洞尺寸参数 : 高、宽、厚 否 选择操作Ok/Reset/Exit OK 14 系统界面设计原则 ⑴ 可使用性 ① 用户界面的可使用性是用户界面设计最重要的目标。 ② 使用的简单性,这要求用户界面能够很方便地处理各种 基本的对话。 ③ 用户界面中的术语标准化和一致性。 要求:所有专业术语都应标准化 , 软件技术用语应符合软件工程规范。 ④ 快速的系统响应和低的系统成本。 ⑤ 用户界面应具有容错能力。 ⑵ 灵活性 ① 算法的可隐可显性。 ② 用户可以根据需要定制和修改界面方式。 ⑶ 系统能够按照用户的希望和需要,提供不同详细程度的系统响应信息,包括反馈信息,提示信息等。 ⑷ 与其他软件系统应有标准的界面。 ⑸ 复杂性和可靠性 ① 用户界面的复杂性:用户界面的规模和组织的复杂程度就是界面的复杂性。 ② 用户界面的可靠性:用户界面的 可靠性是指无故障使用的时间间隔。 [6] 15 5 系统实现 窗体 运行 模块 运行窗体 如 图 所示。 图 程序运行窗体 主要 实现代码 系统中 变量和对象定义多以拼音缩写表示,下面用表 对其进行说明。 表 变量和对象定义说明 变量或对象名 类型 说明 变量或对象名 类型 说明 ch() Acad3DSolid 窗户玻璃 chsuo() Acad3DSolid 窗锁 chcao() Acad3DSolid 窗槽 chk() Acad3DSolid 窗户玻璃的框 cutcao() Acad3DSolid 被 剪 掉的 窗槽部分 chuangg Textbox 窗洞高度 chuangk Textbox 窗洞宽度 chuangh Textbox 窗洞厚度 chuangcz Combobox, 窗槽材质 sans Combobox, 窗户扇数 窗体显示前载入块名信息,并执行控件信息初始化,应此在窗体 Initialize事件中添加下面代码: 39。 清空所有的文字框 Dim chuang As Control For Each chuang In 16 If TypeOf chuang Is TextBox Then = End If Next Dim ss(0 To 2) As String 39。 定义变量, ss 表示扇数 Dim j As Integer ss(0) = 2: ss(1) = 3: ss(2) = 4 For j = 0 To 2 ss(j) 39。 添加窗的扇数到组合和框 Next Dim cz(0 To 2) As String 39。 定义变量, cz 表示材质 Dim i As Integer cz(0) = 木材质 cz(1) = 铝合金材质 cz(2) = 塑钢材质 For i = 0 To 2 cz(i) 39。 添加窗的材质到组合框 Next = 2400 = 1500 = 120 = 2 = 木材质 = True = True = True = True End Sub 窗体中的『 确定 』按钮单击事件,用于 实现 核心的 三维窗生成 操作,其实现代码 为 : Private Sub cmdok_Click() 39。 约束条件,数据不能为空 If = Or = Or = Then MsgBox 窗洞尺寸数据不能为空 , vbOKOnly, 系统提示 Exit Sub End If 39。 定义变量和对象 Dim ch() As Acad3DSolid 39。 定义窗户玻璃为三维实体 Dim chcao() As Acad3DSolid 39。 定义窗槽为三维实体 Dim cutcao() As Acad3DSolid 39。 定义窗槽生成过程中剪切掉的部分为 三维实体 Dim chsuo() As Acad3DSolid 39。 定义窗锁为三维实体 17 Dim chk() As Acad3DSolid 39。 定义窗户玻璃的框为三维实体 Dim i As Integer Dim j As Integer Dim k As Integer Dim a As Double Dim b As Double Dim c As Double Dim d As Double a = 39。 变量 a 表示窗洞高度 b = 39。 变量 b 表示窗洞宽度 c = 39。 变量 c 表示窗洞厚度 d = Val() 39。 变量 d 表示窗户扇数 39。 检查输入数据是否在规定范围之内 If a 600 Or a 4800 Then MsgBox 您输入的数据有错,请根据提示重新输入窗的高度 , vbExclamation Exit Sub End If If b 600 Or b 4500 Then MsgBox 您输入的数据有错,请根据提示重新输入窗的宽度 , vbExclamation Exit Sub End If If c 100 Or c 240 Then MsgBox 您输入的数据有错,请根据提示重新输入窗的厚度 , vbExclamation Exit Sub End If 39。 定义绘制三维窗模型中所需的点 Dim pt1(0 To 2) As Double Dim pt2(0 To 2) As Double Dim pt3(0 To 2) As Double pt1(0) = 0: pt1(1) = 0: pt1(2) = 0 pt2(0) = 0: pt2(1) = 0: pt2(2) = (a 40) / 6 pt3(0) = 0: pt3(1) = 0: pt3(2) = (a 40) / 3 Dim pt13(0 To 2) As Double Dim pt14(0 To 2) As Double Dim pt15(0 To 2) As Double pt13(0) = 500: pt13(1) = 0: pt13(2) = 0 pt14(0) = 0: pt14(1) = 0: pt14(2) = a / 3 pt15(0) = 0: pt15(1) = 500: pt15(2) = 0 39。 推拉窗 If = True Then 39。 顶窗为矩形的推拉窗的实现 18 If = True Then 39。 画窗槽 ,利用三个不同大小的长方体进行差集运算得出 i = 2 ReDim chcao(i) ReDim cutcao(i) Set chcao(0) = (pt1, b, c, a) Set cutcao(0) = (pt1, b 80, c + 10, a 80) Set cutcao(1) = (pt1, b 40, c / 2, a 40) chcao(0).Boolean acSubtraction, cutcao(0) chcao(0).Boolean acSubtraction, cutcao(1) Set chcao(1) = (pt1, b 40, c, 40) 39。 顶窗槽 chcao(1).Move pt1, pt2 chcao(0).Boolean acUnion, chcao(1) 39。 将其合并为一个整体,合并后为 chcao(0) 39。 窗扇 j = d ReDim ch(j) 39。 画顶窗 Set ch(0) = (pt1, b 40, c / 4, 40 + (a 40) / 3) ch(0).Move pt1, pt3 39。 图形绘制都是以坐标原点为中心,因此需要移动到相应位置 39。 画推拉部分 Set ch(1) = (pt1, (b 20) / d, c / 4, 2 * (a 40) / 3) 39。 两扇 If d = 2 Then Dim pt4(0 To 2) As Double Dim pt5(0 To 2) As Double pt4(0) = (b 20) / (2 * d): pt4(1) = c / 8: pt4(2) = (a 40) / 6 pt5(0) = (b 20) / (2 * d): pt5(1) = c / 8: pt5(2) = (a 40) / 6 Set ch(2) = ch(1).Copy ch(1).Move pt1, pt4 ch(2).Move pt1, pt5 End If 39。 三扇 If d = 3 Then Dim pt6(0 To 2) As Double Dim pt7(0 To 2) As Double Dim pt8(0 To 2) As Double pt6(0) = 0: pt6(1) = c / 8: pt6(2) = (a 40) / 6 pt7(0) = (b 20) / d: pt7(1) = c / 8: pt7(2) = (a 40) / 6 pt8(0) = (b 20) / d: pt8(1) = c / 8: pt8(2) = (a 40) / 6 Set ch。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。