首页 > 其他分享 >HyperWorks变形域和控制柄方法

HyperWorks变形域和控制柄方法

时间:2024-11-28 11:44:13浏览次数:8  
标签:控制 变形 网格 HyperWorks 整体 domains 方法 节点

变形域和控制柄方法

使用变形域和控制柄方法进行网格变形时,网格模型被分割成若干个变形子域,位于变形域上的控制柄常常用来控制变形域形状的变化。当控制柄移动时,变形域的形状随之变化,进而影响变形域内部节点位置的分布。变形过程中,网格以一种合乎逻辑的方式变化,即靠近移动控制柄的节点位置变化量大,靠近静止控制柄的节点位置变化量小。处在移动和静止的控制柄之间的网格通过拉伸和压缩过程来向着预期的形状变化。

每个节点相对控制柄的运动量是通过内部计算的影响参数来控制的。有时,计算影响系数需要花费很长时间,但这些影响系数一旦计算完毕,它们会存储起来并立即作用到网格模型上。因此,当控制柄和变形域设置好后,HyperMorph 会花费一定的时间(与变形域的尺寸有关)计算这些控制柄的影响系数。然后在移动控制柄变形网格时就不再需要进行计算,因而实际的变形过程很快就会实现。这种方法的好处就是可以交互式的实现网格变形,即使对大规模的模型,依然有效。

当处理较大规模的变形域时,计算影响因子的过程是非常耗费机时的。对于包含超过 50000 个单元(当然,这个数目可以更改)的变形域来说,HyperMorph 将调用大变形域求解器。大变形域求解器在处理大规模变形域时速度较快,但美中不足的是需要用户在每次网格变形操作时都要启动,因而减缓了网格变形过程。然而,计算大规模变形域影响因子的过程是非常缓慢而且极占内存的,所以在此情况下,大变形域求解器是非常适用的。

通常下,变形域和控制柄分为两组:整体变形域和局部变形域。每个整体变形域与若干个整体控制柄相关联。整体控制柄只会影响到与其相关联的整体变形域内部的节点。整体变形域和整体控制柄在处理大规模网格变形问题时优势较为明显。

局部变形域可以分为五类:一维变形域(1D domains)、二维变形域(2D domains)、三维变形域(3D domains)、边界变形域(edge domains)及通用变形域(general domains)。每个局部变形域与若干个局部控制柄相关联。局部控制柄采用小尺度、参数化的形式实现网格变形。一个网格模型中可以同时包含整体变形域和局部变形域,因而可以实现不同尺度的网格变形操作。一般来说,同时创建两种类型的变形域和控制柄是不必要的。图 7-3 给出了各类变形域的定义方式及在 HyperMesh 前处理界面下的图标。

 

 

图 7-3 变形域图标

 变形体方法

通过 HyperMorph 的变形体功能,用户可以将整个有限元模型封装至一个拥有八个顶点的六面体空间中,并对其进行各类网格变形操作。完成了封装后,用户可以针对该空间的各个顶点,边和表面进行变形操作,例如移动顶点,将直线边改为曲线边,或将平面改为曲面的方式,对变形域的形态进行改变,进而间接影响到模型的网格形态。多个相邻的 Morph Volume 还可以被连接到一起,实现整体协调变形。通过对被安置在变形域各个顶点的控制柄的位置改变,从而实现功能强大的网格变形工作。

通过体网格变形技术进行网格变形时,仅会影响到位于该变形域内的所有节点。相应的,针对节点与变形域间的关系,用户既可以在节点创建时,即选择其所从属的变形域,亦可在后续工作的任何阶段,将新的节点添加到已有的变形域中。

  

 图 7-4 体网格变形示例

 

标签:控制,变形,网格,HyperWorks,整体,domains,方法,节点
From: https://www.cnblogs.com/icae/p/18573986

相关文章

  • 【人人都能学得会的NLP - 文本分类篇 01】使用ML方法做文本分类任务
    【人人都能学得会的NLP-文本分类篇01】使用ML方法做文本分类任务NLPGithub项目:NLP项目实践:fasterai/nlp-project-practice介绍:该仓库围绕着NLP任务模型的设计、训练、优化、部署和应用,分享大模型算法工程师的日常工作和实战经验AI藏经阁:https://gitee.com/faste......
  • [C语言]使用联合体和结构体 巧妙处理寄存器数据上位机读写的方法
    最近有在研究陀螺仪,里面就有对不同寄存器做配置,然后在读取一定地址的寄存器数据;发现这种逻辑工程上经常有;但是我接触到的代码基本都是通过一大堆宏定义去给他们寄存器地址命名,然后再自己读手册去搞配置;其实在性能上这个操作挺好的,但是我们似乎也没那么在意这几十个字......
  • getElementById和querySelector方法的区别是什么?
    getElementById和querySelector都是JavaScript中用于选择HTML元素的方法,但它们之间有一些关键区别:1.选择方式:getElementById:通过元素的ID来选择元素。HTML中的ID必须是唯一的,因此getElementById总是返回单个元素(或者null,如果找不到该ID)。这是获取特定......
  • 实时行情数据源接口websocket接入方法
    首先获取以下产品的代码:外汇国际期货国际期货国内期货国际金银数字货币股指期货 取到产品代码后,websocket就可以连接了。将产品代码推送到连接的服务器,服务器会实时推送最新的行情数据产品代码 :恒指期货HSI德指期货DAX英镑美元fx_sgbpusd欧元美元fx_seurusd ......
  • 用js实现一个轮播图,并简述有哪些实现的方法
    //方法一:使用CSStransitions和JavaScript控制constcarousel=document.querySelector('.carousel');constslides=Array.from(carousel.querySelectorAll('.slide'));constprevButton=document.querySelector('.carousel-prev');con......
  • stopPropagation()和preventDefault()这两个方法有什么区别?
    stopPropagation()和preventDefault()是JavaScript中用于事件处理的两个重要方法,它们的主要区别在于它们针对事件的不同方面:stopPropagation()阻止事件冒泡:当一个元素上的事件被触发时,例如点击一个按钮,该事件会沿着DOM树向上冒泡,触发其父元素、祖先元素上的相同事件......
  • 用css给一个元素加边框有哪些方法?
    在CSS中,您可以使用多种方法为元素添加边框。以下是一些常见的方法,并附带示例:1.border简写属性:这是最常用的方法,它允许您在一个声明中设置边框的宽度、样式和颜色。border:2pxsolidred;/*2px宽的红色实线边框*/这个简写属性等同于分别设置border-width、border-s......
  • js对象和类型化制数组互相转换的方法
    js对象和类型化数组互相转换的方法//对象转化为类型化数组functionjsonToTypedArray(obj){constjsonString=JSON.stringify(obj)constencodedString=encodeURIComponent(jsonString)letbase64=btoa(encodedString)constencoder=newTe......
  • java小白入门学习之---类变量和类方法
    一、类变量(静态变量/静态属性)1.什么是类变量?类变量也叫静态变量/静态属性,是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量类变量在类加载时就初始化了(所以即使没有创建对象,只要类加载......
  • insmod一个ko提供基础函数供后insmod的ko使用的方法
    一、背景在内核模块开发时,多个不同的内核模块,有时候可能需要都共用一些公共的函数,比如申请一些平台性的公共资源。但是,这些公共的函数又不方便去加入到内核镜像里,这时候就需要把这些各个内核模块需要用到的一些公共的函数做到一个ko里,先insmod,这样后insmod的内核模块就可以使......