ANSYS基于VC++6.0的二次开发方法
ANSYS的二次开发技术
![ANSYS的二次开发技术](https://img.taocdn.com/s3/m/92ba5bf9bb4cf7ec4afed0c2.png)
ANSYS的二次开发技术ANSYS 的二次开发技术ANSYS 提供的二次开发工具有三个:参数化设计语言(ANSYS Parametric Design Language,APDL),用户界面设计语言(User Interface Design Language,UIDL)以及用户可编程特性(User Programmable Features,UPFs)。
其中,前两种可归类为标准使用特性,后一种为非标准使用特性。
ANSYS 参数化设计语言(APDL)APDL 扩展了传统有限元分析范围之外的能力,提供了建立标准化零件库、序列化分析、设计修改、设计优化以及更高级的数据分析处理能力,包括灵敏度研究等。
ANSYS 用户可编程特性(UPFs)利用UPFs,用户可以开发下列方面的功能程序:(1) 开发用户子程序实现从ANSYS 数据库中提取数据或将数据写入ANSYS 数据库。
该种子程序可以编译连接到ANSYS 中,此时ANSYS 提供了10 个数据库操作命令;如果作为外部命令处理,可以在ANSYS 的任何模块中运行;(2) 利用ANSYS 提供的子程序定义各种类型的载荷,其中包括BF 或BFE 载荷、压力载荷、对流载荷、热通量和电荷密度等;(3) 利用ANSYS 提供的子程序定义各种材料特性,包括塑性、蠕变、膨胀、粘塑性、超弹、层单元失效准则等;(4) 利用ANSYS 提供的子程序定义新单元和调整节点方向矩阵,ANSYS 最多可以有6 个独立的新单元USER100-USER105;( 5) 利用ANSYS 提供的子程序修改或控制ANSYS 单元库中的单元;(6) 利用UEROP 创建用户优化程序,可以用自己的算法和中断准则替换ANSYS 优化过程。
(7) ANSYS 程序作为子程序在用户程序中调用,如用户自定义的优化算法。
ANSYS 软件本身是通过FORTRAN 和C 语言开发的。
使用UPFs 进行二次开发,在安装ANSYS 的基础上,还需要Compaq Visual FORTRAN 和MS Visual C++的支持。
ANSYS命令流、二次开发与HELP文档(介绍)
![ANSYS命令流、二次开发与HELP文档(介绍)](https://img.taocdn.com/s3/m/3a7af281cc22bcd126ff0c9b.png)
ANSYS命令流、二次开发与HELP文档(一)ANSYS在操作时有两种途径,一种是GUI途径,即通过ANSYS可视化的操作菜单来实现对分析过程的操作,而另外一种就是所谓的命令流,这更像是一种后台操作,操作者分析的过程即是将一条条ANSYS命令按照自己的分析思路组织起来,而ANSYS通过调用这些命令完成分析。
初学ANSYS的人,对命令流充满了迷惑,因为当拿出一个分析过程自动形成的.log文件之后发现一行一行犹如天书,但这些正是ANSYS命令的真实面目,而我们常使用的菜单操作只不过是把这些命令的本来面目给遮盖起来了,在学习ANSYS的过程中,随着学习过程的深入,加之以对命令流本身有个追本溯源的原动力驱使,命令流本身也不是很难。
命令流与菜单操作相比各有其优缺点,学习ANSYS一般从菜单操作开始,因为菜单操作能够做到于使用者直接对话,简洁和可视化,但其缺点是如果一直按照菜单操作的方式进行便不能窥视到ANSYS的工作过程,尤其是在进行同个问题变换其中一个或几个参数进行分析时,其重复操作的工作太多,大大减小了分析的趣味性,把精力放在了没有技术含量的操作上。
ANSYS命令流则弥补了这一缺陷,虽然难以理解,但当使用命令流进行分析时,能够大大的缩短分析的手工工作量,尤其是配合一定APDL语句,能够使分析过程自动进行,而操作者要做的仅仅是调用已经编制好的命令流文件而已,这时操作者的精力将会是放在对整个分析过程的分析和研究上,因为一旦分析过程研究及其实现机理研究透彻,那随之而来的所谓分析只是计算机自己的问题,操作者可以调用完命令之后随心所欲的做其他事情,而且学习命令流可以更好的理解ANSYS的工作过程和分析机理,这是菜单操作方式所没有的,我们在学习ANSYS过程中,菜单操作仅仅是对ANSYS使用环境熟悉的一个过程。
谈到命令流的种种优点,便引起这样一个问题,如何学习ANSYS命令流?更确切的说如何入门命令流?学习ANSYS的人会发现,初学ANSYS命令流会感到无从下手,不知道该如何去进入这个世界,好像是ANSYS命令流的世界只有一个很小的门,大多数人都钻不过去,只有少数人钻了过去看到了里面的美妙景象,其实来说命令流的世界没有想象的这么难以进入。
ansys项目二次开发思路
![ansys项目二次开发思路](https://img.taocdn.com/s3/m/ff733033482fb4daa58d4b3c.png)
ANSYS二次开发思路一、基于VC++和ANSYS组合的开发:1.整体思路:利用VC++ 6.0设计界面,设计人员在界面上输入相应的参数。
设置提前已经建好的命令流文件中的对应参数。
将命令流文件提交给ANSYS软件进行批处理操作,分析计算后生成各种结果。
通过点击界面的按钮来查看输出的图形等结果。
2.设计中的关键点:2.1 修改命令流相应的参数:ANSYS软件自带一种批处理语言APDL语言,APDL命令流文件中包含了设置参数的命令,因此可以将修改的参数输入到命令流文件中。
2.2 调用ANSYS软件进行分析:通过VC++ 6.0自带的调用其他应用程序的函数,启动ANSYS运行命令流文件。
2.3 结果的显示:如何实现图形结果的显示是设计的一个关键和难点,在这个软件设计中,通过对后处理部分的封装,实现了用户点击界面的按钮就可以在对话框中显示结果的功能。
二、基于VC++和ANSYS相对分离的开发:1.整体思路:用VC++设计一个文本框,可以输入需要修改的参数,修改之后点击按钮,就可以在ANSYS的工作目录下生成与输入参数相关的建模分析和显示相关的命令流清单的宏文件。
然后当再点击结束按钮时,自动退出上面的界面。
进入ANSYS7.0的主界面,这时在ANSYS7.0的toolbar栏中应包括可以调用相应宏的按钮,当点击相关的按钮后,就可以达到自动调用前面生成的宏,自动完成建模加载分析,自动显示的目的。
2.特点:这种思路由于利用了VC++和ANSYS相对独立的开发,比第一种思路完成起来简单。
三、利用ANSYS的二次开发技术直接在ANSYS软件上进行开发:1.整体思路:ANSYS为用户进行程序界面设计提供了一种专用语言即UIDL。
UIDL是一种程序化的语言,它允许用户改变ANSYS的图形用户界面(GUI)中的一些组项。
UIDL提供了一种允许用户灵活使用、按个人喜好来组织设计ANSYS图形用户界面的强有力工具。
在修改参数方面ANSYS提供参数设计语言APDL,以更方便的方式进行程序编辑。
附代码基于C 的ANSYS二次开发
![附代码基于C 的ANSYS二次开发](https://img.taocdn.com/s3/m/6175a60f55270722192ef78c.png)
ansys二次开发1概述ANSYS是一套功能十分强大的有限元分析软件,能实现多场及多场耦合分析;是实现前后处理、求解及多场分析统一数据库的一体化大型FEA软件;支持异种、异构平台的网络浮动,在异种、异构平台上用户界面统一、数据文件全部兼容,强大的并行计算功能支持分布式并行及共享内存式并行。
该软件具有如下特点:(1)完备的前处理功能ANSYS不仅提供了强大的实体建模及网格划分工具,可以方便地构造数学模型,而且还专门设有用户所熟悉的一些大型通用有限元软件的数据接口(如MSC/NSSTRAN,ALGOR,ABAQUS等),并允许从这些程序中读取有限元模型数据,甚至材料特性和边界条件,完成ANSYS中的初步建模工作。
此外,ANSYS还具有近200种单元类型,这些丰富的单元特性能使用户方便而准确地构建出反映实际结构的仿真计算模型。
(2)强大的求解器ANSYS提供了对各种物理场量的分析,是目前唯一能融结构、热、电磁、流体、声学等为一体的有限元软件。
除了常规的线性、非线性结构静力、动力分析外,还可以解决高度非线性结构的动力分析、结构非线性及非线性屈曲分析。
提供的多种求解器分别适用于不同的问题及不同的硬件配置。
(3)方便的后处理器ANSYS的后处理分为通用后处理模块(POST1)和时间历程后处理模块(POST26)两部分。
后处理结果可能包括位移、温度、应力、应变、速度以及热流等,输出形式可以有图形显示和数据列表两种。
(4)多种实用的二次开发工具ANSYS除了具有较为完善的分析功能外,同时还为用户进行二次开发提供了多种实用工具。
如宏(Marco)、参数设计语言(APDL)、用户界面设计语言(UIDL)及用户编程特性(UPFs),其中APDL(ANSYS Parametric Design Language)是一种非常类似于Fortran77的参数化设计解释性语言,其核心内容为宏、参数、循环命令和条件语句,可以通过建立参数化模型来自动完成一些通用性强的任务;UIDL(User Interface Design Language)是ANSYS为用户提供专门进行程序界面设计的语言,允许用户改变ANSYS的图形用户界面(GUI)中的一些组项,提供了一种允许用户灵活使用、按个人喜好来组织设计ANSYS图形用户界面的强有力工具;UPFs(User Programmable Features)提供了一套Fortran77函数和例程以扩展或修改程序的功能,该项技术充分显示了ANSYS的开放体系,用户不仅可以采用它将ANSYS程序剪裁成符合自己所需的任何组织形式(如可以定义一种新的材料,一个新的单元或者给出一种新的屈服准则),而且还可以编写自己的优化算法,通过将整个ANSYS作为一个子程序调用的方式实现。
ansys技巧总结_二次开发调试技术
![ansys技巧总结_二次开发调试技术](https://img.taocdn.com/s3/m/c43c50f427fff705cc1755270722192e45365812.png)
ansys技巧总结_二次开发调试技术在调试用户子程序过程中,可以利用非《ANSYS命令参考手册》某些命令和其它特性帮助用户提供许多有用的信息。
但是,它们仅仅适合于极小问题并只包含较少迭代求解情况;否则,它们将会输出大量的数据。
下面将详细介绍/TRACK 和 /DEBUG两个命令;另外有两个ANSYS文档没有包含的命令:OUTEQ 与 /NERR。
命令OUTEQ,on 能够用于控制所有平衡迭代计算的输出结果。
命令/NERR,,,-1 使系统一直报错,并保持程序继续运行。
这时,正常的中断方式有:1) 系统中断; 2) 错误结果。
1、跟踪程序运算逻辑顺序/TRACK命令:当程序按逻辑顺序进入和离开某些更高级别的子程序时发送一条信息。
子程序的TrackBegin(开始)和TrackEnd(结束)(参看UPFs第六章)一起构成/TRACK命令的程序跟踪。
然后,按下列格式执行命令:/TRACK,MonLevel,PrintLevel,SumLevel其中:MonLevel是时间监视级别;PrintLevel是进入/退出输出状态开关;SumLevel是输出累积时间状态开关。
这三个参数可以是0到9之间的任何值(缺省为0)。
用户可以使用/TRACK命令查找出程序中断发生的代码位置。
例如,将所有子程序标识为八个级别,以便确定程序进入与退出它们的时间, 此时用户应当执行的命令为:/TRACK,,82、调试单元与求解/DEBUG命令能够在输出的许多位置点进行调试。
/DEBUG命令具有下列三种调试格式:求解(solution)调试格式单元(element)调试格式一般调试格式(1)求解(solution)调试格式执行命令:/DEBUG,-1,F1,F2,F3,F4,F5,F6,F7,F8,F9参数说明:F1—1 (输出基本求解结果控制调试结果)F2—1 (输出使用Newmark常数的瞬态计算调试结果)2 (输出使用速度与加速度的瞬态计算调试结果)F3—1 (输出单元矩阵调试结果,包括矩阵与载荷矢量)2 (输出单元矩阵调试结果,只包括载荷矢量)3 (输出单元矩阵调试结果,包括矩阵对角元素和载荷矢量)F4—1 (输出自动时间步长(auto time stepping)调试结果)F5—1 (输出多物理场调试结果)F6—1 (输出弧长(arc-length)调试结果)F7—1 (输出基本Newton-Raphson调试结果)2 (输出Newton-Raphson调试结果,包括非平衡力或增量位移或每个DOF)3 (输出Newton-Raphson调试结果,包括施加载荷与每个DOF 上的n-r恢复力)F8—1,2 (输出位移矢量以及位移指针调试结果)2 (输出位移矢量以及增量位移调试结果)3 (输出位移矢量以及接触数据库调试结果)F9—1 (输出临时程序员调试结果)(2)单元(element)调试格式执行命令:/DEBUG,-3,G1,G2,G3,G4,G5,G6,G7,G8,G9参数说明:G1—1 (输出基本单元通过(pass)调试结果)G2—1 (输出单元位移和坐标调试结果)G3—1 (输出单元矩阵调试结果,包括矩阵与载荷矢量)2 (输出单元矩阵调试结果,只包括载荷矢量)3 (输出单元矩阵调试结果,包括矩阵对角元素和载荷矢量)G4—1 (输出单元载荷调试结果)G5—1 (输出单元实常数(real constant)调试结果)G6—1 (输出单元存储变量(saved variable)调试结果)G7—1 (输出线性材料特性单元材料特性调试结果)2 (输出非线性材料特性单元材料特性调试结果)G8—1,2 (输出塑性单元非线性调试结果)2 (输出大变形单元非线性调试结果)3 (输出接触数据库单元非线性调试结果)G9—1 (输出临时程序员调试结果)(3)一般调试格式执行命令:/DEBUG,H1,H2,,H4,H5参数说明:H1—1 (输出文件头纪录(file header record)信息)2 (输出字符输入行(character))3 (输出解码输入行(decoded))H2—1 (输出波前重新排序(wavefront reordering)与单元检查调试结果)2 (输出网格划分调试结果)H4—1 (输出节点坐标系转换格式调试结果)2 (输出位移更新调试结果)H5—1 (输出pre-单元、单元特性(characteristics)以及单元场载荷调试结果)。
附代码基于C 的ANSYS二次开发
![附代码基于C 的ANSYS二次开发](https://img.taocdn.com/s3/m/6175a60f55270722192ef78c.png)
ansys二次开发1概述ANSYS是一套功能十分强大的有限元分析软件,能实现多场及多场耦合分析;是实现前后处理、求解及多场分析统一数据库的一体化大型FEA软件;支持异种、异构平台的网络浮动,在异种、异构平台上用户界面统一、数据文件全部兼容,强大的并行计算功能支持分布式并行及共享内存式并行。
该软件具有如下特点:(1)完备的前处理功能ANSYS不仅提供了强大的实体建模及网格划分工具,可以方便地构造数学模型,而且还专门设有用户所熟悉的一些大型通用有限元软件的数据接口(如MSC/NSSTRAN,ALGOR,ABAQUS等),并允许从这些程序中读取有限元模型数据,甚至材料特性和边界条件,完成ANSYS中的初步建模工作。
此外,ANSYS还具有近200种单元类型,这些丰富的单元特性能使用户方便而准确地构建出反映实际结构的仿真计算模型。
(2)强大的求解器ANSYS提供了对各种物理场量的分析,是目前唯一能融结构、热、电磁、流体、声学等为一体的有限元软件。
除了常规的线性、非线性结构静力、动力分析外,还可以解决高度非线性结构的动力分析、结构非线性及非线性屈曲分析。
提供的多种求解器分别适用于不同的问题及不同的硬件配置。
(3)方便的后处理器ANSYS的后处理分为通用后处理模块(POST1)和时间历程后处理模块(POST26)两部分。
后处理结果可能包括位移、温度、应力、应变、速度以及热流等,输出形式可以有图形显示和数据列表两种。
(4)多种实用的二次开发工具ANSYS除了具有较为完善的分析功能外,同时还为用户进行二次开发提供了多种实用工具。
如宏(Marco)、参数设计语言(APDL)、用户界面设计语言(UIDL)及用户编程特性(UPFs),其中APDL(ANSYS Parametric Design Language)是一种非常类似于Fortran77的参数化设计解释性语言,其核心内容为宏、参数、循环命令和条件语句,可以通过建立参数化模型来自动完成一些通用性强的任务;UIDL(User Interface Design Language)是ANSYS为用户提供专门进行程序界面设计的语言,允许用户改变ANSYS的图形用户界面(GUI)中的一些组项,提供了一种允许用户灵活使用、按个人喜好来组织设计ANSYS图形用户界面的强有力工具;UPFs(User Programmable Features)提供了一套Fortran77函数和例程以扩展或修改程序的功能,该项技术充分显示了ANSYS的开放体系,用户不仅可以采用它将ANSYS程序剪裁成符合自己所需的任何组织形式(如可以定义一种新的材料,一个新的单元或者给出一种新的屈服准则),而且还可以编写自己的优化算法,通过将整个ANSYS作为一个子程序调用的方式实现。
ansys二次开发
![ansys二次开发](https://img.taocdn.com/s3/m/f32e52176edb6f1aff001f24.png)
1 ANSYS软件及其二次开发工具ANSYS 作为有限元领域的大型通用程序,在工业应用领域及科研方面均有深入的应用。
其广泛而有效的分析工具能解决各类问题,如结构、流体、热、电磁问题等,同时 ANSYS 还 为高级用户提供了多种二次开发工具,利用这些工具,用户可以高效地扩充 ANSYS 的功能。
本章对 ANSYS 软件和其他商业软件,以及开源软件进行了简单介绍,然后分别对 ANSYS 的 4 个二次开发工具 APDL、UPFs、UIDL及 Tck\Tk进行了介绍。
本章要点:l各商业及开源有限元软件的介绍l ANSYS 的 4 个二次开发工具1.1 ANSYS 简介首先有必要对ANSYS软件的发展及其组成部分有所了解, 若要对ANSYS进行二次开发,对 ANSYS 软件的结构有了整体的把握才能有的放矢、目标明确的进行相关二次开发工作。
本 节简要介绍 ANSYS 公司及 ANSYS 软件的发展历程,然后介绍 ANSYS 12.0软件的组成,最 后给出一些其他商业及开源有限元软件的简单介绍。
1.1.1 ANSYS 的发展历程ANSYS 公司于 1970 年在美国成立, 创始人John Swanson博士是匹兹堡大学力学系教授, 公司总部位于美国宾西法尼亚州的匹兹堡。
经过四十年的发展,ANSYS 在有限元软件领域占 据了举足轻重的地位, 被世界各工业领域广泛接受, 成为全球众多专业技术协会认可的标准分 析软件。
ANSYS 集成了力学、热学、电学、声学、流体等多个模块,可用于航空航天、汽车、 电子电气、国防军工、铁路、造船、石油化工、能源电力、核工业、土木工程、冶金与成形以 及生物医学等各个领域。
ANSYS 公司于 2003 年开发设计了新一代 CAE 仿真平台 ANSYS Workbench。
ANSYSANSYS 二次开发及应用实例详解 21C h a p t e r Workbench 由各种功能丰富的模块组成,有 Windows 风格的优化易用的界面,能直接读入常 用的各种格式的模型文件, 并具有良好的数据交换能力和强大的协同仿真环境。
基于VC 6.0的IC卡读写器二次开发的分析和实现
![基于VC 6.0的IC卡读写器二次开发的分析和实现](https://img.taocdn.com/s3/m/1822ad355727a5e9856a617d.png)
Ke r s:C c r e d r e e do me t C 6. y wo d I a d r a e ;r d v p n ;V 0
U 引 昌 随着 I C卡应 用 的 日益 广 泛 , 来 越 多 的管 理 信 越 息 系统 开发 中均 考虑 使 用 I C卡作 为信 息 的载 体 , 特 别是 在消费 服务 行业 。从 自行 研 发相 关 卡 型 的读 写
统 的实 现 , 择深 圳 庆通 公 司 的便 携式 接 触式 I 选 C卡
读写 器 , 该 环境 下 的 I 对 C卡读 写 控制 实 现方 法 和技 巧进行 说明 。
1 I C卡 的选 择
目前 的 I 应用 中 , 经济 成本 的角度 来 看 , c卡 从 选
择接触式 I C卡读 写器能 够较好地 满足 中小 型应 用 系 统的需求 , 研发 的周期相 对较 短 。从 技术实 现 的角度 也较为 容 易 。在 主 流 的 接 触 式 I C卡 型 中 , 门子 西
中图 分 类 号 :P 1 .2 T 3 15 文献标识码 : A d i 1 .99 jin 10 - 7 .0 0 1.5 o: 03 6 /.s .0 62 5 2 1 . 10 0 s 4
Ana y i n a ia i n o de eo m e tf r I Ca d Re d r Ba e n VC 0 l ss a d Re lz to f Re v l p n o C r a e s d o 6.
不能 进行更 改 。该 卡提供 密码保 护 , 在对 卡 中字 节进
行读 写操作 前 , 须进 行 密 码 核对 , 对 正确 后 方 能 必 核 进 行 。此时 可 以对 用 户 信息 存储 字 节 和 密码 字 节 内 容进行 改写 。一旦核 对密码 错误 次数达 到 8次 , 该 则
ANSYS二次开发与应用简介
![ANSYS二次开发与应用简介](https://img.taocdn.com/s3/m/7c848639eefdc8d376ee32ab.png)
ANSYS二次开发与应用简介目录1 ANSYS经典界面的二次开发简介 (2)1.1 利用ANSYS参数化设计语言(APDL)进行开发 (2)1.2 利用ANSYS用户界面设计语言(UIDL)进行开发 (3)1.3 利用ANSYS提供的接口软件与ANSYS进行实时交流 (3)1.4 ANSYS的用户可编程特征(UPFs) (3)2 ANSYS新一代协同仿真平台WORKBENCH二次开发简介 (4)3 ANSYS二次开发的典型案例 (5)4 一个ANSYS二次开发方案详细介绍(国内) (7)4.1 CCSS的构成 (7)4.2 ANSYS for CCSS与规范设计模块的关系 (7)4.3 ANSYS for CCSS的开发方案: (8)4.3.1 FEA模块将包含如下功能: (8)4.3.2 评估模块 (9)4.3.3 部件方法: (10)5 一个ANSYS二次开发成果详细介绍(国外) (11)5.1 前 言 (11)5.2 ANSYS体系结构的优势 (11)5.3 BladePro程序概览 (12)5.4 BladePro分析功能概述 (15)5.5 涡轮机械专用的后处理工具 (15)5.6 某算例的分析结果 (16)5.7 总结 (17)1ANSYS经典界面的二次开发简介1.1利用ANSYS参数化设计语言(APDL)进行开发ANSYS参数化设计语言是一种类似于FORTRAN语言的解释执行语言,它主要由两部分构成,其一为ANSYS的命令、内部函数,可以执行ANSYS的所有操作;其二为FORTRAN语言的几乎所有语法和函数,如DO循环、IF-THEN-ELSE结构、SIN和COS等所有三角函数、带参数子程序、“=”赋值语句、SQRT平方开方等运算、取绝对值、乘方等等。
因此,可以利用这种APDL语言进行各种参数化建模分析工作,当需要对模型做改动时,只需变化几个参数即可。
优点:可以用于参数化设计;与ANSYS的数据库直接通讯;可以充分利用ANSYS命令所具有的强大功能;编程容易,直管,易于调试;易于修改和扩展。
ansys二次开发
![ansys二次开发](https://img.taocdn.com/s3/m/9d98551b227916888486d741.png)
ANSYS的二次开发技术ANSYS提供的二次开发工具共有三个:参数化设计语言(ANSYS Parametric Design Language,APDL),用户界面设计语言(User Interface Design Language,UIDL)以及用户可编程特性(User Programmable Features,UPFs)。
其中,前两种可归类为标准使用特性,后一种为非标准使用特性。
ANSYS参数化设计语言(APDL)APDL扩展了传统有限元分析范围之外的能力,提供了建立标准化零件库、序列化分析、设计修改、设计优化以及更高级的数据分析处理能力,包括灵敏度研究等。
ANSYS用户可编程特性(UPFs)利用UPFs,用户可以开发下列方面的功能程序:(1)开发用户子程序实现从ANSYS数据库中提取数据或将数据写入ANSYS数据库。
该种子程序可以编译连接到ANSYS中,此时ANSYS提供了10个数据库操作命令;如果作为外部命令处理,可以在ANSYS的任何模块中运行;(2)利用ANSYS提供的子程序定义各种类型的载荷,其中包括BF或BFE载荷、压力载荷、对流载荷、热通量和电荷密度等;(3)利用ANSYS提供的子程序定义各种材料特性,包括塑性、蠕变、膨胀、粘塑性、超弹、层单元失效准则等;(4)利用ANSYS提供的子程序定义新单元和调整节点方向矩阵,ANSYS最多可以有6个独立的新单元USER100-USER105;(5)利用ANSYS提供的子程序修改或控制ANSYS单元库中的单元;(6)利用UEROP创建用户优化程序,可以用自己的算法和中断准则替换ANSYS优化过程。
(7)ANSYS程序作为子程序在用户程序中调用,如用户自定义的优化算法。
ANSYS软件本身是通过FORTRAN和C语言开发的。
使用UPFs进行二次开发,在安装ANSYS的基础上,还需要Compaq Visual FORTRAN和MS Visual C++的支持。
球罐接管结构有限元分析的ANSYS二次开发
![球罐接管结构有限元分析的ANSYS二次开发](https://img.taocdn.com/s3/m/a40139fcc8d376eeaeaa3133.png)
图 1 球罐厚壁接管结构有限元分析界面
4 球罐接管结构有限元分析接口程序
球罐的接管结构主要有厚壁管和人孔凸缘两 种 ,本文分别编制了用于这两种结构形式的有限元 分析接口程序 。 411 结构几何尺寸的输入 41111 厚壁管结构几何尺寸的输入
厚壁管结构的几何尺寸主要包括球壳的内径 、 壁厚 、接管内径 、厚壁段壁厚 、薄壁段壁厚 、厚壁段长 度和薄壁段长度 。其输入界面如图 1 所示 。 41112 人孔凸缘结构几何尺寸的输入
数据库是有组织地 、动态地存储大量数据的集 合 ,是存储数据并负责用户访问数据的机构 。通过 数据库 ,可以实现数据的交互共享 ,同时使数据库具 有较高的数据独立性 ,并可较好地保证数据的安全 性和完整性[2 ] 。
本文采用 Microsoft Acces。Microsoft Access 2000 是 美国微软公司 Office 2000 系列软件的一个重要组成 部分 。它是一个功能完备的关系数据库管理系统 , 使用方便 。 213 Visual Basic
Visual Basic 是在 Basic 语言的基础上发展起来 的 ,具有高级程序设计语言的语句结构 ,接近于自然 语言和人类的逻辑思维方式 ,其语句简单易懂 ,且具 有简单易操作的用户界面设计功能[3] 。Visual Basic 610 支持的数据访问接口有 ADO (ActiveX 数据对 象) 、RDO (远程访问对象) 和 DAO (数据访问对象) , 最新的接口是 ADO 。利用这一技术可以直接建立 或处理 Microsoft Access 格式的数据库 ,并提供了强 大的数据存储和检索功能 。
设 计 计 算
球罐接管结构有限元分析的 ANSYS 二次开发
王永卫1 ,贺小华2 ,尹 侠2 (11 江苏省特种设备安全监督检验研究院 无锡分院 ,江苏 无锡 214174 ;
基于VB和ANSYS有限元分析系统的设计与研究
![基于VB和ANSYS有限元分析系统的设计与研究](https://img.taocdn.com/s3/m/60921d48d1f34693dbef3e5b.png)
基于VB和ANSYS有限元分析系统的设计与研究介绍了ANSYS二次开发相关知识和技巧,以及如何实现Visual Basic6.0和ANSYS的连接,借助Visual Basic6.0开发友好、方便、易用的人机交互界面,对难以理解和掌握的ANSYS命令流进行后台封装,开发出参数化的有限元分析系统,极大的减小了复杂构件研究和设计的工作量,提高了工程设计的效率。
标签:Visual Basic6.0;ANSYS;有限元分析0 前言有限元法,也叫有限单元法,它的基本思想是将一个结构或者连续体的求解域离散为若干个域(单元),并通过其边界上的节点相互连接成为组合体。
有限元分析是求解偏微分方程的一种数值方法,是一种高效能、常用的计算方法。
随着信息技术在各领域的迅速发展,CAD/CAM/CAE技术已得到了广泛的应用,从根本上改变了传统的设计、生产、组织模式,对推动现有企业的技术改造、带动整个产业结构的变革、发展新兴技术、促进经济增长都具有十分重要的意义。
现在工程技术的发展要求计算能力的不断提高,应用大型的商业通用软件也是提高计算能力的一种途径。
ANSYS是一个功能强大、简单易学,是最通用和高效的通用有限元分析软件之一,拥有全球最大的用户群,它融结构、传热学、流体、电磁、声学和爆破分析于一体,具有强大的前后处理及计算分析能力。
命令流是ANSYS软件的一大特色,功能强大且使用方便,APDL命令流是参数化有限元分析、优化设计的基础,为二次开发提供了可能。
Visual Basic6.0软件是一种面向对象的程序化设计语言,易于开发友好的人机互动界面。
因此本文就将Visual Basic6.0和ANSYS 有机结合起来,开发出针对复杂部件的有限元分析系统,使得普通的设计开发人员,就可以很方便的进行复杂构件的有限元分析,极大的提高了产品开发设计的效率。
1 ANSYS的二次开发ANSYS典型的分析过程一般由前处理,加载求解和后处理三部分组成。
附代码基于C++的ansys二次开发
![附代码基于C++的ansys二次开发](https://img.taocdn.com/s3/m/d9263204a6c30c2259019e3a.png)
ansys二次开发1 概述ANSYS是一套功能十分强大的有限元分析软件,能实现多场及多场耦合分析;是实现前后处理、求解及多场分析统一数据库的一体化大型FEA软件;支持异种、异构平台的网络浮动,在异种、异构平台上用户界面统一、数据文件全部兼容,强大的并行计算功能支持分布式并行及共享内存式并行。
该软件具有如下特点:(1) 完备的前处理功能ANSYS不仅提供了强大的实体建模及网格划分工具,可以方便地构造数学模型,而且还专门设有用户所熟悉的一些大型通用有限元软件的数据接口(如MSC/NSSTRAN,ALGOR,ABAQUS等),并允许从这些程序中读取有限元模型数据,甚至材料特性和边界条件,完成ANSYS中的初步建模工作。
此外,ANSYS还具有近200种单元类型,这些丰富的单元特性能使用户方便而准确地构建出反映实际结构的仿真计算模型。
(2) 强大的求解器ANSYS提供了对各种物理场量的分析,是目前唯一能融结构、热、电磁、流体、声学等为一体的有限元软件。
除了常规的线性、非线性结构静力、动力分析外,还可以解决高度非线性结构的动力分析、结构非线性及非线性屈曲分析。
提供的多种求解器分别适用于不同的问题及不同的硬件配置。
(3) 方便的后处理器ANSYS的后处理分为通用后处理模块(POST1)和时间历程后处理模块(POST26)两部分。
后处理结果可能包括位移、温度、应力、应变、速度以及热流等,输出形式可以有图形显示和数据列表两种。
(4) 多种实用的二次开发工具ANSYS除了具有较为完善的分析功能外,同时还为用户进行二次开发提供了多种实用工具。
如宏(Marco)、参数设计语言(APDL)、用户界面设计语言(UIDL)及用户编程特性(UPFs),其中APDL(ANSYS Parametric Design Language)是一种非常类似于Fortran77的参数化设计解释性语言,其核心内容为宏、参数、循环命令和条件语句,可以通过建立参数化模型来自动完成一些通用性强的任务;UIDL(User Interface Design Language)是ANSYS为用户提供专门进行程序界面设计的语言,允许用户改变ANSYS的图形用户界面(GUI)中的一些组项,提供了一种允许用户灵活使用、按个人喜好来组织设计ANSYS图形用户界面的强有力工具;UPFs(User Programmable Features)提供了一套Fortran77函数和例程以扩展或修改程序的功能,该项技术充分显示了ANSYS的开放体系,用户不仅可以采用它将ANSYS程序剪裁成符合自己所需的任何组织形式(如可以定义一种新的材料,一个新的单元或者给出一种新的屈服准则),而且还可以编写自己的优化算法,通过将整个ANSYS作为一个子程序调用的方式实现。
ANSYS的二次开发技术
![ANSYS的二次开发技术](https://img.taocdn.com/s3/m/92ba5bf9bb4cf7ec4afed0c2.png)
ANSYS的二次开发技术ANSYS 的二次开发技术ANSYS 提供的二次开发工具有三个:参数化设计语言(ANSYS Parametric Design Language,APDL),用户界面设计语言(User Interface Design Language,UIDL)以及用户可编程特性(User Programmable Features,UPFs)。
其中,前两种可归类为标准使用特性,后一种为非标准使用特性。
ANSYS 参数化设计语言(APDL)APDL 扩展了传统有限元分析范围之外的能力,提供了建立标准化零件库、序列化分析、设计修改、设计优化以及更高级的数据分析处理能力,包括灵敏度研究等。
ANSYS 用户可编程特性(UPFs)利用UPFs,用户可以开发下列方面的功能程序:(1) 开发用户子程序实现从ANSYS 数据库中提取数据或将数据写入ANSYS 数据库。
该种子程序可以编译连接到ANSYS 中,此时ANSYS 提供了10 个数据库操作命令;如果作为外部命令处理,可以在ANSYS 的任何模块中运行;(2) 利用ANSYS 提供的子程序定义各种类型的载荷,其中包括BF 或BFE 载荷、压力载荷、对流载荷、热通量和电荷密度等;(3) 利用ANSYS 提供的子程序定义各种材料特性,包括塑性、蠕变、膨胀、粘塑性、超弹、层单元失效准则等;(4) 利用ANSYS 提供的子程序定义新单元和调整节点方向矩阵,ANSYS 最多可以有6 个独立的新单元USER100-USER105;( 5) 利用ANSYS 提供的子程序修改或控制ANSYS 单元库中的单元;(6) 利用UEROP 创建用户优化程序,可以用自己的算法和中断准则替换ANSYS 优化过程。
(7) ANSYS 程序作为子程序在用户程序中调用,如用户自定义的优化算法。
ANSYS 软件本身是通过FORTRAN 和C 语言开发的。
使用UPFs 进行二次开发,在安装ANSYS 的基础上,还需要Compaq Visual FORTRAN 和MS Visual C++的支持。
对ANSYS程序进行二次开发
![对ANSYS程序进行二次开发](https://img.taocdn.com/s3/m/686315c79ec3d5bbfd0a746d.png)
分类号:单位代码:10019 密级:学号:s02660学位论文ANSYS二次开发及其大变形性能研究 The Study on Secondary Development &Large Deformation of ANSYS研究生:徐巍指导教师:周喆合作指导教师:申请学位类别:工学硕士专业领域名称:固体力学研究方向:有限元计算所在学院:理学院2005年5月独 创 性 声 明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得中国农业大学或其它教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
研究生签名:时间:年月日关于论文使用授权的说明本人完全了解中国农业大学有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件和磁盘,允许论文被查阅和借阅,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。
同意中国农业大学可以用不同方式在不同媒体上发表、传播学位论文的全部或部分内容。
(保密的学位论文在解密后应遵守此协议)研究生签名:时间:年月日导师签名:时间:年月日中国农业大学硕士论文摘要摘要POWER-FEM是中国农业大学自行开发的软件可用于求解静力、动力、线性、非线性等各类问题的通用有限元分析软件,尤其在几何非线性方面,POWER-FEM的单元采用有限变形理论进行设计,在实现过程中,全部采用精确计算。
ANSYS软件是有着广泛用户基础的通用有限元分析软件,在前后处理、与其他软件的数据共享上功能较强,在用户的二次开发方面,ANSYS提供了三种开发工具满足用户的不同开发需求。
为了POWER-FEM软件能够利用ANSYS在前后处理、数据共享方面的优势,本文利用ANSYS提供的二次开发工具对ANSYS进行二次开发,利用动态连接库的方法扩展了ANSYS在用户单元接入方面的功能,增强了ANSYS用户单元在ANSYS软件中的独立性,并将POWER-FEM的子程序库作为ANSYS的用户单元添加到ANSYS中。
对ansys 进行二次开发 [精华]
![对ansys 进行二次开发 [精华]](https://img.taocdn.com/s3/m/eaeddf0502020740be1e9bd1.png)
标准ANSYS程序是一个功能强大、通用性好的有限元分析程序,同时它还具有良好的开放性,用户可以根据自身的需要在标准ANSYS版本上进行功能扩充和系统集成,生成具有行业分析特点和符合用户需要的用户版本的ANSYS程序。
开发功能包括四个组成部分:参数化程序设计语言(APDL)用户界面设计语言(UIDL)用户程序特性(UPFs)ANSYS数据接口参数化程序设计语言(APDL)参数化程序设计语言实质上由类似于FORTRAN77的程序设计语言部分和1000多条ANSYS 命令组成。
其中,程序设计语言部分与其它编程语言一样,具有参数、数组表达式、函数、流程控制(循环与分支)、重复执行命令、缩写、宏以及用户程序等。
标准的ANSYS程序运行是由1000多条命令驱动的,这些命令可以写进程序设计语言编写的程序,命令的参数可以赋确定值,也可以通过表达式的结果或参数的方式进行赋值。
从ANSYS命令的功能上讲,它们分别对应ANSYS分析过程中的定义几何模型、划分单元网格、材料定义、添加载荷和边界条件、控制和执行求解和后处理计算结果等指令。
用户可以利用程序设计语言将ANSYS命令组织起来,编写出参数化的用户程序,从而实现有限元分析的全过程,即建立参数化的CAD模型、参数化的网格划分与控制、参数化的材料定义、参数化的载荷和边界条件定义、参数化的分析控制和求解以及参数化的后处理。
宏是具有某种特殊功能的命令组合,实质上是参数化的用户小程序,可以当作ANSYS的命令处理,可以有输入参数或没有输入参数。
缩写是某条命令或宏的替代名称,它与被替代命令或宏存在一一对应的关系,在ANSYS 中二者是完全等同的,但缩写更符合用户习惯,更易于记忆,减少敲击键盘的次数。
ANSYS工具条就是一个很好的缩写例子。
用户界面设计语言(UIDL)标准ANSYS交互图形界面可以驱动ANSYS命令,提供命令的各类输入参数接口和控制开关,用户在图形驱动的级别上进行有限元分析,整个过程变得直观轻松。
ansys与VC&Fortran程序的接口 及 二次开发经验
![ansys与VC&Fortran程序的接口 及 二次开发经验](https://img.taocdn.com/s3/m/edd8bac30c22590102029ddd.png)
将ANSYS作为子程序调用对于优化或参数化设计,可以在VC或FORTRAN中将ANSYS作为子程序调用。
具体调用方法如下:1.在VC中调用ANSYS::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);2.在FORTRAN中调用ANSYSLOGICAL(4) resultRESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -pansys_product_feature -i input_file -o output_file')3.说明1和2中,input_file为用APDL语言编写的ANSYS输入文件。
ansys_product_feature为你的ANSYS产品特征代码。
需要注意的是,在VC中调用ANSYS时,需要加一条判断语句,以确定ANSYS已经执行完毕。
在ANSYS中当然也可以以VC或FORTRAN作为子程序调用。
可以参看有关ANSYS二次开发方面的资料。
这个方法应该是与系统无关的。
在FORTRAN中不需要判断,FORTRAN会等ANSYS执行完毕才继续执行下一条语句。
在VC中,我没有找到与FORTRAN类似的函数,只好加一条循环判断语句。
如果谁能找着这样的函数,请告诉我,谢谢!判断方法很简单,只需判断错误文件file.err是否可写就可以了。
因为当ANSYS在运行时,file.err是不可写的,只有当它运行完毕,此文件才可写。
User Programmable FeaturesUPFs: What Are They?One of ANSYS’ strengths is that its toolbox will handle anything from a textbook plate with hole, all the way up to allowing you to recompile the code with FORTRAN scripts that you develop yourself. The User Programmable Feature (UPF) capability allows users to create their own subroutines and link them into ANSYS.What Are UPFs Used For?There are a variety of common uses for UPFs:• Material models• User-developed elements• User commands• Element orientation•User beam definition• Heat generation•Defining real constants “on the fly”How Hard Is It to Implement a UPF?Implementing a UPF is definitely more work than simply programming the action using APDL. However, if you have existing FORTRAN code you want to include or run externally, or have any of the above-mentioned challenges, then APDL will not suffice.To learn for yourself, you will want to surround your self with resources:• This article!•ANSYS Programmer’s Guide: User Programmable Featureso A must-have!!!!o All the needed subroutines are documented here•The hundreds of documented template scripts found within the installation directory in /custom/user•XANSYS. Submit your questions to the XANSYS community.•PADT. Submit your questions to us.What is the Process?1. Copy a sample routine from the ANSYS directories2. Modify it to do what you want3. Use the ANSYS batch compile script to compile and link4. Locate the new executable for use5. In your model, activate user features by applicable methoda. Define user elementb. Define user material modelc. Turn on user feature in element real constantsd. Define user command with /UCMDe. Setup in USRCAL command6. DebugDo I have to use FORTRAN?•All of these routines are called as FORTRAN and use FORTRAN calls to utility functions.•You could use FORTRAN wrappers to call C routines, but that is usually not worth the effort.•ANSYS provides you with a compile script to help with the process.•Don’t freak out. FORTRAN is very easy to use, and creating UPFs and recompiling ANSYS is actually very easy.You Want to Learn by Example?!?So before opening the ANSYS Programmer’s Guide, you want to take a look at what you’re getting into? Well then, buckle up...UPFs Example1, USER02.F•USER02.F contains code to offset nodes by supplied x,y,z values•Good example of structure of routines•Shows how other routines are calledTypical Header Information. Includes source control data (*deck), copyright information, confidentiality, and pointer to more information. Also function statement.*deck,user02 userANSYS,INCfunction user02 (initin,dpin,ch4in,ch8in)c *** primary function: user routine number 02c This demonstration offsets selected nodes with the command:c usr2,dx,dy,dzc *** ansys (r) copyright(c) 2000c *** ansys, inc.c *** Notice - This file contains ANSYS Confidential informationc /*************************************************************\c | see user01 for additional information on user routines |c\*************************************************************/ <snip>Arguments Section. Describes input and output arguments, what type they are, and what they are used for. Also, additional examples and help are put in this section. Externally passed and local variables are also defined here. Finally, the standard include statements are placed here.<snip>c input arguments:c variable (typ,siz,intent) descriptionc intin (int,ar(12),in) - integers from command linec dpin (dp,ar(12),in) - double precision from cmnd linec ch4in (ch*4,ar(12),in) - upper case 4 characters from cmndc ch8in (ch*8,ar(12),in) - as input 8 characters from cmndc output arguments: nonec user02 (int,sc,out) - result code (should be zero)c (which is ignored for now)c **************************************************************c intin(2), dpin(2), ch4in(2), & ch8in are all representationsc of the contents of the second field on the command linec (the field after the command label)c **************************************************************external wrinqr,ndinqr,ndgxyz,ndpxyz,erhandlerinteger wrinqr,ndinqr,ndgxyzinteger usr02,intin(12),iott,maxnp,i,kseldouble precision dpin(12),xyz(3)character*4 ch4in(12)character*8 ch8in(12)#include "ansysdef.inc"<snip>Calculations. Use ndinqr() to get max node number. This code snippet loops on all possible node numbers, checks to see if the node is selected, and gets its x, y, and z values. Then it does the offset and updates the x,y,z position with ndpxyz().<snip>maxnp = ndinqr (0,DB_MAXDEFINED)do i = 1,maxnpksel = ndgxyz (i,xyz(i))if (ksel .eq. 1) thenxyz(1) = xyz(1) + dpin(2)xyz(2) = xyz(2) + dpin(3)xyz(3) = xyz(3) + dpin(4)call ndpxyz (i,xyz(i))endifenddo<snip>Clean Up and Exit. This code snippet is used to figure out the standard ouput unit, and then write a message to it. It will also write a message to a GUI pop-up box. It will then set the return value and leave.<snip>c ***** write to output file *****iott = wrinqr(WR_OUTPUT)write (iott,2000)2000 format (/' NODE OFFSET COMPLETE '/)c ***** write to GUI window *****call erhandler ('user02',3000,x 2,'NODE OFFSET COMPLETE',0.0d0,' ')c ***** required return value *****user02 = 0returnend<snip>UPFs: Example 2, USERCR.FCreep strain due to constant applied stress:subroutine usercr (elem,intpt,mat,ncomp,kfirst,kfsteq,e,posn,d, x proptb,timval,timinc,tem,dtem,toffst,fluen,dfluen,epel, x epcrp,statev,usvr,delcr)c#include "impcom.inc"external erhandlercc user-defined fortran parametersc --- size of usvr datainteger nuval,nintpparameter (nuval=1,nintp=1)cc external subroutines and functionsexternal egendouble precision egenexternal vapb1,vamb1,vmultcc integer variablesinteger elem,intpt,mat,ncomp,kfirst,kfsteqcc double precision variablesdouble precisionx e,posn,d(ncomp,ncomp),proptb(72),timval,timinc,tem,dtem, x toffst,fluen,dfluen,epel(ncomp),epcrp(ncomp),x statev(ncomp*5+2),usvr(nuval,nintp),delcr,temabs,con,x del(6),epet,sigen,eptot,ept(6),c -PADT--- PADT added variablesx qovrk,c1,alpha,dbln,crprt,vrbflg,x aaaa,bbbb,cccc,dddd<snip>cc --- initial checksc --- author should remove the warning below when making changes if (intpt.eq.1 .and. kfirst.eq.1)cx call erhandler('usercr',5000,2,x 'ANSYS,INC.-supplied version of coding for USERCRx has been used.'x ,0.0d0,' ')cif (nuval*nintp.gt.840)x call erhandler('usercr',5010,4,x 'Maximum storage allowed by USVR has been exceeded.'x ,0.0d0,' ')cc --- initialize creep strain increment in case on creepdelcr = 0.0d0c --- no creep if time is not movingif (timinc .le. 0.0d0 .and timval .le. 0.0d0) fo to 999c --- no creep if temperature is not definedtemabs = tem + toffstif (temabs .le. 0.0d0) thenccall erhandler('usercr',5020,3,x 'Temperature= %G must be greater than zero for creep.'x ,temabs,' '_cgo to 999endif<snip>cc ***** define the equivalent strain and stress *****c --- define the equivalent strain using the function egenepet = egen (nocomp,epel(1),posn)c --- no cree if the strain is zeroif (epet .eq. 0.0d0) go to 999c --- define the stresssigen = e*epetcc ***** define the creep strain rate *****c ***** normal beginning of user changescc -PADT--- Put table values in constants for claritycc1 = proptb(1)alpha = proptb(2)dbin = proptb(3)vrbflg = proptb(5)cc -PADT--- If table item 4 (Q/k) is 0, set default of 8110if (proptb(4) .eq. 0) thenqovrk = 8110elseqovrk = proptb(4)endif<snip><snip>cc --- define the creep strain ratecrprt = c1*(sinh(alpha*sigen)**dbln)*dexp(-1*qovrk/temabs)c ***** end of sample creep lawc ***** normal end of user changescc ***** compute creep strain increments for each component ***** cc --- define the creep strain increment from the ratedelcr = crprt*timinccc --- use prandtl-reuss relations to compute increments for each if (ncomp .eq. 1) thendel(1) = delcr*epel(1)/epetelsecon = delcr/epetcon = con/(2.0d0*(1.0d0+posn))call vmult (epel(4),del(4),ncomp-3,3.0d0*con)del(1) = con*(2.0d0*epel(1) - epel(2) - epel(3))del(2) = con*(2.0d0*epel(2) - epel(3) - epel(1))del(3) = con*(2.0d0*epel(3) - epel(1) - epel(2))endifcc --- update the strainscall vapb1 (epcrp(1),del(1),ncomp)call vamb1 (epel(1),del(1),ncomp)<snip><snip>c -PADT--- Do Verbose I/O, if vrbflg eq 1if (intpt.eq.1 .and. vrbflg .eq. 1) theniott=6write (iott,*) 'element number = ',elem,' gauss point 1' write (iott,1) 'time=',timval,' stress=',sigen,' temp=',tem write (iott,2) 'delcr=',delcr,' del=',del(1)endifc -PADT--- Do Summary I/O, if vrbflr eq 2if (intpt.eq.1 .and. vrbflg .eq. 2) theniott = 34if (elem .eq. 1) thenepet = egen (ncomp,epel(1),posn)write (iott,3) elem,timval,sigen,temabs,crprt,delcr,epet endifendifc999 return1 format(2x,3(a,d15.8))2 format(2x,2(a,d15.8))3 format(2x,i6,6(',',g16.9))endANSYS Input File for USERCR!ANSYS Input File for USERCR! The ANSYS TB values are as follows:! 1 C1! 2 alpha-sub-1! 3 n! 4 Q/k (defaults to 8110)! 5 Verbose output flag (1 = verbose output, 0 = standard output) !c1 = 9.62e4a1 = 6e-4n1 = 3.3qovrk = 8110vrbs = 2TB,CREEP, 1tbdata,6,100 !use user creeptbdata,1,c1tbdata,2,a1tbdata,3,n1tbdata,4,qovrktbdata,5,vrbsUPFs: Lessons to Consider•Always try APDL macros first•Consider external commands to avoid custom versions of ANSYS•You must have the proper FORTRAN compilero See installation guide• KISS•Start by replicating the existing ANSYS functionalityo Add your changes slowly•Write and debug on simple models•Don’t be afraid of write(*,*)。
ANSYS程序的二次开发
![ANSYS程序的二次开发](https://img.taocdn.com/s3/m/43b68a2e5901020207409c87.png)
ANSYS程序的二次开发标准ANSYS程序是一个功能强大、通用性好的有限元分析程序,同时它还具有良好的开放性,用户可以根据自身的需要在标准ANSYS版本上进行功能扩充和系统集成,生成具有行业分析特点和符合用户需要的用户版本的ANSYS程序。
开发功能包括四个组成部分:参数化程序设计语言(APDL)用户界面设计语言(UIDL)用户程序特性(UPFs)ANSYS数据接口参数化程序设计语言(APDL)参数化程序设计语言实质上由类似于FORTRAN77的程序设计语言部分和1000多条ANSYS命令组成。
其中,程序设计语言部分与其它编程语言一样,具有参数、数组表达式、函数、流程控制(循环与分支)、重复执行命令、缩写、宏以及用户程序等。
标准的ANSYS 程序运行是由1000多条命令驱动的,这些命令可以写进程序设计语言编写的程序,命令的参数可以赋确定值,也可以通过表达式的结果或参数的方式进行赋值。
从ANSYS命令的功能上讲,它们分别对应ANSYS分析过程中的定义几何模型、划分单元网格、材料定义、添加载荷和边界条件、控制和执行求解和后处理计算结果等指令。
用户可以利用程序设计语言将ANSYS命令组织起来,编写出参数化的用户程序,从而实现有限元分析的全过程,即建立参数化的CAD模型、参数化的网格划分与控制、参数化的材料定义、参数化的载荷和边界条件定义、参数化的分析控制和求解以及参数化的后处理。
宏是具有某种特殊功能的命令组合,实质上是参数化的用户小程序,可以当作ANSYS 的命令处理,可以有输入参数或没有输入参数。
缩写是某条命令或宏的替代名称,它与被替代命令或宏存在一一对应的关系,在ANSYS 中二者是完全等同的,但缩写更符合用户习惯,更易于记忆,减少敲击键盘的次数。
ANSYS 工具条就是一个很好的缩写例子。
用户界面设计语言(UIDL)标准ANSYS交互图形界面可以驱动ANSYS命令,提供命令的各类输入参数接口和控制开关,用户在图形驱动的级别上进行有限元分析,整个过程变得直观轻松。
ANSYS二次开发及应用
![ANSYS二次开发及应用](https://img.taocdn.com/s3/m/feac006daf1ffc4ffe47ac9f.png)
如何定制Beam188/189单元的用户化截面ANSYS提供了几种通用截面供用户选用,但有时不能满足用户的特殊需求。
为此,ANSYS提供了用户创建截面(库)的方法。
如果你需要创建一个非通用横截面,必须创建一个用户网格文件。
具体方法是,首先创建一个2-D实体模型,然后利用SECWRITE命令将其保存(MainMenu>Preprocessor>Sections> -Beam-Write Sec Mesh)。
该过程的细节如下:1.创建截面的几何模型(二维面模型)。
2.对所有线设置单元份数或者单元最大尺寸 (Main Menu>Preprocessor> -Meshing-Size Cntrls>-Lines-Picked Lines或使用MeshTool)。
记住:保证模型中的区格(cell)数目不能超过250个。
3.选择菜单Main Menu>Preprocessor>Sections>-Beam-Write Sec Mesh,弹出一个拾取窗口,单击Pick All拾取包含区格的所有面。
4.ANSYS自动在所有面上创建区格。
在划分网格时,ANSYS可能显示单元形状差的消息,也可以被忽略不显示,但是总能看到一条消息“Unable to mesh area....”。
如果已经完成上述工作,你清除所有面上的单元(Main Menu>Preprocessor>-Meshing-Clear> Areas),并重复第2、3、4步,即必须重新控制网格密度。
5.如果第4步成功则弹出Write Section Library File对话框,File Name域填入一个未用过SECT文件名,Drives域指定一个截面文件存放驱动器,Directories域指定一个截面文件存放目录,然后单击按钮OK,完成用户截面文件建立。
如果在第3步中给线指定太多单元份数,区格和节点的数目可能超过限制范围,必须清除所有面上的单元2~4步,直到获得合适数量的区格和节点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ANSYS基于VC++6.0的二次开发方法ANSYS基于VC++6.0的二次开发与相互作用分析在ANSYS中的实现1 概述ANSYS是一套功能十分强大的有限元分析软件,能实现多场及多场耦合分析;是实现前后处理、求解及多场分析统一数据库的一体化大型FEA软件;支持异种、异构平台的网络浮动,在异种、异构平台上用户界面统一、数据文件全部兼容,强大的并行计算功能支持分布式并行及共享内存式并行。
该软件具有如下特点:(1) 完备的前处理功能ANSYS不仅提供了强大的实体建模及网格划分工具,可以方便地构造数学模型,而且还专门设有用户所熟悉的一些大型通用有限元软件的数据接口(如MSC/NSSTRAN,ALGOR,ABAQUS等),并允许从这些程序中读取有限元模型数据,甚至材料特性和边界条件,完成ANSYS中的初步建模工作。
此外,ANSYS还具有近200种单元类型,这些丰富的单元特性能使用户方便而准确地构建出反映实际结构的仿真计算模型。
(2) 强大的求解器ANSYS提供了对各种物理场量的分析,是目前唯一能融结构、热、电磁、流体、声学等为一体的有限元软件。
除了常规的线性、非线性结构静力、动力分析外,还可以解决高度非线性结构的动力分析、结构非线性及非线性屈曲分析。
提供的多种求解器分别适用于不同的问题及不同的硬件配置。
(3) 方便的后处理器ANSYS的后处理分为通用后处理模块(POST1)和时间历程后处理模块(POST26)两部分。
后处理结果可能包括位移、温度、应力、应变、速度以及热流等,输出形式可以有图形显示和数据列表两种。
(4) 多种实用的二次开发工具ANSYS除了具有较为完善的分析功能外,同时还为用户进行二次开发提供了多种实用工具。
如宏(Marco)、参数设计语言(APDL)、用户界面设计语言(UIDL)及用户编程特性(UPFs),其中APDL(ANSYS Parametric Design Language)是一种非常类似于Fortran77的参数化设计解释性语言,其核心内容为宏、参数、循环命令和条件语句,可以通过建立参数化模型来自动完成一些通用性强的任务;UIDL(User Interface Design Language)是ANSYS为用户提供专门进行程序界面设计的语言,允许用户改变ANSYS的图形用户界面(GUI)中的一些组项,提供了一种允许用户灵活使用、按个人喜好来组织设计ANSYS图形用户界面的强有力工具;UPFs(User Programmable Features)提供了一套Fortran77函数和例程以扩展或修改程序的功能,该项技术充分显示了ANSYS的开放体系,用户不仅可以采用它将ANSYS程序剪裁成符合自己所需的任何组织形式(如可以定义一种新的材料,一个新的单元或者给出一种新的屈服准则),而且还可以编写自己的优化算法,通过将整个ANSYS作为一个子程序调用的方式实现。
鉴于上述特点,近几年来,ANSYS软件在国内外工程建设和科学研究中得到了广泛的应用。
但这些应用大多局限于直接运用ANSYS软件进行实际工程分析,对利用ANSYS提供的二次开发工具进行有限元软件设计却很少涉及。
本文首次利用ANSYS软件的二次开发功能,以VC++6.0为工具,运用APDL语言,对ANSYS 进行二次开发,编制框筒结构-桩筏基础-土相互作用体系与地震反应分析程序。
2 程序设计目标针对某一实际工程问题,ANSYS所提供的APDL语言可对ANSYS软件进行封装。
APDL语言即ANSYS软件提供的参数化设计语言,它的全称是ANSYS Parametric Design Language。
使用APDL语言可以更加有效地进行分析计算,可以轻松地进行自动化工作(循环、分支、宏等结构),而且,它是一种高效的参数化建模手段。
使用APDL语言进行封装的系统可以只要求操作人员输入前处理参数,然后自动运行ANSYS进行求解。
但完全用APDL编写的宏还存在弱点。
比如用APDL语言较难控制程序的进程,虽然它提供了循环语句和条件判断语句,但总的来说还是难以用来编写结构清晰的程序。
它虽然提供了参数的界面输入,但功能还不是太强,交互性不够流畅。
针对这种情况,本文用VC++6.0开发框筒结构-桩筏基础-土相互作用有限元分析程序(简称LWS程序)。
本程序设计目标是利用VC++6.0对ANSYS进行封装。
用VC++6.0对ANSYS模拟框筒结构-桩筏基础-土相互作用进行二次开发,用户只需输入诸如地震波、计算时间步长、阻尼比等物理性能参数等,系统就能自动调用ANSYS计算程序,自动进行网格划分、地震动加载以及自动求解。
该系统由于前台开发友好、方便、易用的人机交互界面,对复杂的、难于理解和掌握的ANSYS命令流进行后台封装,因此,程序设计可让即使从未认真学习过ANSYS软件的工程设计人员也能很好地借助本系统进行结构抗震性能有限元分析,具有较强的处理实际问题能力。
用户输入计算参数,即可调用后台的ANSYS命令进行计算,ANSYS把计算结果返回给用户,进行后处理。
程序设计的主要原则和功能如下:(1)方便原则,即程序模块应具有良好的用户界面和易用性。
程序前台设计采用Windows提供的标准图形用户界面(GUI),用户无须接受专门训练即可使用。
同时,程序应具有良好的容错和纠错能力,避免用户操作不当造成损失。
(2)程序系统能够提供用户以下功能:①允许用户可以根据实际计算工况,输入特定的计算参数,包括地震波选择、计算时间步长、地震波调幅与否等。
②用户在输入各种参数以后、进行计算之前可以对输入的数据进行修改、添加和删除操作,以保证输入正确的参数。
③用户通过界面调用后台的ANSYS命令流进行计算,能够得到最后的计算结果文件,供用户进行后处理和结果分析。
④用户可以添加新的功能或新的二次开发以实现程序升级。
(3)程序应具有良好的可移植性,不依赖于特定的硬件设备,只要能安装ANSYS和VC++6.0的硬件环境都能使用本系统,保证程序使用的广泛性。
(4)程序代码应具有开放性和可重用性。
这样,在进一步的设计中,能保证设计者可以方便地对代码进行修改扩充;同时,提供一定的设计接口,新的设计者可以根据接口,无须对程序进行大幅度的修改,就可以进行新的开发,以适应新的特殊要求。
程序的开发平台是Microsoft VC++6.0、ANSYS6.1,基于WindowsXP编程。
程序实现是利用微软提供的Windows编程接口MFC和ANSYS公司的ANSYS/Multiphysics产品,采用面向对象的程序设计方法。
3程序的主要模块和设计如图3-2所示,程序的主要模块有:用户界面模块、ANSYS计算模块、VC调用接口模块和VC后处理模块,分别论述如下:3.1 ANSYS模块ANSYS为了满足用户的特殊需求,建立了开放的体系结构,提供了二次开发接口APDL、UIDL和UPFs(User Programming Features,用户编程特性)等。
其中,ANSYS接口允许用户将自己的VC代码连到ANSYS中去,或将ANSYS作为子程序调用,从而使ANSYS具备特殊的功能。
本文的ANSYS模块是使用APDL语言进行二次开发的。
在上面的二次开发中用到了参数化设计方法。
参数是APDL的变量(它们更象FORTRAN变量,而不像FORTRAN参数),不必明确声明参数类型,所有数值变量都以双精度数存储。
被使用但未声明的参数都被赋予接近0的“极小值”。
在二次开发中使用参数化设计方法,增强了程序的易读性和可移植性。
用户无须了解程序的具体结构只需改变参数值就可自动调用ANSYS模块。
3.2 VC调用模块VC调用模块在该系统中起着接受用户界面的输入、创建进程调用ANSYS模块进行计算的重要作用。
有两项工作是在实现在VC程序中调用ANSYS必须做的,一是要使接口程序能够修改ANSYSB的命令流文件路径及文件名称,这可通过注册表编程实现;二是要能在接口程序中运行ANSYSB应用程序,这涉及到创建进程的编程,下面分别介绍它们的具体实现。
1. 注册表编程在Windows(98/NT/2000/XP)系统上运行ANSYS安装程序后,便在Windows系统的注册表里记录了一些信息,如初始工作路径,文件名等。
利用VC平台调用ANSYS计算模块的程序必须指定ANSYS软件的运行目录以及用APDL语言开发的ANSYS模块程序路径,这样,ANSYS软件的批处理程序才能从给定的路径下读取命令流文件。
在接口程序中修改这些注册表信息,可以使用Windows提供的注册表编辑API(Application Programming Interface)函数[30,31],具体实现如下:HKEY hSubKey; // 定义子键LONG lRet;char RegPath[200]="SoftWare\\ANSYS, Inc.\\ANSYS\\ANSYS 6.1\\0";lRet=RegOpenKeyEx(HKEY_CURRENT_USER,RegPath,0,KEY_ALL_ACCESS,&hSubKey); // 打开子键if(lRet!=ERROR_SUCCESS)return;lRet=RegSetValueEx(hSubKey,"Extension",0,REG_SZ,(LPBYTE)"txt",3); //设置ANSYS批处理程序读取的文件扩展名if(lRet!=ERROR_SUCCESS)return;lRet=RegSetValueEx(hSubKey,"Jobname",0,REG_SZ,(LPBYTE)"ZHY");//指定ANSYS模块文件名if(lRet!=ERROR_SUCCESS)return;lRet=RegSetValueEx(hSubKey,"WorkingDirectory",0,REG_SZ,(LPBYTE)"E:\\LWS\\Workspace ",16);if(lRet!=ERROR_SUCCESS)return; // 键值出错返回RegCloseKey(hSubKey); // 关闭子键通过以上的设置后运行ANSYS批处理程序,界面变成如图3-3所示。
从图中可看出ANSYS模块工作路径E:\\LWS\\Workspace、初始文件名ZHY、ANSYS程序文件名ZHY.txt文件、计算结果输出文件名ZHY.out都已经自动出现在ANSYS批处理程序的输入框,往下ANSYS就可以自动从ZHY.txt读取命令流进行计算并将结果输出到ZHY.out文件中。