您的位置:网站首页 > CAD新闻

ANSYS命令流、二次开发与HELP文档之(二)-APDL细节

时间:2011-02-25 10:06:15 来源:

  1 APDL的语法特点

  如任何一门编程语言有自己的语法规则一样,基于ANSYS的APDL语言也有自己的语法特点和语法规则,以解释问题的方式对该篇第一部分进行描述。

  可进行APDL编程的适用平台?

  APDL可以有三种编辑形式,第一种是ANSYS自带的宏命令编辑器,但只能编写简单的宏命令,因为行数限制无法编辑大型的宏程序;第二种是PSPAD编辑器,该编辑器的特点是和ANSYS命令连接,输入命令的前几个字母能够显示出所有以这些字母开头的命令,写命令流时比较方便,能够从网上下载到这个软件;第三种也是最简单的一种就是建一个记事本文件将其扩展名.txt改为.mac之后直接在里面编写程序语句,编写完成之后直接在ANSYS平台下就能够运行刚刚写好的APDL程序了。

  APDL编程的程序行组成?

  APDL语言与大多数的编程语言一样都有条件语句(IF..ENDIF)、循环语句(DO…)、跳转语句(GOTO)等,这些功能语句在ANSYS的help文档ANSYS Parametric Design Language Guide部分有详细的介绍,这里仅是抛砖引玉,而非具体解释。

  如何快速搭建APDL程序模块?

  基于ANSYS平台的APDL程序模块是绝大分得ANSYS命令和小部分的APDL功能语句组成,而ANSYS本身具有分析过程命令纪录的功能,即在分析过程中,生成的.log记事本文件就是它在分析时用到的所有命令。当拿到一个问题进行分析,并且想要使用APDL工具进行开发最终形成自动分析模块时,最简捷和快速的方法是先摸清一次分析的全部过程,然后拿自动生成的.log文件进行修改形成自己的程序代码,并在此基础上添加进APDL功能语句,最后将.log文件改成.mac文件形成完成的宏文件。

  2 APDL的注意细节

  在使用APDL开发分析模块时有一些经常导致错误发生却不容易被引起的重视的问题需要引起我们的重视,养成良好的开发习惯,减少程序在运行过程时的错误发生。这些应该注意的细节主要有:APDL参数、宏、函数命名规则,命令默认设置与实际分析问题冲突如何解决,命令注释方式等。同样通过ANSYS本身自带的help文档就可以找到这些,学习APDL,我们的ANSYS Parametric Design Language Guide便是最好的参考书,而深入学习ANSYS,我们的Release 11.0 Documentation for ANSYS就是最好的参考书。

  3 APDL实例之一

  作为ANSYS命令流、二次开发与help文档系列的第一个实例,这里讲述工程上常用的带有法兰盘的管道自动建模的APDL程序开发及最终效果附图。该模块要求能够完成的功能包括:

  a)用户能够自动输入管道长度、厚度、管径等关键参数;

  b)用户输入完参数后能够自动生成用户预期需要的管道;

  c)管道另一端自动生成符合国标的法兰与管道自动连接。

  开发过程简单描述—根据所需要完成功能,该程序模块要解决以下的问题:

  1)需要完成用户参数输入界面的设计,供用户输入参数;

  通过调用ANSYS对话框函数multipro来完成,具体实现代码是:

  multipro,"start",7

  *cset,1,3,g_lei,"Enter guan_lei",0.0

  *cset,4,6,Pc_x,"Enter XCENTER",0.0

  *cset,7,9,Pc_y,"Enter YCENTER",0.0

  *cset,10,12,Pc_z,"Enter ZCENTER",0.0

  *cset,13,15,P_RAD1,"Enter RAD1",0.0

  *cset,16,18,P_RAD2,"Enter RAD2",0.0

  *cset,19,21,P_DEPTH,"Enter DEPTH",0.0

  *cset,61,62,"CREAT guan", "MODLE_3D"

  multipro,"end"

  2)开发完成的程序模块转化为ANSYS可执行的程序形式,能够在ANSYS平台下执行程序;

  将命令流按照APDL的命名规则定义好,将扩展名改成:.mac,可直接在ANSYS下启动该宏命令。

  3)管道生成后,能够自动生成符合国家标准的法兰。

  在管道的基础上,按照国家标准添加进法兰的绘图命令即可,管道及法兰实现代码是:

  CYL4, Pc_x, Pc_y, P_RAD1, 360, P_RAD2, 360, P_DEPTH

  WPOFFS, , , P_DEPTH

  CYL4, Pc_x, Pc_y, P_RAD1, 360, 1.5*P_RAD2, 360, P_RAD1/10

  cm,v_zhu,volu

  vsel,none

  WPOFFS,Pc_x , Pc_y,

  cswpla,11,1,1,1

  wpoff,((P_RAD1+1.5*P_RAD2)/2),0,0

  CYLIND, 0, P_RAD1/10, -0.05*P_RAD2, 0.1*P_RAD2, 0, 360

  cm,v_kon,volu

  csys,11

  vgen,kongshu,v_kon,,,,360/kongshu,,,0

  cm,v_fu,volu

  vsel,all

  vsbv,v_zhu,v_fu

  csys,0

  wpave,,,,,,,,0,0,0

  vsel,none

  最终效果图如下图所是: