Web3D包装生产线 HTML5+Threejs(webgl)开发

news2024/11/14 17:30:11

        生产线三维可视化解决方案就是通过物联网、虚实联动和三维建模等先进技术,以一个3D立体模型展现出来,可以让我们很直观的看到生产线的运作以及对数据的监控。3D运用数据孪生技术可以让工业3D物联网管理系统的界面变得非常的简单易看,并且能够及时的将异常信息传达给监控人员,以便于监控人员在识别到异常信息的时候能够及时解决问题,从而提高监控效率。

引擎加载(引擎场景、灯光、相机)

import * as THREE from '../build/three.module.js';

import { GLTFLoader } from './jsm/loaders/GLTFLoader.js';
import Stats from './jsm/libs/stats.module.js';
import { GUI } from './jsm/libs/dat.gui.module.js';
camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 0.1, 100 );
camera.position.set( 25, 25, 25 );
camera.lookAt( 0, 0, 0 );

//

scene = new THREE.Scene();
scene.background = new THREE.Color( api.backgroundColor );

const pointLight = new THREE.PointLight( 0xAA8899, 0.75 );
pointLight.position.set( 50, - 25, 75 );
scene.add( pointLight );

scene.add( new THREE.HemisphereLight() );

const amount = 100000;
				const radius = 200;

				const positions = new Float32Array( amount * 3 );
				const colors = new Float32Array( amount * 3 );
				const sizes = new Float32Array( amount );

				const vertex = new THREE.Vector3();
				const color = new THREE.Color( 0xffffff );

				for ( let i = 0; i < amount; i ++ ) {

					vertex.x = ( Math.random() * 2 - 1 ) * radius;
					vertex.y = ( Math.random() * 2 - 1 ) * radius;
					vertex.z = ( Math.random() * 2 - 1 ) * radius;
					vertex.toArray( positions, i * 3 );

					if ( vertex.x < 0 ) {

						color.setHSL( 0.5 + 0.1 * ( i / amount ), 0.7, 0.5 );

					} else {

						color.setHSL( 0.0 + 0.1 * ( i / amount ), 0.9, 0.5 );

					}

					color.toArray( colors, i * 3 );

					sizes[ i ] = 10;

				}

				const geometry = new THREE.BufferGeometry();
				geometry.setAttribute( 'position', new THREE.BufferAttribute( positions, 3 ) );
				geometry.setAttribute( 'customColor', new THREE.BufferAttribute( colors, 3 ) );
				geometry.setAttribute( 'size', new THREE.BufferAttribute( sizes, 1 ) );

				//

				const material = new THREE.ShaderMaterial( {

					uniforms: {
						color: { value: new THREE.Color( 0xffffff ) },
						pointTexture: { value: new THREE.TextureLoader().load( "textures/sprites/spark1.png" ) }
					},
					vertexShader: document.getElementById( 'vertexshader' ).textContent,
					fragmentShader: document.getElementById( 'fragmentshader' ).textContent,

					blending: THREE.AdditiveBlending,
					depthTest: false,
					transparent: true

				} );

				//

				sphere = new THREE.Points( geometry, material );
				scene.add( sphere );

生产线仿真

通过Wis3D平台建立生产线数字化模型,动态模拟产线生产过程,快速实现产能验证与产线设计方案的分析并提供优化解决方案。

三维仿真特点:

基于3D生产线规划方案仿真,验证布局方案对产能影响分析

确定生产线极限产能

确定人员需求

仿真确定故障之后生产线的调控应对能力

评估不同生产方案以确定最优最切合实际的方案

确定最合适的生产策略

缓存、设备/人员利用率分析

考虑排产计划、设备OEE、存储区设置以及生产纲领等因素综合评估并给出优化改善建议。

 模型轻量化加载

 <script type="x-shader/x-vertex" id="vertexshader">

			attribute float size;
			attribute vec3 customColor;

			varying vec3 vColor;

			void main() {

				vColor = customColor;

				vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );

				gl_PointSize = size * ( 300.0 / -mvPosition.z );

				gl_Position = projectionMatrix * mvPosition;

			}

		</script>

		<script type="x-shader/x-fragment" id="fragmentshader">

			uniform vec3 color;
			uniform sampler2D pointTexture;

			varying vec3 vColor;

			void main() {

				gl_FragColor = vec4( color * vColor, 1.0 );
				gl_FragColor = gl_FragColor * texture2D( pointTexture, gl_PointCoord );

			}

		</script>

function ( geometry ) {

   geometry.computeVertexNormals();
   geometry.scale( 0.5, 0.5, 0.5 );

   const material = new THREE.MeshNormalMaterial();
   // check overdraw
   // let material = new THREE.MeshBasicMaterial( { color: 0xff0000, opacity: 0.1, transparent: true } );

   mesh = new THREE.InstancedMesh( geometry, material, count );
   mesh.instanceMatrix.setUsage( THREE.DynamicDrawUsage ); // will be updated every frame
   scene.add( mesh );

} );

工厂仿真的价值

通过对整个工厂进行仿真,可以及早发现规划中的缺陷和错误,使工厂规划质量得到保证

通过仿真分析和优化,提高了规划的效率和效果,为公司节约投资资金

预知未来工厂的运行状况和极限能力,确保投资安全有效

加快项目规划进度和减少规划员讨论时间,一方面有效降低人员时间浪费,另外一方面可以有效缩短新工厂从规划到投产的时间

生产线3D物联网监控系统可以运用在一些生产车间、工业设备等的地方,他可以通过物联网感知层采集设备的运行状态数据和即时异常数据,并通过传输层将采集到的数据实时地推送到企业服务器以及网络终端,以此达到一个降低运维成本的目的。

生产线三维可视化可以对生产线进行拆分,并且可以对生产线任何独立设备的3D建模进行快速查找、锁定目标设备,查看设备信息等功能,通过工厂3d可视化管理系统便可以很明确的掌控工厂生产线的资产情况以及提升信息搜寻和管理的效率。

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

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

相关文章

软件测试的新技术和方法

作为一位资深的IT领域博主&#xff0c;我一直在关注软件测试领域的发展趋势。随着技术的不断发展&#xff0c;软件测试领域也在不断更新换代。在本文中&#xff0c;我将分享一些最新的软件测试技术和方法&#xff0c;希望能对广大软件测试工程师提供一些参考。 一、自动化测试…

【教程】保姆级红米AX6000刷UBoot和OpenWrt固件

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 目录 开启SSH 刷入UBoot 刷入Openwrt 设置Openwrt 刷回小米原厂固件 开启SSH 1、下载官方指定版本固件&#xff1a;https://share.qust.me/redmi-ax6000-1.2.8.bin 2、进入路由器后台升级固件&#xff1a;h…

Nginx +Tomcat 负载均衡,动静分离集群

介绍 通常情况下&#xff0c;一个 Tomcat 站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等情况&#xff0c;不能单独应用于生产环境下&#xff0c;所以我们需要一套更可靠的解决方案 Nginx 是一款非常优秀的http服务软件&#xff0c;它能够支持高达 50000 个并发…

IndexedDB的包装器JsStore - 分页功能

JsStore是IndexedDB的包装器。它提供了简单的SQL像api&#xff0c;这是容易学习和使用。IndexedDb查询可以在web worker内部执行&#xff0c;JsStore通过提供一个单独的worker文件来保持这种功能。 由于之前使用IndexedDB时&#xff0c;提供api不太丰富&#xff0c;就自己写了一…

Ubuntu2204安装pycharm社区版

最近在学习人工智能相关的知识&#xff0c;比较流行的开源框架对windows操作系统的支持并不太友好&#xff0c;因此把学习测试的环境搭在了Ubuntu2204上。一开始我都是在win10系统中的pycharm上写python代码&#xff0c;然后再上传到Ubuntu2204中运行测试&#xff0c;这么做降低…

GIS基础概念与开发实践

GIS的应用价值 呈现、还原、规划空间信息数据挖掘、统计分析等等 Q&#xff1a;这么多软件可以做GIS&#xff0c;但是格式又不一样&#xff0c;怎么办&#xff1f;这普需要一个标准的出现。 GIS标准&#xff1a;OGC标准 不同GIS软件对空间数据定义和存储结构不同&#xff0…

远程访问及控制ssh

SSH远程管理 OpenSSH服务器 SSH(Secure Shell) 协议 是一种安全通道协议。主要用来实现字符界面的远程登录、远程复制等功能。对通信数据进行了加密处理&#xff0c;用于远程管理其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性------------&#xff08;同样…

C嘎嘎~~ 【初识C++ 下篇】

初识C 下篇 1.引用1.1引用的概念1.2引用的特点1.3常引用1.4引用使用的场景1.5引用和指针的区别 2.指针空值 --- nullptr3.内联函数3.1 内联函数的概念3.2内联函数的使用场景3.3内联函数的特性 1.引用 1.1引用的概念 相信大家小时候&#xff0c; 肯定有小名、绰号、亲朋好友的昵…

查询提速 20 倍,Apache Doris 在 Moka BI SaaS 服务场景下的应用实践

导读&#xff1a; MOKA 主要有两大业务线 MOKA 招聘&#xff08;智能化招聘管理系统&#xff09;和 MOKA People&#xff08;智能化人力资源管理系统&#xff09;&#xff0c;MOKA BI 通过全方位数据统计和可灵活配置的实时报表&#xff0c;赋能于智能化招聘管理系统和人力资源…

scratch甲壳虫走迷宫 中国电子学会图形化编程 少儿编程 scratch编程等级考试一级真题和答案解析2023年3月

目录 scratch甲壳虫走迷宫 一、题目要求 1、准备工作 2、功能实现 二、案例分析

ESP32学习二-环境搭建(ESP-IDF V5.0,Ubuntu18.4)

一、准备事项 Ubuntu 18.04.5。具体安装可以参考如下链接。使用VMware安装Ubuntu虚拟机和VMware Tools_t_guest的博客-CSDN博客 乐鑫官方也提供了安装的相关操作。有兴趣可以参考。 快速入门 - ESP32 - — ESP-IDF 编程指南 v5.0.1 文档 注&#xff1a;提前说明&#xff0c;因…

Android权限描述

问题 我们常常在写apk的时候申请一些相关权限。想知道每个权限的作用&#xff0c;可以查询权限声明的地方。 1、三方页面&#xff1a; https://manifestdestiny.reveb.la/ 2、源码注释 /frameworks/base/core/res/AndroidManifest.xml <!-- SystemApi TestApi Allows a…

部署 Exsi 7.0.3

文章目录 1. 下载介质2. u盘引导安装启动盘3. 硬件连接4. 安装 EXSI 7.0.3 1. 下载介质 下载 VMware-VMvisor-Installer-7.0U3l-21424296.x86_64.iso 安装 EXSI 7.0.3 可参考: https://www.dinghui.org/vmware-iso-download.html 2. u盘引导安装启动盘 工具 https://www.v…

fitlog使用教程(持续更新ing...)

诸神缄默不语-个人CSDN博文目录 fitlog包是用于自动版本管理和自动日志记录的Python包&#xff0c;是fastNLP团队开发的。 fitlog 中文文档 — fitlog 文档 他们团队的文档写的真的不行&#xff0c;崩溃&#xff0c;FastNLP也很难用&#xff0c;fitlog也很难用&#xff0c;中…

数据库系统概论--第四章课后习题

1.什么是数据库的安全性&#xff1f; 答&#xff1a; 数据库安全&#xff0c;是指以保护数据库系统、数据库服务器和数据库中的数据、应用、存储&#xff0c;以及相关网络连接为目的&#xff0c;是防止数据库系统及其数据遭到泄露、篡改或破坏的安全技术。 数据库安全与一般应…

超级国际象棋:第二个里程碑已完成

获取Cartesi资助的项目的最新进展&#xff0c;现在将完全去中心化的Web3国际象棋带到你的手中 “Ultrachess是一个完全基于区块链的国际象棋应用程序&#xff0c;由Cartesi Rollup技术支持&#xff0c;允许用户将真实价值投入到比赛中&#xff0c;不仅仅是他们的Elo分数。 此…

Controller里面的重定向无法跳转网址

Controller里面的重定向无法跳转网址时&#xff0c;需要在要跳转的页面地址前面加上tomcat里面的本项目的总网址&#xff0c;如下图所示

代码随想录之平衡二叉树

本题思路是针对高度&#xff0c;只不过是判断高度之差的绝对值是否大于1罢了&#xff0c;这里引入特殊变量-1用来说明不是平衡二叉树 如果左右子节点对应的子树有一个不是平衡二叉树就一直-1返回到头了。 只有全是平衡二叉树时才正常运行完。 class Solution { public:int tra…

Windows 下 GitKraken 6.5.1免费版本安装

文章目录 1. 安装 6.5.1 版本2. 更换快捷方式3. 登录 用过 GitKraken 都说好&#xff0c;不过&#xff0c;GitKraken 从 6.5.3 版本开始收费&#xff0c;它的最后一个免费版本是 6.5.1 &#xff0c;当你使用收费版本而又未付费时&#xff0c;使用 GitKranken 将无法打开私有仓库…

【学习资源】终身机器学习之增量学习

从机器学习存在的问题谈起&#xff0c;介绍增量学习可以解决怎样的问题&#xff0c;增量学习的类别&#xff0c;实现增量学习的方法&#xff0c;增量学习的评价指标和常用数据集&#xff0c;类别增量学习典型方法和代码库以及参考资源&#xff0c;希望能帮助大家用增量学习提高…