ABAQUS中创建主视图命令菜单和工具条

在ABAQUS中操作模型时,经常需要选择边界上的元素,如果使用框选则需要将模型摆正(处于一个主视图角度),虽然ABAQUS提供了6个主视图工具按键,但实际使用中还有有一些不便的:

  • ABAQUS提供的视角只是基于一个盒子的6个面,如果需要在同一个面的不同方向的视角则没有,例如ABAQUS提供了y轴向上,x轴向右的视图,但却没有x轴向上,y轴向左的视图;
  • 对于较复杂的模型或模型局部,使用时还需想象需要的视角对应于ABAQUS提供的哪个视角,不太方便;

因此开发一个最近主视角的功能,在使用时在图形窗口中将模型转至一个角度后,可以将视图直接转换至与当前视角最接近的主视图,解决上述问题。

ABAQUS/CAE使用PYTHON进行二次开发,开发的主要步骤是:

  1. 创建一个算法文件(python源代码文件),用于执行算法逻辑,名称任意;
  2. 创建一个命令注册文件(python源代码文件),用于将上一步创建的算法注册进行ABAQUS中,以方便使用,名称必须以_plugin结尾;
  3. (可选)创建一个GUI文件(python源代码文件),用于描述对话框及界面元素,名称任意;
  4. 将上述三个python文件放进ABAQUS安装文件夹中的…\CAE\plugins\20xx\文件夹下;
  5. 重新启动ABAQUS,即可在菜单项Plug-ins菜单下或工具条中看到相应的菜单项或工具按钮。

这个功能并不需要图形界面,但为了方便,需要一个工具按键。因而创建两个文件,一个是算法文件,另一个是命令注册文件。
算法文件命名为mainViewOri.py(这个文件名是任意的),如下所示。

from abaqus import *
from abaqusConstants import *
import numpy as np

def setMainViewOri():
    vp = session.viewports[session.currentViewportName]
    view = vp.view
    dir = np.array(view.cameraPosition) - view.cameraTarget
    dir = dir / np.linalg.norm(dir)
    indic = np.argmax(abs(dir))
    newDir = [0,0,0]
    newDir[indic] = np.sign(dir[indic])
    view.setViewpoint(viewVector=tuple(newDir))
    view.setValues(cameraUpVector = (1,0,0))

命令注册文件如下所示,其中registerKernelMenuButton函数用于将模块mainViewOri(参数moduleName,即算法文件名,python中使用文件名做为模块名)中的函数setMainViewOri(参数functionName,点击菜单后执行的相应python模块中的函数名)注册到一个显示名称为mainViewOri(参数buttonText)的菜单项上,这个命令可以应用于所有Modules(参数applicableModules)。

from abaqusGui import *
from abaqusConstants import ALL

toolset = getAFXApp().getAFXMainWindow().getPluginToolset()
toolset.registerKernelMenuButton(
    moduleName='mainViewOri', 
    functionName="setMainViewOri()",
    buttonText="mainViewOri",
    icon=None,
    applicableModules=ALL,
    version='N/A',
    author='N/A',
    description='N/A',
    helpUrl='N/A')

将上述两个文件拷至ABAQUS安装文件夹中的…\CAE\plugins\20xx\文件夹下后重启ABAQUS,将会看到如下的菜单项。
在这里插入图片描述

但总用菜单显然不方便,可以将其添加至工具条中,通过以下的自定义工具条创建一个工具条。
在这里插入图片描述
在这里插入图片描述

之后在Functions选项卡中找到刚创建的命令将其拖到工具条中即可。其中的图标可以在界面右下角处自定义。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

复高斯分布的随机变量的模方的分布

文章目录 服从复高斯分布的随机向量的模方的分布问题的源头矩阵服从复高斯分布向量服从复高斯分布杂记需要与上面向量的分布区别开的是:服从复高斯分布的随机变量的和的平方的分布 服从复高斯分布的随机向量的模方的分布 已知 x ∈ C L 1 \mathbf{x} \in \mathbb{…

【CVE-2024-21626】容器逃逸漏洞修复

哈喽大家好,我是咸鱼。 好久不见,最近有一个很火的 CVE——runc 容器逃逸漏洞。年前的时候我们已经在测试环境进行了相关操作打算年后线上进行修复。 因为今天咸鱼才开工,所以文章也就拖到了现在 😃 漏洞介绍 简单来讲&#xf…

怿星科技测试实验室(EPT LABS)服务介绍

据中国汽车工业协会数据,2023年我国汽车产销量分别达3016.1万辆和3009.4万辆,年产销量双双创历史新高,汽车行业进入了新时代。新汽车时代下的OEM竞争更激烈,汽车电子架构更复杂,研发周期更短,软件迭代更快&…

汽车线束中的螺栓拧紧有哪些要求——SunTorque智能扭矩系统

在现代汽车的电气系统中,线束是连接各个电器元件的桥梁,承担着传输电能、信号以及实现控制功能的重要任务。而在线束的装配过程中,螺栓的拧紧技术是确保线束固定、连接可靠的关键环节。SunTorque智能扭矩系统和大家一起探讨汽车线束中的螺栓拧…

Java中的关键字

✨✨ 所属专栏: Java基石:深入探索Java核心基础✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 Java中的关键字是一些具有特殊含义的单词,它们在语法中有特定的用途,不能用作标识符&am…

响应式编程上下文

标题响应式编程代码示例 代码示例 多个消费者订阅了同一个生产者 package com.yaeher.infrastructure.userinfovault.user; import org.junit.jupiter.api.Test; import reactor.core.publisher.Flux; import reactor.core.scheduler.Scheduler; import reactor.core.schedul…

基于ImageSharp实现趣味横生的点选验证

引言 随着安全需求的不断提升,传统的文本验证码已经无法满足防止机器自动识别和攻击的要求。点选式验证码作为一种交互式的验证手段,因其更难被自动化脚本破解而逐渐受到欢迎。利用开源图像处理库SixLabors.ImageSharp来实现点选式验证码功能。 ImageS…

APP 有漏洞被测要下架,怎么处理?

事情的经过是这样的: 1:学员公司测试的 APP 发现有漏洞,被要求下架 2:他被公司要求去查询 APP 哪里有漏洞 3:他来寻求帮助,推荐几款安全测试扫描漏洞的问题。 事情的梳理: 1:我们看了他的 …

UE5 C++ UENUM 和 USTRUCT

一.首先在APawn里声明 UENUM 和 USTRUCT。UENUM 有两种定义方式 一种是使用命名空间: 还有是继承uint8: 通过申明class类 别名来替代 USTRUCT的定义 上面的第二种有类似但仍然有很多的差异: 首先要有GENERATED_USTRUCT_BODY()这个函数 并且…

fastApi笔记04-查询参数和字符串校验

额外校验 使用Query可以对查询参数添加校验 from typing import Unionfrom fastapi import FastAPI, Queryapp FastAPI()app.get("/items/") async def read_items(q: Union[str, None] Query(defaultNone, max_length50)):results {"items": [{"…

春招面试准备笔记——过拟合和欠拟合

介绍 过拟合:过拟合是指模型在训练过程中过于复杂,拥有过多的参数,以至于在训练数据集上表现良好,但在未见过的测试数据上表现很差的现象。这种情况下,模型可能只是“死记硬背”了训练数据的特征和噪声,而…

SpringBoot中使用PageHelper插件实现Mybatis分页

场景 SpringBoot中整合Mybatis时一般添加的依赖为 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.1</version></dependency> 如果要实现分页查…

解锁ThreadLocal的问题集:如何规避多线程中的坑

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 解锁ThreadLocal的问题集&#xff1a;如何规避多线程中的坑 前言内存泄露问题内存泄漏原因&#xff1a;检测和避免内存泄漏的实用建议&#xff1a; 线程池带来的数据混乱最佳实践&#xff1a;注意事项…

CVE-2024-0918 TEW-800MB RCE漏洞分析

漏洞描述 固件版本为1.0.1.0的TEW-800MB路由器存在命令注入漏洞。如果攻击者获得了web管理权限&#xff0c;他们可以将命令注入到httpd未知函数中的post请求参数DeviceURL中&#xff0c;从而获得shell权限。。 参考链接 TEW-800MB (notion.site)https://warp-desk-89d.notio…

从宏观到微观——泽攸科技ZEM系列台式扫描电子显微镜在岩石分析中的应用

岩石作为地球地壳的主要构成物质之一&#xff0c;其微观结构对于了解地质过程、资源勘探以及工程建设具有重要意义。按照岩石的成因&#xff0c;可以把它们分为三类&#xff1a;岩浆岩、沉积岩和变质岩。在地球表面&#xff0c;沉积岩占据75%的份额&#xff0c;而在地壳深度&am…

Family Day/园区参观路径(C语言)

题目描述 园区某部门举办了Family Day&#xff0c;邀请员工及其家属参加&#xff1b; 将公司园区视为一个矩形&#xff0c;起始园区设置在左上角&#xff0c;终点园区设置在右下角&#xff1b; 家属参观园区时&#xff0c;只能向右和向下园区前进&#xff0c;求从起始园区到终…

低代码中的工作流:简化开发流程,提升效率

低代码开发平台近年来在软件开发领域引起了广泛的关注和应用。它以提高开发效率、降低开发成本为目标&#xff0c;通过简化开发过程&#xff0c;使非专业开发者也能快速构建高品质的应用程序。其中&#xff0c;工作流引擎作为低代码开发平台的重要组成部分&#xff0c;对于提升…

使用C# Net6连接国产达梦数据库记录

达梦官网&#xff1a;http://www.dameng.com/ 1 下载达梦并进行安装 下载地址&#xff1a;官网首页——服务与合作——下载中心&#xff08;https://www.dameng.com/list_103.html&#xff09; 根据需要自行下载需要的版本&#xff0c;测试版本为&#xff1a;x86 win64 DM8版…

设计师必看!哪个云渲染平台便宜?

渲染100 溜云库 渲云 平均价格 9.27 9.37 9.51 Camera007 5.81 6.1 4.7 Camera008 18.66 17…

【C语言】中的位操作符和移位操作符,原码反码补码以及进制之间的转换

欢迎大家来到c语言知识小课堂&#xff0c;今天的知识点是操作符和进制 目录 一、进制之间的转化1、什么是二进制&#xff0c;八进制&#xff0c;十进制&#xff0c;十六进制2、进制之间的转化其他进制转化为十进制十进制转化为二进制二进制转化为八进制八进制转化为二进制二进…