机械拆装-基于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的层叠结构等,在本专栏中的后续文章会有过程记录。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Splashtop 的屏幕录制功能如何提高 IT 合规性

在当今的数字时代,随着远程办公的普及以及监管要求和网络安全威胁的加剧,IT 副总裁、首席信息官(CIO)等 IT 管理人员面临着一系列独特挑战。 各组织在远程支持运营中要全力维护合规性、提高安全性并坚持问责制,技术解…

瓦罗兰特新赛季更新资讯 瓦罗兰特新赛季免费加速器

瓦罗兰特新赛季来喽,这是一款由拳头开发的免费第一人称射击游戏,游戏凭借其独特的玩法和丰富的英雄选择吸引了大量玩家。 我们可以在游戏中选择自己喜欢的角色出场与敌人进行对战,而且每一个角色都有自己独特的道具以及技能,使用好…

实体零售连锁企业如何通过物流接口实现数智化转型升级?

在电子商务浪潮的持续冲击下,传统的实体零售行业面临着巨大的挑战。为了在线上线下融合的新零售时代保持竞争力,众多实体零售企业积极寻求数字化转型的突破。 某中国零售连锁百强企业近年来致力于打造自有品牌的线上销售体系,自2021年8月起接…

高效管理客户的秘诀:企业如何建立稳固的客户关系

如今的竞争,从商业模式、产品、服务到销售环节,竞争已经不再是单一层面的,而是全方位的,企业需要打造全价值链竞争优势。在这个过程中,客户管理的作用是无可替代的,成为企业成功的关键因素之一。如何高效地…

Excel表格转换Word文档的3个简单方法分享!

在日常办公中,我们经常需要将Excel表格中的数据转换为Word文档以便于编辑、排版或分享。然而,很多人可能并不清楚如何实现这一转换过程,或者只能采取复制粘贴的笨拙方式,导致格式错乱、效率低下。本文将详细介绍两种高效、便捷的E…

企业应该如果安全上网,软件防查盗版,企业防盗版

随着信息化的发展,企业日常办公越来越依赖互联网。终端以及普通PC终端在访问互联网过程中,会遇到各种各样不容忽视的风险,例如员工主动故意的数据泄漏,后台应用程序偷偷向外部发信息,木马间谍软件的外联,以…

精密机器中的交叉导轨负荷与容许负荷的差异!

交叉导轨的设计和制造过程中,负荷及容许负荷是至关重要的参数,只有准确计算出交叉导轨的载荷,才能保证交叉导轨的稳定性和使用寿命。 负荷和容许载荷是两个不同的参数,那这两者的有什么差异呢? 交叉导轨的负荷是指其承…

【Linux 命令行参数解析函数getopt()】原理及直白理解

最近写代码恰好碰见getopt()这个函数,去网上找了很久,说实话,其他人写的有点看不懂,所以将我认为可以便于理解的地方描述一下: int getopt(int argc, char * const argv[], const char *optstring);首先理解这个函数的…

军用光电耦合器产品的市场潜力与应用前景

光电耦合器作为现代军事技术中的关键组件,其在军用领域的市场空间和应用前景备受关注。本文将深入分析光电耦合器产品在军事领域中的市场潜力,探讨其技术特点、应用场景及未来发展趋势。 光电耦合器技术特点与工作原理 光电耦合器是一种能够将电信号与光…

HDC Cloud 2024 | CodeArts加速软件智能化开发,携手HarmonyOS重塑企业应用创新体验

2024年6月21~23日,华为开发者大会HDC 2024在东莞溪流背坡村隆重举行。期间华为云主办了以“CodeArts加速软件智能化开发,携手HarmonyOS重塑企业应用创新体验”为主题的分论坛。论坛汇聚了各行各业的专家学者、技术领袖和开发者,共同探讨Harmo…

解决Transformer根本缺陷,所有大模型都能获得巨大改进

即使最强大的 LLM 也难以通过 token 索引来关注句子等概念,现在有办法了。 最近两天,马斯克和 LeCun 的口水战妥妥成为大家的看点。这两位 AI 圈的名人你来我往,在推特(现为 X)上相互拆对方台。 LeCun 在宣传自家最新论…

VERYCLOUD睿鸿股份确认参展2024年ChinaJoy BTOB商务洽谈馆,期待与你相聚

作为在全球数字娱乐领域兼具知名度与影响力的年度盛会,2024年第二十一届ChinaJoy将于7月26日至7月29日在上海新国际博览中心盛大召开,本届展会主题为:初心“游”在,精彩无限!(Stay True, Game On.&#xff…

阿一网络安全培训中心专门为你准备了一份WScan使用教程

下载地址:https://github.com/chushuai/wscan/releases 版本的选择 Windows就选windows_amd64 Linux就选linux_amd64 mac就选darwin_amd64 下载好后,运行一次exe会生成一个config.yaml文件 把该文件中plugins下面的所有插件的enabled设置为True。&…

Java养老护理助浴陪诊小程序APP源码

💖护理助浴陪诊小程序💖 一、引言:养老新趋势🌱 在快节奏的现代生活中,养老问题逐渐成为了社会关注的焦点。如何为老年人提供便捷、贴心的服务,让他们晚年生活更加安心、舒适,是我们每个人都需…

CentOS7环境下DataX的安装、使用及问题解决

DataX概述 DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变…

六、常用API ★ ✔

六、常用API 模块14.基础API第一章.String1.String介绍2.String的实现原理 ★3.String的创建 (无参、字符串、字符数组、字节数组)4.String 面试题【String s new String("abc")】5.字符串常见问题 第二章.String的方法1.判断方法&#xff08…

Typescript 【实用教程】(2024最新版)含类型声明,类型断言,函数,接口,泛型等

简介 TypeScript 是 JavaScript 的超集,是 JavaScript(弱类型语言) 的强类型版本。 拥有类型机制文件后缀 .tsTypescript type ES6TypeScript 和 JavaScript 的关系类似 less 和 css 的关系TypeScript对 JavaScript 添加了一些扩展&#x…

探索Facebook的未来世界:数字社交的演进之路

在数字化和全球化的浪潮中,社交网络如Facebook已经成为了人们日常生活不可或缺的一部分。然而,随着技术的迅猛发展和用户需求的不断变化,Facebook正在经历着社交平台的演进之路。本文将探索Facebook的未来世界,分析数字社交的发展…

上海六十中学多功能气膜馆项目:轻空间全速推进

项目进展捷报频传 上海六十中学多功能气膜馆项目土建工作已基本完工,今天轻空间团队正式进场,展开气膜部分的施工。我们将为上海六十中学打造一个现代化、环保、高效的多功能气膜馆,提供优质的运动和活动场所。 现场施工一片繁忙 在施工现场&…

Windows部署MinIO,搭建本地对象存储服务

一、前言 二、MinIO介绍 三、Windows部署MinIO服务 1、准备工作 2、下载MinIO服务 3、启动MinIO服务 4、设置用户名密码 5、创建.bat文件启动服务 四、MinIO基本操作 1、存储桶管理 2、对象管理 3、数据查看 一、前言 基于外网的项目,可以使用阿里云等…