【数字孪生】从Abaqus到Unity有限元应力云图

news2024/11/19 21:13:33

从abaqus到unity:

目录

1. 数据准备

1.1 abaqus中提取element rpt文件 

element rpt文件格式:

1.2 abaqus中提取node rpt文件:

node rpt文件格式:

2. python预处理以上数据:

2.1 提取node rpt中的节点坐标及应力值

2.2 提取element rpt中的单元信息

 2.3 将以上信息写入obj文件

3. 在unity中添加obj 并挂载shader和material

显示效果:


1. 数据准备

1.1 abaqus中提取element rpt文件 

在probe中选择element,输出单元类型及连接节点信息

element rpt文件格式:

abaqus默认单元类型为C3D8R,为六面体网格,含有8个节点

其中C3D8R单元nodes的排列方式如下,其他类型单元nodes排列方式:单元信息Three-dimensional solid element library (mit.edu)

1.2 abaqus中提取node rpt文件:

 在probe中选择node,输出节点坐标及应力值

node rpt文件格式:

2. python预处理以上数据:

2.1 提取node rpt中的节点坐标及应力值

2.2 提取element rpt中的单元信息

 其中C3D8R单元nodes的排列方式如下,其他类型单元nodes排列方式:单元信息Three-dimensional solid element library (mit.edu)

每个面切分为多个三角形,按逆时针排列节点顺序:

以以上单元face3为例:

三角1:1,2,6

三角2:1,6,5

整个单元划分为12个三角面

参考博客:从有限元到Unity——从abaqus网格模型文件到Unity模型数据_怎么把有限元结果与unity结合-CSDN博客

 2.3 将以上信息写入obj文件

文件包含:

节点坐标,材质信息,顶点法线,面信息

v;vt;vn;f

obj文件示例:

v -0.500000 -0.500000 0.500000

v 0.500000 -0.500000 0.500000

v -0.500000 0.500000 0.500000

v 0.500000 0.500000 0.500000

v -0.500000 0.500000 -0.500000

v 0.500000 0.500000 -0.500000

v -0.500000 -0.500000 -0.500000

v 0.500000 -0.500000 -0.500000

vt 0.000000 0.000000

vt 0.1 0.000000

vt 0.2 0

vt 0.3 0

vn 0.000000 0.000000 1.000000

vn 0.000000 0.000000 1.000000

vn 0.000000 0.000000 1.000000

vn 0.000000 0.000000 1.000000

vn 0.000000 1.000000 0.000000

vn 0.000000 1.000000 0.000000

vn 0.000000 1.000000 0.000000

vn 0.000000 1.000000 0.000000

vn 0.000000 0.000000 -1.000000

vn 0.000000 0.000000 -1.000000

vn 0.000000 0.000000 -1.000000

vn 0.000000 0.000000 -1.000000

vn 0.000000 -1.000000 0.000000

vn 0.000000 -1.000000 0.000000

vn 0.000000 -1.000000 0.000000

vn 0.000000 -1.000000 0.000000

vn 1.000000 0.000000 0.000000

vn 1.000000 0.000000 0.000000

vn 1.000000 0.000000 0.000000

vn 1.000000 0.000000 0.000000

vn -1.000000 0.000000 0.000000

vn -1.000000 0.000000 0.000000

vn -1.000000 0.000000 0.000000

vn -1.000000 0.000000 0.000000


f 1/1/1 2/2/2 4/4/3 3/3/4

f 3/3/5 4/4/6 6/1/7 5/2/8

f 5/3/9 6/3/10 8/3/11 7/3/12

f 7/4/13 8/4/14 2/4/15 1/4/16

f 2/2/17 8/4/18 6/4/19 4/4/20

f 7/3/21 1/1/22 3/3/23 5/2/24

3. 在unity中添加obj 并挂载shader和material

shader文件示例:

Shader"Custom/beam"
{
    Properties
    {
        
        //2D贴图
        _Texture2D ("Texture2D", 2D) = ""{}
        
        

    }
    SubShader
    {
        Pass
        {
            CGPROGRAM
            // 声明vert函数为顶点着色器
            #pragma vertex vert
            // 声明frag函数片元着色器
            #pragma fragment frag

            //需要使用以上变量,在CG程序中重新声明
            
            sampler2D _Texture2D;
            

            //结构体,用于传递应用程序到顶点函数、顶点函数到片元函数
            //应用程序到顶点函数结构体
            struct a2v
            {
                float4 vertex : POSITION;//将模型空间的顶点坐标填充给vertex
                float3 normal : NORMAL;//将模型空间的法线方向填充给normal
                float2 texcoord : TEXCOORD;//将第一套纹理坐标填充给texcoord
            };
            //顶点函数到片元函数结构体
            struct v2f
            {
                float4 position : SV_Position;
                float3 color : COLOR;
                float2 texcoord : TEXCOORD;
            };
            //顶点函数
            v2f vert(a2v v)
            {
                v2f f;
                f.position = UnityObjectToClipPos(v.vertex);//顶点坐标从模型空间到剪裁空间的转换
                f.texcoord = v.texcoord;
                
                
                return f;
            }
            
            fixed4 frag(v2f i) : SV_Target
            {
                fixed4 col = tex2D(_Texture2D, i.texcoord);
                
                return col;
            }
            ENDCG
        }
    }
    FallBack "Diffuse"
}

显示效果:

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

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

相关文章

一次需升级系统的wxpython安装(macOS M1)

WARNING: The scripts libdoc, rebot and robot are installed in /Users/用户名/Library/Python/3.8/bin which is not on PATH. 背景:想在macos安装Robot Framework ,显示pip3不是最新,更新pip3后显示不在PATH上 参看博主文章末尾 MAC系统…

MySQL45讲 第二十五讲 高可用性深度剖析:从主备原理到策略选择

文章目录 MySQL45讲 第二十五讲 高可用性深度剖析:从主备原理到策略选择一、MySQL 主备基础原理(一)主备关系与数据同步(二)主备切换流程 二、主备延迟分析(一)主备延迟的定义与计算&#xff08…

跨越网络边界:IPv6与零信任架构的深度融合

2024年,工信部发布了《关于开展“网络去NAT”专项工作 进一步深化IPv6部署应用的通知》,加速了国内网络由IPv4向IPv6的转型步伐。未来,各行各业将逐步去NAT,逐步向IPv6迁移。在此过程中,网络安全解决方案和产品能力将面…

Linux—ln(link files)命令使用方法(How to create links on Linux)

Linux—ln(link files)命令使用方法 在 Linux 系统中工作时,需要在不同的目录中使用相同的文件时,不必在每个目录下都复制一份文件,这样不仅浪费磁盘空间,还会导致文件管理上的混乱。 ln(link files) 便是…

我要成为算法高手-位运算篇

目录 1. 判断字符是否唯一2. 消失的数字3. 两整数之和4. 只出现一次的数字II5. 消失的两个数字 前情提要:如果对一些常见的二进制位运算不熟悉,请看这篇文章: 常见的位运算 1. 判断字符是否唯一 面试题 01.01. 判定字符是否唯一 - 力扣&…

1Panel 推送 SSL 证书到阿里云、腾讯云

本文首发于 Anyeの小站,点击链接 访问原文体验更佳 前言 都用 CDN 了还在乎那点 1 年证书钱么? 开句玩笑话,按照 Apple 的说法,证书有效期不该超过 45 天。那么证书有效期的缩短意味着要更频繁地更新证书。对于我这样的“裸奔”…

23种设计模式-访问者(Visitor)设计模式

文章目录 一.什么是访问者模式?二.访问者模式的结构三.访问者模式的应用场景四.访问者模式的优缺点五.访问者模式的C实现六.访问者模式的JAVA实现七.代码解释八.总结 类图: 访问者设计模式类图 一.什么是访问者模式? 访问者模式(…

JavaScript——DOM编程、JS的对象和JSON

一、DOM编程 DOM(Document Object Model)编程:就是使用document对象的API,完成对网页HTML文档进行动态修改,以实现网页数据,和样式动态变化效果的编程。 (一)DOM获取元素的多种方法 1.查找元素的函数 getElementById("id值…

Pr:音频过渡

Adobe Premiere Pro 自带一组共三个音频过渡 Audio Transitions效果。 对音频剪辑之间应用交叉淡化 Crossfade过渡,操作方式类似于应用视频过渡效果。 对于交叉淡化,要保证前剪辑的出点之后及后剪辑的入点之前有足够的预留内容(也称“手柄”&…

大数据-226 离线数仓 - Flume 优化配置 自定义拦截器 拦截原理 拦截器实现 Java

点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! 目前开始更新 MyBatis,一起深入浅出! 目前已经更新到了: Hadoop&#xff0…

stm32启动过程解析startup启动文件

1.STM32的启动过程模式 1.1 根据boot引脚决定三种启动模式 复位后,在 SYSCLK 的第四个上升沿锁存 BOOT 引脚的值。BOOT0 为专用引脚,而 BOOT1 则与 GPIO 引脚共用。一旦完成对 BOOT1 的采样,相应 GPIO 引脚即进入空闲状态,可用于…

如何在项目中用elementui实现分页器功能

1.在结构部分复制官网代码&#xff1a; <template> 标签: 这是 Vue 模板的根标签&#xff0c;包含所有的 HTML 元素和 Vue 组件。 <div> 标签: 这是一个普通的 HTML 元素&#xff0c;包裹了 el-pagination 组件。它没有特别的意义&#xff0c;只是为了确保 el-pagi…

15-大模型 RAG 经验篇

一、LLMs 已经具备了较强能力了&#xff0c;存在哪些不足点? 在 LLM 已经具备了较强能力的基础上&#xff0c;仍然存在以下问题&#xff1a; 幻觉问题&#xff1a;LLM 文本生成的底层原理是基于概率的 token by token 的形式&#xff0c;因此会不可避免地产生"一本正经…

数据结构-二叉树及其遍历

🚀欢迎来到我的【数据结构】专栏🚀 🙋我是小蜗,一名在职牛马。🐒我的博客主页​​​​​​ ➡️ ➡️ 小蜗向前冲的主页🙏🙏欢迎大家的关注,你们的关注是我创作的最大动力🙏🙏🌍前言 本篇文章咱们聊聊数据结构中的树,准确的说因该是只说一说二叉树以及相…

Iview DatePicker 仅允许选择当前月份及以后的月份

iview DatePicker之前月份禁用且下月可用 html代码 <DatePicker type"month" :options"options4" :value"dialogForm.estimatedStartTimeWithCreate" on-change"monthTime($event, loadDateStart)" placeholder"请选择时间&q…

r-and-r——提高长文本质量保证任务的准确性重新提示和上下文搜索的新方法可减轻大规模语言模型中的迷失在中间现象

概述 随着大规模语言模型的兴起&#xff0c;自然语言处理领域取得了重大发展。这些创新的模型允许用户通过输入简单的 "提示 "文本来执行各种任务。然而&#xff0c;众所周知&#xff0c;在问题解答&#xff08;QA&#xff09;任务中&#xff0c;用户在处理长文本时…

【GPTs】Ai-Ming:AI命理助手,个人运势与未来发展剖析

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | GPTs应用实例 文章目录 &#x1f4af;GPTs指令&#x1f4af;前言&#x1f4af;Ai-Ming主要功能适用场景优点缺点 &#x1f4af;小结 &#x1f4af;GPTs指令 中文翻译&#xff1a; defcomplete_sexagenary&#xff08;年&a…

ubuntu24.04网卡配置

vim /etc/netplan/01-netcfg.yaml /24表示子网掩码的长度。这种表示法称为CIDR&#xff08;无类别域间路由&#xff09;记法。CIDR记法将IP地址和它们的子网掩码合并为一个单一的值&#xff0c;其中斜杠/后面的数字表示子网掩码中连续的1的位数。 对于/24&#xff1a; 24表示…

【linux】如何扩展磁盘容量(VMware虚拟机)-转载

如何扩展磁盘容量(VMware虚拟机) 一、前置准备工作 扩展虚拟机磁盘前&#xff0c;需要先把虚拟机关机才能进行扩展磁盘操作 1.选择虚拟机设置&#xff0c;如下图所示 2.输入你想扩展的磁盘容量&#xff0c;以本次实操为例&#xff0c;我这里输入的30G&#xff08;具体按照实…

python 数据类型----可变数据类型

一、list列表类型&#xff1a; 一种有序集合&#xff0c;里面有多个数据用逗号隔开&#xff0c;可以对数据进行追加、插入、删除和替换&#xff1b;使用[]标识&#xff0c;可以包含任意数据类型 登录后复制 # 字符串类型列表 names[bill,may,jack]#整数型列表 numbers [1,2,34…