0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

手把手教你编写白车身扭转工况ANSA二次开发程序

8XCt_sim_ol 来源:仿真秀App 作者:ANSA攻城狮 2022-12-09 14:04 次阅读

导读:在我推出的《ANSA二次开发从入门到精通》这门课程中从几何检查到网格划分,再到常见连接(螺栓、焊点、焊线、胶粘),最后到界面设计给大家全面的讲解了ANSA二次开发中常用的函数及用法,也通过代码+实例的方法逐步带大家学习相关知识。但是大家有许多同学也是刚开始接触ANSA二次开发,所以我们在课程中的例子还是比较简单的,想在工程实际应用还需要多进行练习,但是也无非是课程中的知识的组合。

作为一名汽车仿真工程师做得最多的就是汽车相关工况的二次开发,本文就用一个最常见的白车身扭转工况来带大家再次领略ANSA二次开发的魅力,后期也会有更多针对工程实例的课程、文章,欢迎大家关注我的仿真秀专栏-ANSA攻城狮

一、认识白车身扭转工况

首先介绍一下白车身扭转工况的具体加载、约束以及结果读取吧。

1、加载

扭转顾名思义需要在车身上加载一个扭矩,主流主机厂的仿真方法是在车身减震器安装点位置左右分别施加两个相反的力。如下图所示

d3c9b556-76e1-11ed-8abf-dac502259ad0.png

2、约束

为了保证在加载过程中车身不会发生刚体位移,我们需要施加约束。通常是在车身后部减震器安装点位置约束1-3方向自由度,有的主机厂还会在保险杠中部约束一个点的3方向自由度。

3、结果读取与计算

不同企业的计算方法不同,这里选取一个比较主流的车身扭转刚度计算方法

读取前减震器z向位移Z1,Z2(单位m)。扭矩为T(单位N.m),前左右安装点距离为D(单位m),车身扭转刚度计算公式为:

d3e004b4-76e1-11ed-8abf-dac502259ad0.png

最终计算出来的扭转刚度单位为:N.m/deg

二、编程思路

d4072d82-76e1-11ed-8abf-dac502259ad0.png

首先创建一个界面用于和用户进行交互。

d428ade0-76e1-11ed-8abf-dac502259ad0.png

点击选点按钮后用户选择前后减震器安装点,软件会自动通过位置判断每个选点的位置,然后为其创建对应的集合

点击创建模型按钮后,软件会自动根据模型里面的集合来创建载荷以及约束。这样做的好处就是下次在使用之前已经选点好的模型进行白车身扭转刚度分析,只需要点击“创建模型”按钮就可以直接创建模型,而无需再次选点。

界面很简单,但是已经能够实现基本的功能,大家也可以在此基础上增加组件,实现更加复杂的交互功能。由于篇幅有限这里只进行最基础功能的实现,更加复杂的功能与丰富的工程实例请大家继续关注我后期的课程与文章。

总结下来我们一共要建立三个函数:

1.搭建GUI界面的函数

2.允许用户界面中选点的函数

3.创建载荷、约束、Header的函数

三、代码编写实操

接下来我们开始编写代码

1、界面搭建

首先导入必要的库

d447c46e-76e1-11ed-8abf-dac502259ad0.png

接下来创建一个简单的界面,对代码不熟悉的同学请自行查看帮助文档或者跟着《ANSA二次开发从入门到精通》课程系统学习

d45e6444-76e1-11ed-8abf-dac502259ad0.png

这里面我们先把选点的函数SelectNode以及创建模型的函数CreateHeader创建出来,这样子才能显示出界面

d4a4f72e-76e1-11ed-8abf-dac502259ad0.png

2、用户选点

这里给大家讲解一下具体代码的变成思路

下面这段代码是允许用户选点,并且根据位置来判断选取的点是前后减震器中的哪一个并创建对应的集合,其中还加了一些逻辑判断。

d4c41b68-76e1-11ed-8abf-dac502259ad0.png

这段代码中由四部分逻辑相同的部分,这里拿出来其中一部分进行讲解

d5237324-76e1-11ed-8abf-dac502259ad0.png

(1)PickEntities()是允许用户在界面中选择节点的函数,用户可以选择四个减震器安装点中任意几个。

(2)接下来通过.position的类属性来判断改点所在位置,并进行对应集合的创建。

(3)然后通过GetEntity来获取集合,如果存在我们就用已经存在的集合,并且将集合中的点通过CollectEntities()搜集起来,再通过RemoveFromSet()将集合中的点移除集合;不存在我们就使用CreateEntity()创建一个新的集合。

这样做是为了我们在已经存在集合(之前选取过点)的模型中重新选点时能够使用新选择的点来覆盖旧的点,增加程序的灵活性。当然了我们每个位置点所建立的Set是有固定的ID的,这样子方便索引

(4)最后就是将这个点通过AddToSet()来储存到几何中进行位置判断时大家根据自己模型中的全局坐标系进行判断就好,我这里的全局坐标系如下图所示:

d5485b58-76e1-11ed-8abf-dac502259ad0.png

进行到这里大家可以测试一下程序能否正常运行,效果就是这样的

我们在第一次选择时会创建新的Set来装每个减震器安装点的节点,第二次选择时则会覆盖之前集合中的节点。见下视频:

3、创建Header

代码如下:

d57a05ae-76e1-11ed-8abf-dac502259ad0.png

(5)首先通过GetEntity()获取四个减震器安装点储存的集合

(6)然后我们判断一下集合是否为空,如果为空我们弹出对话框提示用户“请检查约束点及加载点集合”

d6083522-76e1-11ed-8abf-dac502259ad0.png

(7)集合不为空,我们搜集集合中的节点,使用变量储存

(8)使用CreateEntity分别创建Force及SPC

(9)最后使用CreateEntity创建Header,使用SetNastranHeader来设置Header中的内容,进行求解

效果如下:

到这里我们的程序就写完了,其实其中还可以增加很多的逻辑判断来增强我们程序的容错率,不要出现错误就异常退出,比如说判断集合中的节点数是否为1,如果节点数多余1说明这个集合有问题,这时候可以提示用户检查集合。再比如还可以增加在创建完Header后让用户选择路径输出计算文件。这里大家就自由发挥想象。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真
    +关注

    关注

    50

    文章

    4073

    浏览量

    133559
  • Sansa
    +关注

    关注

    0

    文章

    4

    浏览量

    2512
  • 开发程序
    +关注

    关注

    0

    文章

    4

    浏览量

    1457

原文标题:手把手教你编写白车身扭转工况ANSA二次开发程序

文章出处:【微信号:sim_ol,微信公众号:模拟在线】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    手把手教你构建一个完整的工程

    手把手教你构建一个完整的工程
    发表于 08-03 09:54 33次下载
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>构建一个完整的工程

    手把手教你写批处理-批处理的介绍

    手把手教你写批处理-批处理的介绍
    发表于 10-25 15:02 69次下载

    AutoCAD的二次开发

    AutoCAD的二次开发 AutoCAD的二次开发主要涉及以下内容:(1) 编写各种用户自定义函数并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL
    发表于 02-14 16:59 1819次阅读

    美女手把手教你如何装机(中)

    美女手把手教你如何装机(中) 再来是硬碟的部份,这款机壳还不错,可以旋转支架~
    发表于 01-27 11:14 1463次阅读

    美女手把手教你如何装机(下)

    美女手把手教你如何装机(下) 接著下来就是今天的重头戏,开核萝!~
    发表于 01-27 11:16 2923次阅读

    AutoCAD VBA二次开发教程

    AutoCAD VBA二次开发教程,学习二次开发的顶起
    发表于 11-02 16:16 0次下载

    手把手教你安装Quartus II

    本章手把手把教你如何安装 Quartus II 软件 ,并将它激活 。此外 还有USB -Blaster下载器的驱动安装步骤 。
    发表于 09-18 14:55 9次下载

    手把手教你在家搭建监控系统

    手把手教你在家搭建监控系统
    发表于 01-17 19:47 25次下载

    手把手教你做电子时钟---前言

    手把手教你做彩铃电子时钟
    发表于 11-14 16:53 11次下载

    手把手教你如何开始DSP编程

    手把手教你如何开始DSP编程。
    发表于 04-09 11:54 12次下载
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>如何开始DSP编程

    手把手教你学LabVIEW视觉设计

    手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视
    发表于 03-06 01:41 3130次阅读

    手把手教你玩USB开发资料汇总第部分

    手把手教你开发—USB开发板资料,B站有视频教程
    发表于 09-09 15:50 22次下载

    手把手教你开关电源PCB排板

    手把手教你开关电源PCB排板(新型电源技术)-分享一下开关电源PCB排板的基本要点及分析,以及例子讲解。绝对的手把手
    发表于 09-18 12:27 57次下载
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>开关电源PCB排板

    手把手教你开发基于单片机的wifi通信的物联网项目(远程灯控制)

    手把手教你开发基于单片机的wifi通信的物联网项目(远程灯控制)
    发表于 11-12 19:36 18次下载
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b><b class='flag-5'>开发</b>基于单片机的wifi通信的物联网项目(远程灯控制)

    手把手教你学FPGA仿真

    电子发烧友网站提供《手把手教你学FPGA仿真.pdf》资料免费下载
    发表于 10-19 09:17 2次下载
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>学FPGA仿真