对ANSYS创建面命令A的改进

来源 :计算机辅助工程 | 被引量 : 0次 | 上传用户:kkyilian2
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:为简化ANSYS中不规则多边形平面图元的创建工作,利用APDL(ANSYS Parametric Design Language)编写新的宏命令. 该宏仅需选择关键点集,利用极坐标极径与极角对关键点进行排序,就可自动搜索连接顺序创建平面,不需要指定具体的关键点号和连接顺序,从而简化建模过程.
  关键词:ANSYS;命令A;创建面;APDL语言;硬点
  中图分类号:TU338;TB115 文献标志码:A
  
  Improvement on area creation command A in ANSYS
  TIAN Xiaoqing
  (School of Civil Eng.,Tongji Univ.,Shanghai 200092,China)
  Abstract:By using APDL(ANSYS Parametric Design Language),a new macro command is written to simplify creation of irregular polygon area in ANSYS. The macro can automatically select connecting order of key points to create areas by sorting key points using polar coordinate system and polar angle if only necessary key points are selected,regardless of specifying key point number and connecting order. The modeling process can be simplified.
  Key words:ANSYS;command A;area creation;ANSYS parametric design language;hard point
  
  0 引 言
  
  壳体和实体单元在机械、建筑及桥梁局部应力分析方面应用相当广泛.利用ANSYS等通用有限元软件建立复杂板壳及实体有限元模型时,常常需要创建许多不规则平面图元.然而ANSYS中给出的由下而上的创建平面命令,在需要创建大量不规则平面时,使用起来相当繁琐.如A,p1,p2,…,p18命令不仅要知道关键点号,还需要知道关键点的顺序和个数.
  本文利用ANSYS[1]程序的APDL(ANSYS Parametric Design Language)[2]语言,以AL命令为基础,仅需选择关键点,自动搜索连接顺序创建平面.不需要指定具体的关键点号及连接顺序,简化建模过程.
  
  1 思路及实现步骤
  
  改进的命令格式为
  A_KPS,IsHP,AngTol
  用A_num表示返回新建面的面号,其中:A_KPS指在关键点选择集中创建1个凸多边形面或微凹多边形面;IsHP指控制面内关键点是否创建为硬点;将在后文进行说明;AngTol指角度容差(度),将在后文进行说明.
  1.1 确定柱面局部坐标系
  通过ksel和ksll等关键点选择命令确定创建面所需的关键点选择集后,必须建立柱面局部坐标系以利于创建面的操作.
  局部坐标系的原点必须在面的角点上,xy平面与关键点选择集所确定的平面重合.例如,在原坐标系下可以用
  *GET,origx_,kp,0,mnloc,x
  *GET,origy_,kp,0,mnloc,y
  *GET,origz_,kp,0,mnloc,z
  N_ogk0_=kp(origx_,origy_,origz_)
  


  图 1 关键点选择集示意图
  获取左下角点的关键点号作为局部坐标系的原点(如图 1中的点1),然后找出与原点任意不共线的另外两点即可确定局部坐标系.
  1.2 搜索连接顺序
  利用极坐标系的极角和极径很容易搜索到下一点的点号.将工作平面对齐到局部坐标系,这时工作平面亦变为极坐标系统.搜索极角最小的关键点,将工作平面x轴指向它,此时该点处在工作平面的极轴上.
  *GET,wptheta_,kp,0,mnloc,y
  WPROTA,wptheta_
  根据角度容差AngTol扩大搜索范围,见图 2.
  


  图 2 角度容差AngTol的范围
  
  此时,角度容差AngTol范围内的关键点均有可能成为下一个关键点.用极径最小的条件确定在AngTol角度范围内离极点最近的关键点作为下一个角点.当仍有多个关键点待选时,再用极角最小的条件,即确定极角为0的点为下一个角点.连接两个角点,并将线号存储在预定义的线集L_area里.
  可能出现的连接情况见图 3~5,仅当关键点出现在阴影扇形范围内时,才有可能创建出凹多边形面.
  


  图 3 关键点分布在封闭扇形区域内(包含半径边界)
  


  图 4 关键点分布在封闭扇形区域外
  


  图 5 关键点分布在封闭扇形弧线上
  
  找到下一角点后,平移工作平面至该角点,重复上述过程,利用命令[2]
  
  AL,L_area
  A_num=_return
  即可完成多边形面的创建工作,并返回新建面的面号.如果有关键点落在图示阴影内,程序将创建微凹多边形面.
  微凹多边形面指的是所有凹角处内凹边的长度均小于对应凸多边形的边.如图 6所示,凹边L12<L13,L23<L13;L54<L46,L56<L46.
  


  图 6 拟创凹多边形示意图
  
  1.3 对角度容差AngTol的讨论
  角度容差AngTol为用户输入的参数,单位是度.当AngTol=0°时,程序创建凸多边形面.实际建模过程中,不总是能遇到凸多边形面,更多的情况是遇到凹多边形面,然而在给定的关键点选择集中,凹多边形面的解不唯一.此时用户需要选择AngTol的值(见图 3),程序以此创建微凹多边形面.
  如图 3所示,创建微凹多边形时,角度容差必须大于等于kp3,kp1与kp2所确定的夹角.
  如果此时仍然无法创建凹多边形,可以缩小关键点选择集,将凹多边形划分为若干个凸多边形或微凹多边形面分别创建.
  1.4 角度容差AngTol的取值
  如图 6所示,如需创建实线所围的凹多边形,角度容差必须取∠213,∠231,∠546,∠564中的最大值.
  1.5 是否创建硬点
  硬点是面元内的特殊关键点,网格划分后硬点处对应有一个节点.创建完毕后,如有需要将关键点选择集中剩余的点创建为该面的硬点,可以将IsHP赋值为1,利用hptcreate命令[3]创建硬点.
  
  2 实例
  
  以图 1关键点选择集为例,分如下3种情况讨论命令的应用问题.
  2.1 创建凸多边形
  可以敲入命令:
  A_KPS,0,0
  此时多边形内部有2个关键点,可以根据需要更改IsHP的值将k5和k8创建为该面的硬点(见图7).
  


  图 7 利用命令A_KPS创建的凸多边形
  
  2.2 以图8连接顺序创建新面
  按照第1.4节的方法确定AngTol的取值,为max{∠817,∠871,∠546,∠564} =30°,敲入命令
  A_KPS,0,30
  得到的面见图 9.
  


  图 8 新建面连接顺序
  


  图 9 利用命令A_KPS创建的凹多边形
  2.3 以图 10为连接顺序创建新面
  


  图 10 新建面连接顺序
  由于凹边L28>L12,L35>L34,不满足第1.3节关于微凹多边形面的定义,本命令无法直接完成图 10所示多边形的创建.解决方法为细化关键点选择集,将1个面分化成多个面的组合,然后利用布林(add,subtract等)操作合成1个面.
  本例可以分化成3个凸多边形面:A123467-A182-A354.利用KSEL,A_KPS和ASBA的命令组合可以完成上述工作,具体操作过程不再赘述.
  
  3 结束语
  
  自下而上通过点、线、面、体建立复杂模型是1项相当繁琐的工作.利用ANSYS提供的APDL二次开发语言,将重复的工作用命令(macro file)包装起来,不仅能提高效率,而且使整个建模过程一目了然.
  通过调整角度容差AngTol的取值,可以创建出符合条件的微凹多边形面.
  
  4 附 录
  
  A_KPS.mac宏命令的内容:
  *IF,ARG2,eq,0,then $ARG2=1e-6 $*ENDIF
  NUMMRG,kp
  CM,k_tmp,kp
  CM,l_tmp,line
  !--------------------------------
  !----create local cylindrical coordinate system
  ! --------------------------------
  *GET,csmax_,cdsy,0,num,max
  *GET,Numkp_,kp,0,count
  lcs_=csmax_+10
  *GET,cscur_,active,0,csys
  *GET,origx_,kp,0,mnloc,x
  *GET,origy_,kp,0,mnloc,y
  *GET,origz_,kp,0,mnloc,z
  N_ogk0_=kp(origx_,origy_,origz_)
  N_ogkp_=N_ogk0_
  N_xkp_=knear(N_ogkp_)
  N_ykp_=0
  *DO,i_,1,Numkp_,1
  N_ykp_=kpnext(N_ykp_)
  AR11=distkp(N_ogkp_,N_xkp_)
  $AR12=distkp(N_ogkp_,N_ykp_)
  $AR13=distkp(N_ykp_,N_xkp_)
  *IF,AR11+AR12-AR13,gt,1e-6,and,AR11+AR13-AR12,gt,1e-6,exit
  *IF,i_,eq,Numkp_,then
  *msg,error,
  All keypoints are on a single line
  *ENDIF
  *ENDDO
  CSKP,lcs_,1,N_ogkp_,N_xkp_,N_ykp_
  wptheta_=0 $wpoffsx_=0
  WPCSYS,-1,lcs_
  LSEL,none
  CM,L_AREA,line
  N_forward_=N_ogkp_
  !--------------------------------
  !---search kp order
  !--------------------------------
  *DO,i_,1,Numkp_,1
  CMSEL,s,k_tmp
  KWPAVE,N_ogkp_
  KSLL,u,L_AREA
  KSEL,a,kp,,N_ogk0_
  KSEL,u,kp,,N_forward_
  KSEL,u,kp,,N_ogkp_
  CSYS,wp
  *IF,i_,eq,1,then
  KSEL,r,loc,y,-180,180
  *ELSE
  KSEL,r,loc,y,-90-ARG2/2,180
  *ENDIF
  *GET,wptheta_,kp,0,mnloc,y
  WPROTA,wptheta_
  *GET,rmax_,kp,0,mxloc,x
  KSEL,u,kp,,N_ogkp_
  KSEL,r,loc,y,-ARG2,ARG2
  KSEL,r,loc,x,0,rmax_
  *GET,R_next_,kp,0,mnloc,x
  KSEL,r,loc,x,0,R_next_
  N_next_=kp(R_next_,0,0)
  KSEL,none
  KSEL,a,kp,,N_ogkp_
  KSEL,a,kp,,N_next_
  !--------------------------------
  lslk,s,1 ! Select lines attached to keypoints
  *get,Lnum,line,,num,min ! Get the line number
  CMSEL,a,L_AREA
  !--------------------------------
  *IF,Lnum,le,0,then
  L,N_ogkp_,N_next_
  CM,L_AREA,line
  *ELSE
  LSEL,a,line,,Lnum
  CM,L_AREA,line
  *ENDIF
  *IF,N_next_,eq,N_ogk0_,exit
  N_forward_=N_ogkp_
  N_ogkp_=N_next_
  *ENDDO
  AL,L_AREA
  A_NUM=_return
  CMSEL,s,k_tmp
  CMSEL,s,L_AREA
  KSLL,u,L_AREA
  !--------------------------------
  !----create hardpoints
  !--------------------------------
  *IF,ARG1,gt,0,then
  kp_=0
  *do,i_,1,kpinqr(0,13)
  ! get the next kp id
  kp_=kpnext(kp_)
  ! create the hardpoint
  hptcreate,area,A_NUM,,coord,kx(kp_),ky(kp_),kz(kp_)
  *enddo
  *ENDIF
  !--------------------------------
  CMSEL,s,k_tmp
  CMSEL,s,L_AREA
  CSDELE,lcs_
  CMSEL,s,k_tmp
  CMSEL,s,l_tmp
  CMDEL,k_tmp
  CMDEL,l_tmp
  CMDEL,L_AREA
  CSYS,cscur_
  *del,,prm_
  *del,LNUM
  
  参考文献:
  [1] ANSYS INC. Release 11.0 documentation for ANSYS,commands reference[EB/OL]. [2007]. http://www.ansys.com.
  [2] 周鹏,王昊. ANSYS 9.0 经典产品高级分析技术与实例详解[M]. 北京: 中国水利水电出版社,2005: 51-53,90-111.
  [3] CRAWFORD J. Create a hardpoint on an area using existing keypoints[Z/OL]. [1999]. http://ansys.net.
  (编辑 廖粤新)
其他文献
摘 要 随着Intemet的出现和发展,电子商务技术也有了长足的进步,ASent概念的出现及其技术的进步,使它成为自动完成电子商务活动代理的理想选择。首先,文章基于多ASent思想构造了一个电子商务系统框架;其次,对此系统中AZent之间的通信协议要求进行了规范;通过分析,选择了XML作为ASent之间通信的消息格式;最后,在上述平台上集中研究了如何将关系型数据转换成XML数据的方法,并对此进
期刊
摘 要 数据可视化是计算机学科的一个重要研究方向,文章简要介绍了数据可视化的概念、研究现状,结合数据可视化技术在过程冶金中的CFD(Computional Flnuid Dynamic)应用,详细介绍了计算数据(速度场、温度场、浓度场等)的可视化方法、程序实现及其特点。  关键词 数据可视化 程序实现 过程冶金 CFD应用  文章编号1002—8331—(2003)24—0221—04
期刊
摘 要:针对制造业对三坐标测量软件的需求,基于三坐标测量机(Coordinate Measuring Machine, CMM)设计并实现测量软件MworksCAD. 将其体系结构分为4层:机器层、驱动层、功能服务层和界面层.将尺寸测量接口规范(Dimensional Measuring Interface Standard,DMIS)测量语言作为系统的信息载体,实现智能化的测量点采样、测量路径选
期刊
摘 要:研究美国航空工业计算机辅助训练委员会(Aviation Industry CBT (Computer-Based Training) Committee,AICC)制定的计算机辅助训练(CBT)课件开发规范,在分析现有CBT技术背景和航空培训需求的基础上,结合多媒体技术、视景仿真技术与虚拟交互技术,开发基于虚拟现实技术的交互式计算机辅助训练(Interactive CBT, ICBT)系统
期刊
摘 要:由于分析跨河桥梁、防洪堤坝等水利工程影响河流过水断面、上下游防洪的相关软件较少,而且目前多数三维建模软件侧重于三维对象的建模,缺乏对场景和模型的实时控制,因此,提出并实现基于OpenGL的河道地形实时可视化显示系统. 该系统首先从航测数字线划图(Digital Line Graphic,DLG)文件中自动提取数字高程模型(Digital Elevation Model,DEM)数据,然后选
期刊
摘 要:由于网络支付是制约电子商务向深度和广度发展的瓶颈,在介绍网络支付系统框架的一般结构及银行卡的网络支付模式之后,提出基于安全套接层(Secure Socket Layer, SSL)和安全电子交易(Secure Electronic Transaction, SET)协议的网络支付系统,并对其支付流程和安全性进行阐述与讨论.  关键词:网络支付; 安全套接层; 安全电子交易; 电子商务; 支
期刊
摘 要:针对各种实时数据采集传输的需要,设计和实现基于通用分组无线业务(General Packet Radio Service, GPRS)网络的远程数据采集传输系统. 该系统使用RS-232接口读取外部数据,如果GPRS网络或GSM(Global System for Mobile Communication)网络可用,则以GPRS通信或短信方式将数据发送到数据中心,否则将数据存储在外部存储器
期刊
摘 要:针对Matlab 6.5统计工具箱没有优化正态总体方差的区间估计,且没有给出正态总体方差检验的问题,通过编写Matlab程序,优化统计工具箱对正态总体方差的区间估计,开发正态总体方差的假设检验算法. 实例表明该方法在推断统计方面实用性较强.   关键词:Matlab; 统计工具箱; 区间估计; 假设检验  中图分类号:O212.1;TP311.52   文献标志码:A    Optim
期刊
摘 要:由于当前船载航行数据记录仪(Voyage Data Recorder, VDR)中所采用的数据记录及传输方式不支持对数据的实时访问,只有当整个VDR写满后才能读取数据;故提出将VDR文件分割成小块进行存储和传输. 对该方法的时间性能进行分析,并在仿真环境下进行测试,效果较好.   关键词:航行数据记录仪; 文件分割; 实时数据访问  中图分类号:U666.152; TN919.1   文献
期刊
摘 要:研究Karhunen-Loeve(K-L)滤波在地震数据中提取相关性信息的应用,利用K-L方式抽取或压制地震道集中的同相轴来实现滤波.探讨K-L运算中的正交分解法和奇异值分解算法,并分析同向轴的倾角、夹角以及噪音对滤波效果的影响.将该方法用于处理和分析模型数据与实际数据,证明该方法实用价值较高.  关键词:Karhunen-Loeve变换; 随机噪声; 滤波; 地震  中图分类号:P315
期刊