Ultra Edit中编辑并一键运行Ansys命令流

Ultra Edit是一款功能强大的文本编辑器。在使用UE编辑Ansys的Apdl命令流时,通过一定的配置即可让你的使用体验提升数倍。

一、一键运行Ansys命令流

(一)问题描述

通过Ultra Edit可以更方便地对Ansys命令流.mac文件进行编辑。但在编辑完成后,需将.mac拷贝至Ansys工作路径,或在最初就讲需保.mac文件存放在Ansys工作路径。之后需在Ansys对话框输入该文件名,对mac文件进行调用。

整个过程操作繁琐,因此通过结合python与UE运行DOS的方法,实现了在编辑好mac文件之后,一键调用mac文件的方法。并且被运行的.mac文件可在电脑中任意位置

(二)实现效果

在此演示中,笔者将运行的快捷键设为了F5,按下F5即可保存并运行当前正在编辑的.mac文件
ueansys
实现原理:通过UE运行Dos命令。在Dos命令中运行.py脚本,读取正在编辑的.mac文件,并将其输入到已打开的Ansys程序中。

(三)配置方法

1.首先需确保电脑上需安装有python并将其添加至环境变量。

将Python添加至环境变量后,即可在电脑的任意位置通过cmd来执行py脚本。

具体配置可参考(相关教程)image-20210616165633377

2.创建.py文件

在C盘ProgramData目录下新建RunMac文件夹并将RunMac1.0.py保存至该目录下。
RunMac1.0.py代码位于本文附录部分。
image-20210616182047914

3.在Ultra Edit中进行配置

在菜单栏-高级-用户工具-配置工具。
image-20210616180344284
在工具配置界面:

输入菜单项名称,该项名称可以自定义。

命令行输入以下文字,

python C:\ProgramData\RunMac\RunMac1.0.py %f

工作目录可任意选择,建议直接选择桌面。
image-20210616180529224
选项窗口,勾选Dos程序,保存活动文件,先保存所有文件。
image-20210616180832033
输出截面,控制命令行所运行的内容的输出方式。

选择捕获输出则会对输出内容进行记录。也可不勾选。该部分设置不会影响运行效果,仅用于设置dos输出效果。
image-20210616180957509

4.功能测试

完成以上设置后,在打开Ansys程序的情况下,即可通过点击 用户工具中的运行mac,或通过快捷键Ctrl+Shift+1,运行当前正在编辑的mac文件。
image-20210616181544353

5.配置快捷键​

此外,可自定义用户工具1的快捷键,如下图,为用户工具1分配快捷键 F5。即可通过按键F5,运行当前mac文件。
image-20210616181826369

二、代码高亮

APDL使用到Ansys中的一种参数化的计算语言。通过代码的高亮可以让命令流具有更高的可读性。

在Ultra Edit中,你可以在编码栏,语言类型查看方式中设置代码高亮的格式,并选择"APDL (ANSYS Parametric Design Language)"。
image-20210616155738608

如果你的Ultra Edit中没有APDL高亮格式,可以通过下部加号“添加其他语言”,找到APDL并确定。
image-

三、注释 反注释

通过编码菜单下的“外部注释”与“删除注释”按钮,可以快速的对多行文本进行注释与反注释。对于不同格式的文本,根据其语法进行不同的注释。
image-20210616160018539image-20210616160033378
但每次点击菜单栏的操作比较繁琐,因此可以定义快捷键:

推荐设置为:
添加注释: Ctrl+1
删除注释: Ctrl+2

修改快捷键的方法,打开设置-键映射-按下新(多个)热键-分配。设置快捷键。可定义任意快捷键。
image-20210616160656693

附录

RunMac1.0.py代码如下,将其拷贝,并保存为RunMac1.0.py即可。
该代码主要功能为,根据窗口名称找到正在运行的ANSYS窗口句柄,并将命令流输入。实现对Mac文件的调用。

特别注意!!!!
考虑到ansys版本不同,大家需要将代码中第26行的 indent1 变量 修改成ansys命令流软件的窗口名称。

# -*- coding: utf-8 -*-

import win32gui
import win32con
import time
import os
import pickle
import sys

# 获取输入参数
paras = sys.argv

# 文件目录
path = 'C:\\ProgramData\\RunMac'

# 复制文件到默认位置
file1 = paras[1]
directory, name2 = os.path.split(file1)

name2 = 'temp.mac'
file2 = os.path.join(path,name2)
os.system('copy '+file1+' '+file2)

# 寻找窗口
filename = os.path.join(path,'hwnd.data')
indent1 = 'ANSYS Multi'
# 注意!!!!!需将indent1变量改成ansys命令流软件的 窗口名称,可写前两个单词
indent2 = 'Output Window'

try:
    with open(filename,'rb') as f:
        hwnd = pickle.load(f)
        hwnd1 = hwnd[0]
        hwnd2 = hwnd[1]
    title = win32gui.GetWindowText(hwnd1)
    if indent1  not in title:
        raise ValueError('提示:未找到已开启的Ansys程序 或 需添加新的窗口名')

except:
    hwnd_title = dict()
    def get_all_hwnd(hwnd,mouse):
        if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd):
            hwnd_title.update({hwnd:win32gui.GetWindowText(hwnd)})
    
    win32gui.EnumWindows(get_all_hwnd, 0)
    for h,t in hwnd_title.items():
        if indent1 in t:
            hwnd1 = h
            break
    for h,t in hwnd_title.items():
        if indent2 in t:
            hwnd2 = h
            break
    
    hwnd = [hwnd1,hwnd2]
    with open(filename,'wb') as f:
        pickle.dump(hwnd,f)

title = win32gui.GetWindowText(hwnd1)
if indent1  not in title:
    print('---------------------------------------------------------')
    print('提示:未找到已开启的Ansys程序 或 需添加新的窗口名')
    print('---------------------------------------------------------')

# 运行文件
location = file2
try:
    win32gui.ShowWindow(hwnd1, win32con.SW_MAXIMIZE)
    win32gui.ShowWindow(hwnd1,win32con.SW_SHOW)
    time.sleep(0.1)
    win32gui.ShowWindow(hwnd2, win32con.SW_MINIMIZE)
    temp = win32gui.SetForegroundWindow(hwnd1)
except:
    pass
finally:
    time.sleep(0.1)
    WM_CHAR = 0x0102
    for char in location:
        win32gui.SendMessage(hwnd1, WM_CHAR, ord(char), None)
    time.sleep(0.1)    
    win32gui.SendMessage(hwnd1, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
    win32gui.SendMessage(hwnd1, win32con.WM_KEYUP, win32con.VK_RETURN, 0)

结尾

目前可方法可基本实现实际的功能。若在配置过程中遇到问题或发现代码bug,可进一步交流探讨。

  • 14
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 28
    评论
Ultra Edit是一款功能强大的编辑器软件,在Mac系统上也有可用的版本。Ultra Edit for Mac提供了许多强大的编辑功能,使得编写和编辑各种类型的文件变得更加高效和便捷。 首先,Ultra Edit for Mac具有全面的文本编辑功能。它支持各种编程语言的语法高亮显示,提供了自动完成、括号匹配和代码折叠等功能,使得编写代码更加轻松和精确。同时,它还支持多窗口和多分屏编辑,方便编写和修改多个文件。 其次,Ultra Edit for Mac具有强大的搜索和替换功能。它可以快速地搜索指定的文本、字符或者正则表达式,并进行批量替换。此外,它还支持查找和替换历史记录,可以方便地回溯和管理之前的搜索和替换操作。 另外,Ultra Edit for Mac还支持自定义宏和脚本功能,可以通过录制和编辑宏来自动化常见的编辑任务,提高工作效率。同时,它还支持集成版本控制系统,比如Git和SVN,方便团队协作和代码管理。 值得一提的是,Ultra Edit for Mac还拥有强大的文件比较功能。它可以快速地比较和合并两个文件或者文件夹,显示差异,并允许根据需要选择特定行或字节进行合并。这个功能对于代码版本控制和文件整合非常有帮助。 总之,Ultra Edit for Mac是一款功能强大的编辑器软件,它提供了许多高效和实用的功能,能够满足开发人员和编辑人员的需求。无论是编写代码、编辑文本文件还是处理大规模数据文件,Ultra Edit都能提供强大的支持,让编辑工作变得更加高效和轻松。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lzn_nzL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值