机械拆装-基于Unity-总体设计

前言

  在工业设计和制造领域,零部件的拆装技术是一个重要的应用场景,比如我们在工程训练课程中经历的摩托车发动机拆装课程,是机械类学生的必修课程。虚拟拆装系统模拟和仿真了模型的拆装过程,虽然SolidWorks等机械设计软件能够解决特征配合的装配方式,但交互性不足。我们在Unity虚拟引擎中建立一个交互式拆装训练系统,拆装操作简单,并有图文引导提示,适合学习者了解拆装过程。

  如果一个拆装项目要实现比较完善仿真功能,比如需要仿真实体特征、装配精度等,则需要进行更加详尽的架构设计。但如果仅仅实现基本功能,且项目要在短时间(一周)内完成,那么按我目前的想法写下本专栏的笔记,大致可以完成。

1. 系统总体设计

  完成整个系统大约要完成下图中这些工作,*为加分项。核心模块为3D模型的准备以及拆装功能的实现,这两个部分后面会详细说明。

2. 装配功能实现的详细设计

  2.1 装配顺序

  发动机模型的包括活塞、曲柄、离合器等几大部分,零件数量有200多个,彼此存在依赖关系,因此需要根据其构造和原理,安排拆装工序。按发动机功能区域分,可以讲拆装顺序分为如下图的装配分组,其中每个子装配体都包含了若干零件,因篇幅有限,仅展开比较重要的变速箱装配体:

  在系统设计过程中,模型按上图的分组建立子装配体,并先分别完成每个子装配体,最后总装。

  2.2 装配思想实现的难点

  (1)碰撞干涉问题

     虚拟世界中需要模拟实体零件的特性,否则容易发生零件穿透失去真实的效果。可以旋转Unity系统中较常用的几种碰撞器来制造碰撞效果,但这里需要注意几个问题:

    1)如果使用MeshCollider包围整个零件表面,碰撞效果比较真实,但是系统资源占用较大,尤其是齿轮这些三角面较多的模型;

    2)如果使用BoxCollider这类碰撞器时,容易造成视觉上还未碰到模型,而已经产生碰撞效果的现象,不复合现实世界客观规律。可以使用下图分段式碰撞器包裹物体的方式,系统资源消耗较少,又有MeshCollider的效果。

  

  (2)装配路径约束

    发动机装配中,大部分都是轴向装配路径,因此需要对孔和轴之间的配合进行约束,以体现实际装配中的方位和路径。考虑用采用以下方法:零件在当前位置O时,可以自由移动;当拖拽到轴端面位置时,制定一个零时位置T,从这个位置向目标位置P移动时,锁定y,z方向,约束零件在轴方向上移动。

  (3)零件装配过程的流程设置

    下图是大致的装配动作实现过程,其中没有考虑的问题有:

    1)判断装配方向;

    2)装配完成后,父子关系改变(如果后续需要通过运动执行来演示装配效果,就需要考虑这个问题);

    3)装配工具选择(背包);    4)游戏奖励制度。

    这些可以在制作过程中预留接口,以便于后期扩展。

    

3. 场景实现中的难点与解决

  3.1 相机控制

    在场景中,相机会有多种应用要求,比如在实现场景漫游功能时,需要以第一或第三人控制的方式,让相机实现360°场景旋转。但在装配过程、教学认知过程中,都需要相机在小范围移动,或干脆固定不动,解决的方法有很多种,比如:

    1. 载入不同场景实现不同功能

    比如漫游为一个场景,装配功能放在另一个场景,通过场景间的切换实现不同功能。

    2. 建立多个相机,通过改变相机的Depth数值,切换主副相机。UI可以建立专门的UI相机。

    

    另外,在装配场景中,可以将相机旋转中心设置为装配体的位置,让相机始终跟随装配体旋转和移动。

  3.2 零件的拖拽和旋转

    首先要建立零件的层(Layer),只有在这个层里的物体才会被鼠标射线选中拖拽,防止其他物体干扰;其次,使用鼠标射线拖动和旋转的代码很多,借鉴一下大神们的基本都没有问题。

  3.3 装配位置提示

  考虑实现是功能是:当选中一个零件准备装配时,这个零件的正确装配位置会有一个同样的零件形象忽明忽暗地提示,如下图1。大致的思想如下图2。

     

总结

  在制作过程中还有一些小细节需要不断完善,比如需要规范管理那么多种类的文件、UI的层叠结构等,在本专栏中的后续文章会有过程记录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/38225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

性能调优 性能监控

1.影响性能考虑点包括: 数据库、应用程序、中间件(tomcat、nginx)、网络和操作系统等方面。 首先考虑自己的应用属于 CPU密集型 还是 IO密集型 cpu密集型 计算,排序,分组查询,各种算法 IO密集型 网络传输,磁盘读…

大创项目推荐 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python

文章目录 1 简介2 传统机器视觉的手势检测2.1 轮廓检测法2.2 算法结果2.3 整体代码实现2.3.1 算法流程 3 深度学习方法做手势识别3.1 经典的卷积神经网络3.2 YOLO系列3.3 SSD3.4 实现步骤3.4.1 数据集3.4.2 图像预处理3.4.3 构建卷积神经网络结构3.4.4 实验训练过程及结果 3.5 …

zabbix报警机制,主动监控

zabbix思路流程 主动监控 默认zabbix使用的是被动监控,主被动监控都是针对被监控主机而言的。被动监控:Server向Agent发起请求,索取监控数据。此种模式常用主动监控:Agent向Server发起连接,向Server汇报 配置web2使用…

STM32智能家居掌上屏实战:从WiFi连接到MQTT通信,打造你的家庭物联网网关

摘要: 本文深入探讨一种基于STM32的智能家居掌上屏设计方案,详细阐述其硬件架构、软件设计以及通信协议等关键技术细节。该方案利用WiFi构建局域网,实现与各类传感器、执行器的便捷交互,并通过TFT彩屏提供直观的控制和数据展示,旨…

[数据库原理]事务

如有错误,欢迎指正!!! 期末考了冲突可串行化

动态顺序表实现通讯录

系列文章目录 【数据结构】顺序表 文章目录 系列文章目录前言一、通讯录的功能要求二、通讯录的代码实现1. 新建文件2. 创建通讯录的结构体3. 对顺序表文件进行修改4. 通讯录具体功能实现4.1. 通讯录的初始化和销毁4.2. 增加联系人信息(尾插)4.3. 查找指…

SpringBoot + 虚拟线程,性能炸裂!

一、什么是虚拟线程 虚拟线程是Java19开始增加的一个特性,和Golang的携程类似,一个其它语言早就提供的、且如此实用且好用的功能,作为一个Java开发者,早就已经望眼欲穿了。 二、虚拟线程和普通线程的区别 “虚拟”线程&#xf…

一些硬件知识(十二)

X电容是接在火线和零线之间,Y电容是接在火零线和地之间。X电容滤除差模干扰,Y电容滤除共模干扰: 高频干扰信号经过X电容后幅度没有变化,相位相差180度: DW01电池管理芯片: M1、M2:这两个为N沟道…

【关于C/C++中的scanf不能使用问题】

方法1:scanf_s 方法2:看见后面的日志了吗 CRT……?在第一行加上#define 日志 方法3:#pragma warning(disable:4996) 4996是我们的报错序号

开发笔记:vue3+ts+vant 卡片数据分页,下拉加载,卡片左滑可删除

效果: 实现 使用vantui组件 van-swipe-cell van-card (商品卡片) 核心代码 const currentPage ref(1) const pageSize ref(4) const totalSize ref(10) const loading ref(false) const finished ref(false) const refreshing ref(…

Git新仓库创建流程

平时需要创建新仓库,老要去查代码特别烦,在此写下流程方便备用. 1.创建新的云仓库 无论使用GitHub还是Gitee,首先要创建一个云仓库,这里就直接用国内的gitee做演示了,githup老挂加速器太烦,偷个懒. 我这里创建的是一个空仓库&…

Nginx主配置文件---Nginx.conf

nginx主配置文件的模块介绍 全局块: 全局块是配置文件从开始到 events 块之间的部分,其中指令的作用域是 Nginx 服务器全局。主要指令包括: user:指定可以运行 Nginx 服务的用户和用户组,只能在全局块配置。例如&…

软考《信息系统运行管理员》-2.2 信息系统运维的组织

2.2 信息系统运维的组织 信息系统运维的任务 数据资源管理 数据收集、数据校验、数据录入、数据处理 软件资源管理 采购、保存、相关文档保管、分发、安装、支持、评价、培训 硬件资源管理 检查、维护、故障处理、更新、修复、扩充 系统安全管理 可用性、完整性、保密性、可控…

USB PD+TYPE -C快充电源中MOSFET选型,USB PD应用市场包含智能手机,平板电脑,笔记本电脑,游戏本,移动硬盘,数码相机,电动工具等传统领域

USB PD全称为USB Power Delivery,是由USB-IF组织制定的一种快速充电协议,也是目前市场非常看好的一种协议,可以支持输出功率高达100W;Type-C是一种接口规范,能够支持传输更大的电流。USB PD应用市场不仅包含智能手机&a…

虚拟纪念展馆建设的重大意义:重新定义纪念活动的未来

一、什么是虚拟纪念展馆? 虚拟纪念展馆是一种利用3D、VR等技术在线展示历史事件、人物或文化遗产的数字化空间。这些展馆通过虚拟现实、增强现实和3D建模等技术手段,创建出身临其境的体验,使参观者可以在互联网上以互动方式探索和学习。 二、…

【FPGA 学习与实践】<初阶> 项目周计划

第1-2周:基础项目 - 4位加法器和计数器 目标:掌握Verilog基本语法和模块设计。 第1周: 学习Verilog的基本语法和结构(模块、端口、数据类型)。设计并实现一个4位加法器。编写测试平台(Testbench&#xff0…

提升效率就靠它们啦

Hey小伙伴们~👋 知道你们都在忙碌的工作中寻求高效的秘诀,今天就给大家安利五款超实用的国产工作App,让你的工作生活更加得心应手哦!💼✨ 1️⃣【亿可达】 作为一款自动化工具,亿可达被誉为国内…

firewalld(5)--direct

简介 direct 是 firewalld 服务的一个功能,它允许用户以更直接的方式配置防火墙规则,绕过通常的 firewalld 区域(zone)和服务的抽象层。然而,这个功能已经被弃用(deprecated),并将…

萌啦跨境工具箱有什么作用,萌啦跨境工具箱OZON营销神器

萌啦OZON数据平台,作为专为OZON平台商家打造的数据分析工具,集成了多种强大功能,旨在帮助商家在激烈的市场竞争中获得数据驱动的优势,实现精准运营与高效增长。那么萌啦跨境工具箱有什么作用?接下来介绍萌啦跨境工具箱…

全面升级厨房安全,电焰灶引领新时代

煤气是许多家庭日常使用的能源,目前的普及率还是比较高的,但平时因煤气泄漏而引发的事故也很多,只需要查看最近一个月因液化气泄漏引起的爆炸事件屡见不鲜。打开新闻,我们总能时不时看到煤气爆炸的事故,幸运的能够逢凶…