ansys mechanical 脚本编写

2024-03-07 22:18
文章标签 编写 脚本 ansys mechanical

本文主要是介绍ansys mechanical 脚本编写,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.打开脚本编辑功能

2.脚本编辑器和立即窗口(shell)

3.窗口中可使用的快捷键:

4.获取变量的值

5.脚本录制

 6.获取变量或方法说明

7.使用Tree变量访问树状图!!重要

访问几何:

访问具体集合零部件:

更改零件材料:

为零部件新建网格划分方法:

获取部件/面/边/节点的ID的方法(shell操作):

​获取当前选中对象的访问路径:

 罗列所有当前对象可访问的子对象:

 为选中的面施加压力:

为选中的物体施加落差:


1.打开脚本编辑功能

2.脚本编辑器和立即窗口(shell)

3.窗口中可使用的快捷键:

脚本窗口Ctrl+F5,运行脚本

shell窗口:ctrl+↑或者↓,复制过往命令

回车运行命令,键入clear回车可以清空shell窗口,但过往命令所产生的作用仍旧存在,这个按键可实现同样功能

shift+回车,新插入一行(仍为同一个命令行)

 

变量后小数点.,弹出自动填充窗口,还会有相关属性/方法的简要介绍,挺好用的,使用上下键+回车选中自动填充,esc关闭自动填充窗口

此外,自动填充窗口可以帮助我们检查键入的代码是否正确,如果键入小数点后没有自动填充窗口出现,我们就要回看,是否变量名的拼写、大小写,或是其他地方出现了问题

ctrl+space,重新打开自动填充窗口(我电脑上的被输入法占用了,没试成功)

ctrl+i,打开脚本帮助窗口,可选中自动插入格式化代码,例如函数定义:

def fname(`indent('.') ? 'self' : ''`):
    """docstring for fname"""
    # TODO: write code...

4.获取变量的值

shell输入变量名+回车,这里获取了节点数,或者直接print(mesh_size)也是同样的结果

5.脚本录制

打开录制功能后在GUI界面进行操作,会在脚本编辑区域自动生成代码,这部分功能ansys还未完善,不过很多操作已经可以实现了

亲测生成的代码需要在开头加上#coding=utf-8的编码说明才可以使用,而我试用的材料赋予,生成的material代码自己运行的时候没成功,把引号内内容换成具体的材料名即可,例如:Structural Steel

 6.获取变量或方法说明

help(需要询问的模块或方法),例如:help(DataModel.GetObjectById)

7.使用Tree变量访问树状图!!重要

树状图指这个,也即我们模型几乎所有数据存放的地方,所以你知道Tree有多重要了

用例:

 Tree.ActiveObjects #返回目前激活的模块

Tree.Filter(name="wheel")#调用树状图的筛选功能,可按照名称、状态、标签、可见性、类型、模型等方式筛选,例如这里我查找名为wheel的内容

 

 

 访问树状图中成员的方法:

访问几何:

geometry = DataModel.Project.Model.Geometry

另一种访问方法:geometry = Model.Children[0]#but,我们找到反过来访问Father的方法

访问具体集合零部件:

geometry_wheel = geometry.Children[0]

更改零件材料:

geometry_wheel.Material = "Plastic, PA6"#这里我更改了部件wheel的材料

为零部件新建网格划分方法:

mesh = DataModel.Project.Model.Mesh

auto_mesh_method = mesh.AddAutomaticMethod()

selection = ExtAPI.SelectionManager.CreateSelectionInfo(SelectionTypeEnum.GeometryEntities)

selection.Ids = [7172]#这里我是通过录制得到的零件Id,还没弄懂为何几何的编号放在这里不能

#用,(会显示该对象只读read only)

auto_mesh_method.Location = selection #选中了一个零部件

auto_mesh_method.Method = MethodType.AllTriAllTet#网格划分方法设置为全四面体划分

mesh.GenerateMesh()#划分网格

获取部件/面/边/节点的ID的方法(shell操作):

ExtAPI.SelectionManager.CurrentSelection.Ids#OK,这里我解决了前面的疑问 ,但是,当我们更改模型后ID多半会跟着改变,问题实际上没有得到解决,不过在单个模型的自动仿真代码编写上还是十分有用的

获取当前选中对象的访问路径:

这可以方便我们在编写代码时找到需要访问的对象,而不是从树状图上从上往下傻傻的数(还可能数错hhh)

Tree.GetPathToFirstActiveObject()#这里我选中的是几何中的第一个部件,第二处我选择了网格里我新建的第一个方法

 

 罗列所有当前对象可访问的子对象:

geometry.VisibleProperties

 为选中的面施加压力:

选中面,为其命名

selection_face = DataModel.GetObjectsByName("p")#选中面(这里得到的是一个数组)

pressure = DataModel.AnalysisList[0]#访问求解对象

my_pressure = pressure.AddPressure()#新建压力对象

my_pressure.Location = selection_face[0]#压力压在选中的面上

my_pressure.Magnitude.Output.DiscreteValues=[Quantity('1[MPa]')]#设置压力的值

为选中的物体施加落差:

selection_wheel = DataModel.GetObjectsByName("w")#与前相同,这里对象是一个块儿

chushitiaojian = Model.Analyses[0].Children[0]#访问初始条件,这里英语摆烂了hhh

mydrop = chushitiaojian.InsertDropHeight()

mydrop.Location = selection_wheel[0]

mydrop.DropHeight = Quantity('3[m]')

mydrop.DropDirection = DropDirection.NegativeZ#其实过程基本是一样的

这篇关于ansys mechanical 脚本编写的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/785015

相关文章

UE3脚本UnrealScript UC语法点滴

持续更新 目录 类定义修饰符  1.dependson(CLASSNAME) 2.config(ININAME) 3.native 4.notplaceable 5.inherits(CLASSNAME1[,CLASSNAME2,...]) 类对象实例创建 类默认属性设置 变量 1.声明 var local 2.修饰符 config  3.array 类型变量 以及

【青龙面板辅助】JD商品自动给好评获取京豆脚本

1.打开链接 开下面的链接进入待评价商品页面 https://club.jd.com/myJdcomments/myJdcomments.action?sort=0 2.登陆后执行脚本 登陆后,按F12键,选择console,复制粘贴以下代码,先运行脚本1,再运行脚本2 脚本1代码 可以自行修改评价内容。 var content = '材质很好,质量也不错,到货也很快物流满分,包装快递满

BD错误集锦8——在集成Spring MVC + MyBtis编写mapper文件时需要注意格式 You have an error in your SQL syntax

报错的文件 <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.yuan.dao.YuanUserDao"><!

Redis-在springboot环境下执行lua脚本

文章目录 1、什么lua2、创建SpringBoot工程3、引入相关依赖4、创建LUA脚本5、创建配置类6、创建启动类7、创建测试类 1、什么lua “Lua”的英文全称是“Lightweight Userdata Abstraction Layer”,意思是“轻量级用户数据抽象层”。 2、创建SpringBoot工程 3、引入相关依赖 <?xml version

如何利用echarts编写立体的柱状图表

1、引入 import * as echarts from 'echarts' 2、创建图标容器 3、调用渲染 <template><div ref="eachrtsBox" style="width: 200px;height: 200px;"></div></template><script>import * as echarts from 'echarts'export d

vscode python pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

在vscode中控制台运行python文件出现:无法将"pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 使用vscode开发python,需要安装python开发扩展: 本文已经安装,我们需要找的是python安装所在目录,本文实际路径如下: 如果在本文路径中没有此目录,请尝试在C盘中搜索 python,搜索到相关python目录后,点击Python 3.9进入目录,

android的strings整理脚本

统一对String整理的工具,结构如下 代码 package com.owant.toollib;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.ArrayList;import java.util.List;import java.util

网页脚本输入这么简单

如何在网页中进行脚本操作呢? 研究了一下,很简单,用google浏览器的Console直接操作javaScript。思路: Created with Raphaël 2.1.0 开始 输入(如何输入) 点击(如何点击) 结束 下面是,通过脚本刷直播屏的实现,直接在Console输入即可 var words=new Arra

ssh在本地虚拟机中的应用——解决虚拟机中编写和阅读代码不方便问题的一个小技巧

虚拟机中编程小技巧分享——ssh的使用 事情的起因是这样的:前几天一位工程师过来我这边,他看到我在主机和虚拟机运行了两个vscode环境,不经意间提了句:“这么艰苦的环境写代码啊”。 后来我一想:确实。 我长时间以来都是直接在虚拟机里写的代码,但是毕竟是虚拟机嘛,有时候编辑器没那么流畅,在文件比较多的时候跳转很麻烦,容易卡住。因此,我当晚简单思考了一下,想到了一个可行的解决方法——即用ssh

简单 使用 的makefile编写 框架

1、指定编译器,如海思平台:CROSS_COMPILE=arm-hisiv100nptl-linux-; 2、指定编译工具:GCC=$(CROSS_COMPILE)gcc   CC=$(CROSS_COMPILE)g++; 3、使用 export 导出 子makefile 要用的变量; 4、定义变量的形式  指定 工程源文件 需要使用到的 “宏”,在后面的 LDFLAGS 里面使用 -D将其