基于数据文件的ANSYS二次开发_p
[2]ansys的upfs二次开发概述与算例
![[2]ansys的upfs二次开发概述与算例](https://img.taocdn.com/s3/m/33e38382dc88d0d233d4b14e852458fb770b384e.png)
*** 用户可编程特性 (UPFs) ***ANSYS程序的开放结构允许用户连接自己的FORTRAN程序和子过程。
实际上,现在用户看到的许多ANSYS“标准”用法都是由以前用户过程引进的。
1.1 什么是UPFs?用户可编程特性是ANSYS的功能允许用户使用自己的FORTRAN程序。
UPFs适用于ANSYS/Multiphysics, ANSYS/Mechanical, ANSYS/Structural, ANSYS/PrepPost和ANSYS/University(研究版和大学版)产品系列。
UPFs允许用户根据需要定制ANSYS程序,如用户定义的材料性质,用户单元类型,用户定义的失效准则等。
用户还可以编写自己的优化设计算法将整个ANSYS程序作为子过程来调用。
注意:用户使用UPFs必须十分小心仔细。
通过连接自己的FORTRAN程序,用户生成了一个针对用户特定计算机的ANSYS程序版本。
在并行系统中使用ANSYS时不允许使用用户可编程特性。
另外,UPFs是一种非标准的使用方法,ANSYS公司质量保证的测试程序没有包括这部分内容。
用户必须负责保证用户子程序结果正确并不影响别的标准功能的运行。
1.2 如何使用UPFs?UPFs可以从简单的单元输出功能到很复杂的用户单元或用户优化算法。
因此,不进行特定的程序细节描述是很难完成这些子程序功能的。
在Programmer's Manual for ANSYS中有详细的解释。
一个典型的UPF包括下列步骤:1). 在FORTRAN77中编制用户程序。
在ANSYS中所有的用户程序源代码都是公开的。
大部分完成至少一个简单的功能,因此在编制程序前应列出一份完整的可用程序表。
2). 编译并将用户程序连接到ANSYS程序中,生成新版本的ANSYS。
3). 用户可能要验证自己做的改动是否影响其他ANSYS标准功能的使用。
可以通过做几个ANSYS Verification Manual中的例题来验证。
基于ANSYS的二次开发软件在加固工程中的应用

唐名立 福建省建筑设计研究院福建福州
350000
摘要混凝土结构加固工程现在并没有成熟的有限元软件可以进行结构受力分析,为了更准确地分析加固 工程中钢筋砼构件的受力情况,本文基于大型有限元软件ANsYs进行了二次开岩 并将此二次开发软件在工
程中用于分析砼结构的受力性能,由于界面友好极大简化了工程设计人员的学习与使用,极大地提高了工程 设计人员的工作效率。 关键词 ANsYS;二次开发
接口,使用编程工具对ANsYs软件进行功能上的完善,使 其更加便于工程人员的使用。 为了便于用户进行二次开发,ANsYs软件自身提供了 几种专门二次开发技术,能够有效地与ANsYs进行对接, 如下所示:
建筑与装饰201 6年9期
12l
科技信息化 基于ANsYs通用有限元软件,本文专门开发了关于钢 筋混凝土构件结构加固受力分析的有限元系. 程序主要分成两大功能,一是以ANsYS程序接口为基 础的Vc/vB二次开发程序功能模块;二是钢筋砼结构构件 受力分析建模及计算单元模块。 程序系统主要由以下三大模块组成,一是利用visual
Basic程序语言的设计的用户交互界面;二是预
先设定的专门针对钢筋混凝土加固构件有限元分析的APDL 参数化程序文件;三是利用visual
C++,visual
Basic程序语
言设计的基于ANsYs后处理器的二次数据处理程序。 按照ANSYs的有限元分析过程,系统的主要任务就 是,建立完整的三维有限元模型,生成APDL参数化文件, 导入ANSYS进行分析处理,最后将ANSYs的计算结果进行 二次处理然后输出给用户。根据以上要求,程序主要包括 以下四个功能模块: (1)启动交互式界面; (2)计算模型参数化建模; (3)预应力FRP筋混凝土梁导入ANsYS进行有限元计 算; (4)后处理结果数据及图形显示。 1.2程序功能模块设计 基于程序功能的实现和程序系统的设计过程,将程序 划分为三个模块:前处理、中心计算和后处理,各模块关 系如图2.1所示: 本文的wFPP程序系统的功能实现主要分成三大系统模 块,分别是前处理(包括交互界面和APDL参数化文件)、 中心计算(包括ANsYs计算和ANsYs后处理)和二次后处 理,其相互之间的组织调用层次结构如下图2.1所示:
ANSYS参数化编程语言的二次开发及应用

A S S参数化编程语言的二次开发及应用 ★ NY
口 何芝仙 口 曹 菁。
芜湖 2 10 4 00
上海 203 000
1安徽工程科技学院机械系 .
2上海交通大学动力与机械学院 . 摘
要 : 用 A S S中 的 A D 利 NY P L语 言 进 行 二 次 开 发 , 写 专 门程 序 , 编 实现 了 自动 多次 改 变 边界 条件 , 解 并记 录指 定 求
o h e i n td n d s Asa r s l,t o t p c r be r ov d ie e t g u f e f xb e ma r n a c lt n o e n te d sg ae o e . e u t w y ia p lms ae s l e , 、 、s t n p o e i l l o i h t l ti a d c l ua i ft x o h
i ovde . Thsp o r m sa e t h n e te b un a y c nd t nsa tma ial n e m p t n r c d te sr s rd fr ain spr i d i r g a i bl o e a g h o d r o ii uo tc lya d o u ea d e or h te so e om to o
g a e) 于 二 次 开 发 , 以 自动 完 成 某 些 功 能 或 建 模 , ug 用 可
大 大 扩 展 了 软 件 的 功 能 【1本 文 针 对 结 构 分 析 的 某 些 J。
的径 向变形 量 ( r=1 2, , ; , … m s=1 2, , ) c , … n ; 为 作
如下 :
法 一 。 采 用 常 规 的 人 工 方 法 建 立 柔 度 矩 阵 需 反 复 多 1但
基于ANSYS二次开发的夹层玻璃面板有限元分析

Kewod y rs
Lmia dgas N n na n eee n V A D AN Y cn a ee p n a nt s e l ol er i l i i f t met B P L S Ss odr dvl met e y o
过程 复 杂 , 要 花 费很 多 的时 间 和精 力 , 需 一般 设 计 人员 很 难
0 引 言
Ab t a t sr c To ma e t e c lu ai g r s l ls r t c u l s e s c a a trs c f lmi ae l s a e ,b s d o k h ac l t e u t co e o a t a t s h r ce t s o a n td ga s p n l a e n ANS e o d r n s r i i YS s c n a y
i t a ay i h mp c fP l o h e rn a a i o a e a e nf l t k n i t c o n .At h a i ,a ay i g f i n lsst e i a to VB f m n t e b a i g c p ct ft e p n lh sb e u l a e no a c u t ne i y h y e s me t t me n a l sn n p o r m t r n l ne f c rg a wi fi d y i tra e,c n e i n p r t n a d c mp e e p a tr min i d v lp d b lt r h e o v n e t o e ai o n o lt a mee z o s e eo e y VB p af m. T e k y tc n l g f r i o h e e h ooy o
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)以及单元场载荷调试结果)。
基于ANSYS的二次开发在张弦立体桁架结构设计中的应用

Emalf u d 0 @ 1 6 e m i:o n 3 6 2.o
体、 电磁 和结 构诸 多 模块 , 备 完备 的 前 、 处 理 功 具 后
能, 强大 的求解 器 以及 多 种 方 便 而 实 用 的二 次 开发
Han Tao
Huan Yi g g n
( .Xi 8 ns iu e o c ie t a sg 1 ’ n I tt t fAr t c ur 1De i n,Xi a 0 5 Chi a h ’ n 71 0 4, n ;
2 C o lg v lEn i e rng,X i a n v r iy o r h t c u e a d Te h l gy,X i a 0 5, h n ) . le e ofCi i gn ei ’ n U i e s t fA c ie t r n c no o ’ n 71 05 C i a
技术 , 广 泛 用 于 核 工 业 、 道 、 油 化 工 、 天 航 被 铁 石 航 空、 机械 制造 、 源 、 能 汽车 交通 、 国防军 利 、 轻 地 水 日用 家 电 等一 般 工业 及科 学研 究 。然 而 , 为 通 用 软件 不 免 在 某 些 作 专业 领域 中有 所欠 缺 , 些 不 足 和欠 缺 势 必 阻 碍 该 这 软件 在结 构工 程 中 的应 用 。 因此 , 现 该 大 型 通 用 实 有 限元程 序在 结构 工程 中的二 次开 发应 用是 十分 迫
依据和参考模型 , 以提 高科 研 和 设 计 的 工作 效 率 。 关键词 : ANS YS;二 次 开发 ;张 弦 立 体 桁 架 ;APDL;UI DL
基于ANSYS二次开发的开关磁阻电机电磁场分析软件
s fwa eh sg o ie eitra e r m o t gt ep r mee ft eee tia c ie yt x o tn n lss o t r a o dChn s n efc sfo i mp ri h aa tro h lc r l n c ma hn r Oe p riga ay i r s l. tas a k s rt a o a l rwi e ut I lo c n ma e u e h tn tfmia t ANS e c n e in o o e ae t e a ay i. ig o h i h YS b o v ne tt p r t h n lss Ben ft e s fwa eh sf n t n o e e tbemo eig. r igef in y i i r v d ot r a u ci fr p a a l o dl n wo kn fie c s mp o e . c KEY W 0RDS:S t e eu tn emo o wih d rl ca c tr l ANS eo d r e eo me t YSl c n ay d v lp n APDLl DL S l UI
fed s f a k g wh c c n c n r l a l c u s s b u i l o t p c a e i h a o t o l o r e a o t ANS d l g o wi h d e u t n e mo o .Th s YS mo e i f r s t e r l c a c t r n c i
成 能 对 AN Y S S建 模 分 析过 程 进 行 控 制 的 开 关 磁 阻 电 机 电 磁 场 分析 专用 软件 包 l 件 从 输 入 电 机 参 数 到 输 出分 析 软
基于VB的ANSYS二次开发及在连杆静力分析中的应用
基于VB的ANSYS二次开发及在连杆静力分析中的应用摘要:本文以通用有限元分析软件an sys 10.0 环境为基础,介绍an sys二次开发技术,以及三种开发工具。
最后,以vb和apdl 为手段,建立了一个柴油机连杆实例参数化分析系统。
此系统具有友好、方便、易用的人机交互界面,对复杂、难于理解和掌握的ansys 命令流进行了后台封装,避免了大量的重复性分析工作,提高了分析效率。
abstract: the paper details the technology of secondary development and three kinds of secondary developing tools of ansys on the basis of finite element analysis software—an sys10.0. lastly, a model unit analysis system of an automobile connecting road was developed based on visual basic 6.0 and apdl. the analysis system has friendly convenient and flexible man-machine conversation interface,while the complicated ansys command stream is encapsulated in background.it avoids large amount of repeated analysis work and improves the efficiency.关键词: ansys;二次开发;静力学分析;连杆key words: ansys;secondary development;static analysis;rod中图分类号:tp391 文献标识码:a 文章编号:1006-4311(2013)23-0207-040 引言计算技术的飞速发展,带来了结构分析优化技术的突破,国外相继出现了一些像ansys、marc等通用大型的有限元分析软件,这些软件不仅具有良好的界面、方便的前后处理及强大的计算分析功能,还具有开放的二次开发功能。
基于VB的ANSYS二次开发与应用
Widw 平台 , no s 结合一个岩土沉 降的分 析过程来说 明V B接 口的A S S 用方法 。用 V NY调 B生成 A D ( N Y aa er ei a — P LA S SP rm tcD s nL n i g
关 键 词 : A YS 二 次 开 发 VB; NS ;
中图 分 类 号 : P 1 文 献标 识码 : 文章 编 号 :09 3 4 (0 21— 6 4 0 T 31 A 10 — 0 42 1 )9 4 1— 4
Ap l i g VB eS c n v l p e to pyn t t e o d De eo m n f o h ANS YS
g ae, ug1让用户在界面平台上直接调用 A S S N Y 进行前后处理 。
1参数 文 件的 生成
在A SS N Y 进行计算分析时 , 通常可 以采用两种方式进行 : ) U 操作或输入命令 流 ;) 1G I 2 命令的批处理 。对于一个 比较复杂的问 题进行分析 , 仅仅采用 G I U 操作或输入命 令流操作难于对错误进行修改 , 分析也仅限精通 A S S N Y 的操作人员 。可 以先用 V B语言生 成命令流文件 , 再进行批处理 , 这样对 于一个 问题 的分析就可 以先在编制 V 程序 时及时修改调试 。本算例岩土的沉降计算模型为 B 五层 , 每层设定不 同的材料相同的宽度 , 当下层 的矿藏采空以后 , 计算 岩体 的移动和变形等情 况。 通过 主菜单进入前处理操 作 , 弹出图 1 将 或图 2 的输入窗 口。工程计算人员 可根 据需要添加其 他的前处理参数 输入 , 直接在 V B的输入窗 口输入模型 的模 型常数和所选材料 的材料参数 。对 于不懂 V 和 A S S的使用者 只需要 在图形窗 口进行输入操作就 B NY 行了, 操作十分 简便快洁 。 根据 A S S N Y 运行 的基本原理 , 每运行一句 , 就执行一条命令 , 相应 的便生成一段 1 文件 .g o 进行批 处理的时 , 同样 的对生成 的命令 文件 逐条 执行 。因此就可 以用 V B生成逐条 的命令 , 用主命令程序嵌套 V 采 B生成逐 条 命令供 A S S N Y 计算调用 。通过下面的输入窗 口给计算模型赋参数值。
基于VB的ANSYS二次开发及在连杆静力分析中的应用
b a s e d o n Vi s u a l Ba s i c 6 . 0 a n d AP DL . T h e a n a l y s i s s y s t e m h a s f r i e n d l y c o n v e n i e n t a n d l f e x i b l e ma n — ma c h i n e c o n v e r s a t i o n i n t e r f a c e, wh i l e t h e c o mp l i c a t e d A NS YS c o mma n d s t r e a m i s e n c a p s u l a t e d i n b a c k g r o u n d . I t a v o i d s l a r g e a mo u n t o f r e p e a t e d na a ly s i s w o r k a n d i mp r o v e s t h e
b a s i s o f f i n i t e e l e me n t a n a l y s i s s o f t wa r e - AN S YS1 0 . 0 . L a s t l y , a mo d e /u n i t a n a l y s i s s y s t e m o f n a a u t o mo b i l e c o n n e c t i n g r o a d wa s d e v e l o p e d
A N S Y S软 件 是 融 电、 磁、 热、 结构 、 声学 、 流 体 于 一 体 型 的脚 本 语言 [ z 3 。A P D L通过 建 立智 能 化 分析 的 手段 , 为用
Ab s t r a c t : T h e p a p e r d e t a i l s t h e t e c h n o l o g y o f s e c o n d a r y d e v e l o p me n t a n d t h r e e k i n d s o f s e c o n d a r y d e v e l o p i n g t o o l s o f ANS YS o n t h e
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.4 数据存储
通过读取数据文件,我们往往希望提取大量的数据,而且这些数据的多少也可能并不知 道,没有办法给数组提前分配空间。因此,采用 MFC 中定义的一组数组类,能够极大的方便 数据的存储和调用。这些数组类分为不基于模板类和基于模板类两种[3]。可以方便的定义整 数类数组,无符号整数变量数组,CString 数组,double 类型数组及其该类型的指针数组等。 这些数组类还具有许多成员函数如:InsertAt(),Add(),GetSize()等,能够方便实 现插入,在数组末端增加数组元素,获得数组元素的个数等功能,简化了对获取数据的操作。
标准值
-3-
最大值
86.78
115.68
114.63
106.47
117.5
误差
26.1%
1.5%
2.4%
9.4%
-
最小值
-69.65
-93.58
-101.55
-107.93
-117.5
误差
40.7%
20.4%
13.6%
8.1%
从图表可以看出后两种网格细分得到了比较精确的残余应力分布,但从图 3(c)(d) 对比中可以看出,自定义网格细分的网格数更少,减少了数据的处理量。图 3(d)的截面 自定义网格细分文件是通过在 ANSYS 中调用带参数的外部可执行程序来实现的,由此进一 步看出,通过外部程序可以改进和增强 ANSYS 处理问题的能力。
-2-
加了注释语句的情况。ReadDouble(),AbsReadDouble()函数类似于整数读取函数,用 于读取一个浮点数。FindKeyWordPo(s )函数采用函数重载,分别从文件开头或者 iCurCharPos 指针处,查找关键字。SkipNRow()函数可以跳过 n 行,指针指向新行行首。SkipNewRow ()函数实现结束本行读取,将指针指向新行行首。后四个成员函数可以以不同方式,有效 地将指针定位需要提取的数据处,通过整数或浮点数读取函数获得需要的数据。
ifstream Fin; Fin.open(m_sSLISTPath); …… //省略部分代码 while(!Fin.eof()) {
Fin.get(ch); m_sData+=ch; nLength++; } Fin.close();
2.3 读取数据类 CreadFunction
大部分程序都是通过读取数据文件来实现数据输入的,如果程序允许读取外部数据,它 往往要求比较严格的数据格式。吴晓涵[3]为方便读取外部数据文件,构造了一些函数。为了 提高读取数据文件的灵活性和通用性,更高效的提取有用数据,本文在此基础上对读取函数 进行了修改和扩充,并构造了读取数据类 CReadFunction,该类的定义如下: class CReadFunction { public:
基于数据文件的 ANSYS 二次开发
张俊峰,郝际平,邢海东,王连坤
西安建筑科技大学,陕西西安,710055
E-mail:ytoy21cn@
摘 要: 本文以数据文件为接口,在 ANSYS 中调用 C++语言编制的可执行程序,将 C++ 的强大字符操作功能和数据处理功能与 ANSYS 有机结合起来,实现了 ANSYS 的二次开发, 方便而有效的解决了 ANSYS 中,Beam188 和 Beam189 单元施加初始残余应力困难的问题。 关键词: C++,ANSYS,接口,二次开发,数据文件
d. 自定义网格细分 d. User-defined mesh
图 3. 不同的网格细分精度下得到的残余应力分布 Fig.3 Residual stress distribution in different levels of mesh refinement
4. 结论
本文通过在 ANSYS 中调用 C++编制的外部程序,方便而有效的解决了 ANSYS 中 Beam188 和 Beam189 单元施加初始残余应力困难的问题。通过以数据文件为接口,把 C++ 强大的字符操作和数据处理功能与 ANSYS 强大的分析功能有效结合起来,极大的方便了
读入 SLIST.lis 文件
读取截面号
读取处理截面单元节点坐 标,获得截面几何尺寸
读入 ELIST.lis 文件 获得各单元对应得截面
生成残余应力函数
读取积分点坐标 生成中间文件 Section#.lis
残余应力文件 istress.ist
图 1 类 CCRSTRESSDlg 流程图 Fig.1 Flow chart of CCRSTRESSDlg class
-1-
单元对应的截面号,生成单元残余应力文件 istress.ist,至此外部程序结束。最后由语句: isfile,read,istress,ist,,1 来实现残余应力的施加。
外部程序 CRSTRESS 的主要功能由类 CCRSTRESSDlg 来实现,数据读取通过调用类 CReadFunction 来实现。类 CCRSTRESSDlg 的分析流程如图 1 所示。
2. 基 于 数 据 文 件 的 ANSYS 二次开发
2.1 分析流程
首先在 ANSYS 中调用外部程 序 CRSTRESS,来读取 ANSYS 生 成的截面特性数据文件 SLIST.lis。 提取截面号,对每个截面号的截面 单元节点坐标进行处理,获得截面 几何尺寸,生成残余应力函数。然 后读取积分点坐标,生成中间文 件,即截面残余应力文件 Section#.lis(#为截面号)。读取 单元特性文件 ELIST.lis,获得各
3. 示例
本例通过在 APDL 参数化设计语言中调
用外部程序 CRSTRESS,对钢号为 Q235 的
H300x300x19x11 截面,在不同的网格细分
精度下,施加了如图 2 所示的残余应力(拉
应力为正)[6], 图 3(a)(b)(c)为程序
定义的网格细分精度残余应力分布图。图 3
(d)为自定义网格细分的残余应力分布图,
2.2 数据文件的操作
对数据文件的操作方法很多,可以通过文档类的成员函数 Serialize()串行化处理,从 文件中读取数据或者向文件中存储数据;也可以采用 C 语言中的文件输入和输出方法操作 数据文件[2]。由于需要对数据文件进行多次操作,该程序采用 C++中的文件流类 ofstream, ifstream,fstream 进行数据的读写。程Path 为 SLIST.lis 文件的路径):
int ReadInt(int& iCurCharPos,const CString& sData); int AbsReadInt(int& iCurCharPos,const CString& sData); double ReadDouble(int& iCurCharPos,const CString& sData); double AbsReadDouble(int& iCurCharPos,const CString& sData); int FindKeyWordPos(CString& sKeyWords,CString& sData); int FindKeyWordPos(int& iCurCharPos,CString& sKeyWords,CString& sData); void SkipNRow(int& iCurCharPos,int n,CString& sData); void SkipNewRow(int& iCurCharPos,CString& sData); } ReadInt()函数可以跳过除英文字符外的任意符号读取一个整数,AbsReadInt()函数 则可以跳过任意符号读取一个整数,用于解决 ANSYS 中部分输出文件中,每隔一定行数添
2.5 在 ANSYS 中调用 C++可执行程序
ANSYS 提供了两个命令来实现与外部程序的通信[4],/SYS 和/SYP。命令/SYS 后直接 跟外部可执行程序,而/SYP 在调用外部可执行程序时还可以传递不多于 8 个的参数。在用 C++编制带参数的可执行程序时,参数的传递体现在 int main(int argc, char* argv[])中,变量 argc 为外部参数的个数,而参数保存在数组 argv 中,其中第一个参数为文件名,第二个以 后的参数才是要传到函数里的参数[5]。
a. 默认网格细分(Values = 0) a. No mesh refinement
b. 网格细分精度(Values =1) b. Level of mesh refinement: Values =1
c. 网格细分精度(Values = 2) c. Level of mesh refinement: Values =2
Stability Technical Working Group 8.2—System. Publication No. 33. European Convention for Constructional Steelwork, 1984.
1. 引 言
通用有限元软件 ANSYS 以其丰富单元库支撑下的强大分析功能,友好的人机交互界面 和可开发性,得到广泛应用,尤其是它强大的非线性分析功能,使其在建筑结构分析中得到 广泛应用。但由于问题的复杂性与特殊性,通用有限元软件本身往往不能满足使用要求,需 要进行二次开发。ANSYS 提供了许多途径进行二次开发[1]。本文尝试以数据文件为接口, 在 ANSYS 中调用 C++语言编制的可执行程序,来实现 ANSYS 的二次开发。通过在 ANSYS 中调用 C++编制的程序 CRSTRESS 来读取编辑 ANSYS 的输出文件,生成特定格式的初始 应力数据文件,灵活有效的解决了对 Beam188 和 Beam189 施加初始残余应力困难的问题: 1. 随着截面网格划分精度的不同,积分点位置不同,对积分点施加残余应力很困难;2. 输 入的数据量巨大。