推动中国制造升级,汽车装配车间生产流水线3D可视化

成倅
• 阅读 1626

前言

2015年5月,国务院正式印发《中国制造2025》,部署全面推进实施制造强国战略。与之对应的,有一个人们更熟悉的名字,即“工业4.0”。“工业4.0”主要分为“智能工厂”、“智能生产”和“智能物流”三大主题。以“智能生产”为例,它充分利用物联网、云计算和人工智能等技术,将生产设备、无线信号连接和传感器集成到一个生态系统中。这个生态系统可以监督整个生产线流程并自主决策。本项目聚焦的是汽车制造行业,利用 HT for Web 实现汽车生产流水线的 3D 可视化。 通过该项目,可以使汽车生产流程更加透明,管理更加精细化、高效化,带动汽车制造的智能化。

项目预览

图扑重卡组装车间:https://hightopo.com/demo2/truck/

HT for Web 的汽车生产流水线三维动画,仿真度高,根据设备实际尺寸等比缩小,利用鸟瞰镜头、特写镜头、跟踪镜头等方式,将生产线整体、局部与工艺流程完美展示。针对不同生产线设计不同的方案脚本,个性化内容定制,更契合企业形象。

界面加载效果预览

载入动画

页面初始化时,画面视角放在远处,然后通过动画将视角由远及近拉到生产线工位1的位置。在整个动画过程中,首先可以预览到生产线的全局,最后画面具体到初始工位上。

推动中国制造升级,汽车装配车间生产流水线3D可视化

控制面板

该项目分为控制面板(2D)和生产线(3D)两部分。其中控制面板(2D)主要包含以下几部分:

1)科技环:如果仔细观察图1,在页面初始化时,有一个透明圆环做90度旋转。我们称之为科技环,其主要作用是用来提升渲染效果的。

2)流程控制按钮:我们在左上角放置了几个流程控制按钮。包括“运行”/“暂停”、播放速度控制,以及“拆分”/“合并”按钮。它们的实现方式会在后文详细阐述。

3)背景切换按钮:该项目提供了深浅两种色系选择。通过点击右上角的“切换背景”按钮,可以实现在深浅两种色系之间切换。其中浅色系效果如图3。

4)进度条:底部显示整个装配流程的进度,随着装配流程的进行,该进度条会逐渐填满。

推动中国制造升级,汽车装配车间生产流水线3D可视化

图2

推动中国制造升级,汽车装配车间生产流水线3D可视化

 图3

实现价值 

HT for Web 的汽车生产流水线3D可视化方案,完美模拟了生产线工作流程,再现了生产线制造过程,将庞大的生产线设备变成可随身携带的视频内容,满足了随时随地展示生产线的要求,使生产线的演示说明更加简便,降低汽车生产制造企业运营的成本,企业顺应数字化时代发展,在行业竞争中更具活力。

汽车生产流水线三维动画可帮助企业解决以下问题:

1)设备展示不受时空限制,为身处异地的客户提供便利,体现企业服务意识。

2)全方位无死角展示设备,客户可以更彻底的了解产品,成交率大大提高。

3)帮助业务人员销售设备,缩短沟通时间,使业务人员能够更有针对性的进行销售。

汽车生产流水线三维动画可应用于:业务人员辅助工具、网站产品宣传片、企业宣传片、设备改进、新设备投放、设备研发设计、展会、工艺演示、专利申请。

动画分析

我们将整个卡车组装生产线分成了12个工位,每个工位负责装配一部分零件,从而逐步实现从单个车架到整车的完整装配流程。由于该项目场景复杂,用到的设备也很多,如何让它们按照我们的想法实现整个动画?其中几处关键点的思路如下:

1、整体动画流程控制

通过仔细分析我们发现该生产流程中存在着大量的异步操作,比如需要先完成工位1的操作才能进入到工位2,要先装配座椅,然后才能装配车门。由此我们自然的想到了 javascript 与异步操作相关的两个关键字 async 和 await 。利用他们,可以让我们实现对整个动画流程的精准把控。

推动中国制造升级,汽车装配车间生产流水线3D可视化

2、运行/暂停

我们通过一个标志位 isRunning 来标识动画的运行状态。在异步操作过程中,如果要实现对生产流程各个阶段的“运行”/“暂停”控制功能,我们将各个装配步骤尽可能的进行拆分,然后通过在每一个步骤执行之前,对 isRunning 进行循环判断来决定动画的状态。具体来说,系统在执行每一步操作之前,会 await 一个 Promise 。在这个 Promise 中,会检查 isRunning 的状态。如果当前进入到暂停状态,则通过 setInterval 定期检查 isRunning ,同时后续动画将会在此等待。直到系统变成运行状态,该 Promise 才会清除上面的定期任务并且通过 resolve() 返回,从而使得后续动画继续进行。

推动中国制造升级,汽车装配车间生产流水线3D可视化

3、速度控制

除了运行暂停,项目中还提供了速度控制功能。分别为正常速度,2倍速和4倍速。这一部分的实现原理比较简单。即只需要在每一个动画实现时,将运行时间都乘以一个变量。该变量在正常运行时为1。如果是2倍速和4倍速,其值分别对应1/2和1/4。需要注意的是,鉴于 javascript 的任务处理方式,我们切换速度后,当前已经在执行的动画不会受到影响,其后面动画才会体现出速度的变化。

推动中国制造升级,汽车装配车间生产流水线3D可视化

4、机械手

该项目中一个比较复杂又经常用到的设备就是机械手。场景中的机械手又分为不同的类型,如有的是抓手,有的是吸盘。同时,由于每个机械手都拥有多个运动臂和多个运动轴,如何实现其正确联动是整个项目中较为复杂的一个问题。

推动中国制造升级,汽车装配车间生产流水线3D可视化

以图8中机械臂3为例,该机械臂的位置和角度受到机械臂2摆动的影响。因此,要使其随着机械臂2运动,首先需要将机械臂3吸附到机械臂2上。这样,机械臂2的任何运动都会带动机械臂3做同样的运动。

另外,我们观察机械臂3,其应当是围绕着右侧与机械臂2的结合处运动。而对于一个模型,在我们的场景中,其运动的基准点是自己的锚点。因此,我们还需要把机械臂3的锚点放到其运动轴的位置。这样调整之后,我们任意调整机械臂3在X轴方向上的运动角度,其都将围绕自己的运动轴旋转。如图9。

推动中国制造升级,汽车装配车间生产流水线3D可视化
图8

推动中国制造升级,汽车装配车间生产流水线3D可视化图9

5、汽车零件装配精度

对于每一个要装配的零件,想要通过机械臂将其放到精确的既定位置是非常困难的。任何一个零件装配错位,都会影响最终的显示效果。工位越靠前,影响也越大。以前后悬架为例。如果这两者摆放错位,后续工位依附于他们的其他零件(如轮胎,发动机,传动轴等)也会跟着出现错位。这样最终组装出来的卡车就会失真。

为了解决这个问题,我们使用了两套零组件。其中一套零组件以组装完的形式,由设计师调整到正确位置。另一套散放到各个工位。初始化时,隐藏装配完成的零件,然后在动画执行的过程中,逐渐将每一个零件显示出来。这样就保证了最终拼装完成的卡车各个零组件处于正确的位置。

6、拆分/合并

1)确定所有要拆分的部件。

2)确定每个部件拆分时的平移方向。

3)确定每个部件拆分时要运行的距离。为了拆分后的效果,每个部件应当单独设定。

4)确定每个部件执行拆分动作时的持续时间。这里我们统一使用500ms。

以上信息确认完成之后,在点击拆分按钮时,只需要遍历各个部件,使用方法ht.Default.startAnim() 完成拆分动画。

在执行合并操作时,只需要修改平移方向并重复上述动画,其他参数不变。

推动中国制造升级,汽车装配车间生产流水线3D可视化

总结

本项目以动画的方式向人们展示了一辆卡车的典型组装过程。重点分析了在动画实现过程中的几处关键点。该动画不仅可以用在汽车生产领域,其同样适用于其他行业的生产流水线。作为“智慧工厂”或“智能制造”领域的一环,生产可视化在里面占有重要角色。本项目所有效果均采用 HT 提供的 api 进行代码开发。感兴趣的小伙伴也可以上官网查询更多案例。

2019 我们也更新了数百个工业互联网 2D/3D 可视化案例集,在这里你能发现许多新奇的实例,也能发掘出不一样的工业互联网:https://mp.weixin.qq.com/s/ZbhB6LO2kBRPrRIfHlKGQA

同时,你也可以查看更多案例及效果:https://www.hightopo.com/demos/index.html

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
如何让工业制造拥有更强的“数字内核”?
从车间生产线的人工手动组装到智能机械臂几秒完成所有环节从千里迢迢奔赴现场解决难题到运维平台实时查看设备运行情况工业制造正随着信息化和工业化的深度融合变得更加高效、智能。在“中国制造2025”战略和“工业4.0”浪潮下,云计算、大数据、人工智能等新一代信息技术正在和传统制造业相融合,工业互联网的时代已经到来。今年工业互联网已第五次被写入政府工作报告。五年间,从
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(