ANSYS *get命令获得无规律节点编号的方法

本文介绍了如何使用 ANSYS 的 ADPL 命令流来选取节点集合,并将节点编号存储到数组中。通过示例展示了如何获取节点总数、选择节点并进行后续操作的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

!确定节点群和起始节点(由用户确定,即先把需要的节点选出来)------------

  N0=1 !起始节点号为1

  NMAX=NDINQR(0,13) !获取节点总数

  *DIM,P1NODE,,NMAX !定义节点群数组,存放节点号

  *DIM,NODEX,,NMAX !定义节点群X坐标数组,存放与节点号对应的X坐标

  P1NODE(1)=N0 !将起始节点号赋予节点群数组P1NODE(1)

  NODEX(1)=NX(N0) !将N0节点的X坐标赋予数组NODEX(1)

  *DO,I,2,NMAX !循环,从2~NMAX(节点总数)

  NI=NNEAR(N0) !获取距离N0节点最近的节点号,并赋予NI

  P1NODE(I)=NI !将NI存入数组P1NODE(I),注意下标为节点群序号

  NODEX(I)=NX(NI) !将NI节点的X坐标存入数组NODEX(I)

  NSEL,U,,,N0 !从当前节点集体中去掉N0节点,以单向获取节点号

  N0=NI !将NI节点号赋予变量N0,实现循环中节点号的变化

  *ENDDO

  当然直接list就可以查看这些编号了,这里只是为了某些特别的需求才使用的

  介绍下里面用到的几个ansys内嵌函数

  NODE—ndinqr(node,key)

  node—节点号,对于key=12,13,14为0

  key—标识关于node的返回信息

  =1, 选择状态

  =12,定义的数目

  =13,选择的数目

  =14,定义的最大数

  =-2,超单元标记

  =-3,主自由度

  =-4,激活的自由度

  =-5,附着的实体模型

  NDINQR(0,13)--获得节点总数,NDINQR(0,14)——获得节点的最大编号等等

  NNEAR(N) Selected node nearest node N.

  更多的内嵌函数可以参看帮助文档,路径是:

  ansys documentation----ANSYS Parametric Design Language Guide---Get Function Summary


========================

ansys中对一组节点的选择集,怎么用ADPL命令流获取这组节点的编号到一个数组里啊?  如我选择集里有节点号1,3,5,8,30,38  ?输出的数组里得有一列是这些编号,我需要用这些编号进行操作

*get,xmin,node,0,num,min
*get,numx,node,0,count
*dim,xarry,array,1,numx
xarry(1,1)=xmin
xx=xmin
*do,i,2,numx
  xx=ndnext(xx)
xarry(1,i)=xx
*enddo

======================

1、先选中这些节点
2、获得节点的个数,采用如下程序:
*get,NCOUNT,node,,count
3、执行循环操作,举一个例子,让这些节点分别与在原点位置的节点建立单元:
先设定初始号  NEXTNODE=0
实现循环  *do,ICOUNT,1,NCOUNT-1                          
                   NEXTNODE=ndnext(NEXTNODE)
                       e,node(0,0,0),NEXTNODE
                  *enddo

<think>好的,用户想在Ansys APDL中使用GET函数获取当前时间。首先,我需要确认GET函数的具体用法和参数。记得APDL中有很多内置的GET函数,用于从数据库中提取数据。 查阅资料,发现GET函数的基本语法是:`GET, Par, Entity, ENTNUM, Item1, IT1NUM, Item2, IT2NUM`。其中,Par是存储结果的变量,Entity是实体类型,比如ACTIVE、NODE等,ENTNUM是实体的编号,Item1和Item2是提取的具体项目。 用户需要的是当前时间,可能涉及系统时间或者分析时间。系统时间的话,可能需要用SYSTEM实体,而分析时间可能与求解步骤有关。比如,在时间历程后处理中,可能会用`*GET, T, ACTIVE, 0, TIME`来获取当前载荷步的时间值。 不过,用户的问题可能更偏向于获取系统当前时间,比如程序运行的时刻。这时候可能需要使用APDL的内置函数,比如`INQR`或者`DATE`函数。比如,使用`*GET, TIMEV, ACTIVE, 0, RTIME`获取实际运行时间,或者`*GET, DATEV, ACTIVE, 0, DATE`获取日期。不过,可能需要验证这些命令的正确性。 另外,参考资料中的引用[4]提到APDL常用函数命令,可能包括获取时间的相关函数。例如,使用`*GET`命令结合ACTIVE实体和TIME参数来提取当前分析时间。例如,`*GET, T, ACTIVE, 0, TIME`会将当前时间存入变量T中。如果是系统时间,可能需要不同的参数。 还需要考虑示例的正确性,比如在求解过程中获取时间值,或者在批处理模式下记录时间戳。比如,在宏中使用`/POST1`后,通过`SET`命令选择某个载荷步,然后用`*GET`提取该步的时间值。或者,在求解前使用`TIME`命令设置时间,之后用GET函数获取。 可能需要区分实时系统时间和分析时间。分析时间是有限元模型中定义的载荷步时间,而系统时间指程序运行的实际时间。用户需要明确需求,但通常GET函数用于获取模型相关的时间参数。比如,在瞬态分析中,每个载荷步对应的时间点,可以通过`*GET`获取。 总结步骤:1.确定要获取的时间类型(系统时间或分析时间)。2.选择合适的实体和参数组合。3.编写*GET命令,将结果存入变量。4.验证示例是否正确,并考虑错误处理,如是否在正确的处理器模块中(如/POST1)。 可能的错误点:用户可能在预处理模块中尝试获取时间,而实际时间值在求解完成后才存在。需要提醒用户确保在正确的后处理环境中使用GET函数。此外,检查APDL版本是否有差异,确保命令兼容性。 最后,生成示例代码时,应包含完整的命令流,如进入后处理,提取时间,并输出结果。同时,相关问题可以涉及其他GET函数的应用,如何获取其他参数,以及时间在APDL中的应用场景。</think>在 ANSYS APDL 中,使用 `*GET` 函数可以提取当前分析时间或系统时间。具体方法如下: --- ### 方法 1:获取分析时间(模型时间步) 在瞬态分析或时间相关载荷步中,可通过以下命令获取当前载荷步的时间值: ```ansys /POST1 ! 进入通用后处理器 SET, LAST ! 定位到最后一个子步 *GET, T, ACTIVE, 0, TIME ! 将当前时间存入变量 T ``` - `TIME` 是 `*GET` 函数的参数,表示提取当前子步的时间值[^4]。 --- ### 方法 2:获取系统时间(程序运行时间) 若需记录程序运行的实时时间,可使用 `INQR` 或 `DATE` 函数: ```ansys *GET, DATEV, ACTIVE, 0, DATE ! 获取当前日期(如 2023-10-05) *GET, TIMEV, ACTIVE, 0, RTIME ! 获取程序运行时间(秒) ``` - `DATE` 返回日期字符串,`RTIME` 返回程序启动后的实际运行时间[^2]。 --- ### 示例:输出当前分析时间 ```ansys /POST1 SET, 2 ! 选择第2个子步 *GET, T, ACTIVE, 0, TIME *STATUS, T ! 显示时间值 ``` 输出结果:`T = 0.5`(假设第2个子步时间为0.5秒)。 --- ### 注意事项 1. **作用域**:`*GET` 需在 `/POST1`(后处理)或 `/SOLU`(求解)模块中使用。 2. **时间类型**:`TIME` 对应模型时间步,`RTIME` 对应程序运行时间。 3. **调试**:通过 `*STATUS` 命令验证变量值。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yueliang2100

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值