ANSYS基于VC++6.0的二次开发方法
ANSYS的二次开发技术

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文档(一)ANSYS在操作时有两种途径,一种是GUI途径,即通过ANSYS可视化的操作菜单来实现对分析过程的操作,而另外一种就是所谓的命令流,这更像是一种后台操作,操作者分析的过程即是将一条条ANSYS命令按照自己的分析思路组织起来,而ANSYS通过调用这些命令完成分析。
初学ANSYS的人,对命令流充满了迷惑,因为当拿出一个分析过程自动形成的.log文件之后发现一行一行犹如天书,但这些正是ANSYS命令的真实面目,而我们常使用的菜单操作只不过是把这些命令的本来面目给遮盖起来了,在学习ANSYS的过程中,随着学习过程的深入,加之以对命令流本身有个追本溯源的原动力驱使,命令流本身也不是很难。
命令流与菜单操作相比各有其优缺点,学习ANSYS一般从菜单操作开始,因为菜单操作能够做到于使用者直接对话,简洁和可视化,但其缺点是如果一直按照菜单操作的方式进行便不能窥视到ANSYS的工作过程,尤其是在进行同个问题变换其中一个或几个参数进行分析时,其重复操作的工作太多,大大减小了分析的趣味性,把精力放在了没有技术含量的操作上。
ANSYS命令流则弥补了这一缺陷,虽然难以理解,但当使用命令流进行分析时,能够大大的缩短分析的手工工作量,尤其是配合一定APDL语句,能够使分析过程自动进行,而操作者要做的仅仅是调用已经编制好的命令流文件而已,这时操作者的精力将会是放在对整个分析过程的分析和研究上,因为一旦分析过程研究及其实现机理研究透彻,那随之而来的所谓分析只是计算机自己的问题,操作者可以调用完命令之后随心所欲的做其他事情,而且学习命令流可以更好的理解ANSYS的工作过程和分析机理,这是菜单操作方式所没有的,我们在学习ANSYS过程中,菜单操作仅仅是对ANSYS使用环境熟悉的一个过程。
谈到命令流的种种优点,便引起这样一个问题,如何学习ANSYS命令流?更确切的说如何入门命令流?学习ANSYS的人会发现,初学ANSYS命令流会感到无从下手,不知道该如何去进入这个世界,好像是ANSYS命令流的世界只有一个很小的门,大多数人都钻不过去,只有少数人钻了过去看到了里面的美妙景象,其实来说命令流的世界没有想象的这么难以进入。
ansys项目二次开发思路

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二次开发

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命令参考手册》某些命令和其它特性帮助用户提供许多有用的信息。
但是,它们仅仅适合于极小问题并只包含较少迭代求解情况;否则,它们将会输出大量的数据。
下面将详细介绍/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二次开发

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二次开发

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卡读写器二次开发的分析和实现

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次 , 该 则
- 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文件中。