24小时热门版块排行榜    

查看: 1131  |  回复: 2

幸福的风

铁虫 (初入文坛)

[求助] 瞬态计算节点位移导出问题 已有1人参与

请教各位大神:
本人用ANSYS做三维模型的瞬态分析,在计算过程中已经保存每步的计算结果,现在想把某一个平面(例如z=1)所有节点在所有时间点的位移(UX)导出,在matlab中进行计算,请问该如何操作?
GUI或者APDL都可以,新虫金币不多 全部散掉求问
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mxwq

新虫 (正式写手)

q631718082(为防被骚扰,每位数要+1,昵称:扪心*)

发自小木虫Android客户端
2楼2016-03-08 22:18:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shgao20

专家顾问 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
幸福的风: 金币+26, ★★★★★最佳答案 2016-03-10 09:10:12
给你一个大概的思路试试:
    asel, s, ...      !  选择所需的面
    Nsla,s,1         !  选择该面上所有的节点
    *get,nnum,NODE, 0, Count            !  获取当前节点个数,赋予变量 nnum
    *get,nmin,NODE, 0, NUM, min         !  获取当前节点的最小编号,赋予变量 nmin
    *get,nmax,NODE, 0, NUM, max        !  获取当前节点的最大编号,赋予变量 nmax
    *get, ntime, ACTIVE, 0, SET, nset   !  获取总的时间点数,赋予变量 ntime
    *dim, uxt, ARRAY, ntime+1, nnum   !  定义用于存放各节点 ux-time 值的数组,每个节点一列, ntime+1 个数,第一个为节点编号,然后是各时间点上该节点的 Ux 值
    in = 1                                         !  对当前选择集中的节点进行计数
    *do,i,nmin,nmax                           !  对节点进行循环
       *if,nsel(i),eq,1,then                    !  如果节点 i 在当前选择集中
          uxt(1, in) = i                           !  将编号 i 存放到数组 uxt 第  in 列第 1 行
          NSOL, 2, i, U, x, Ux%i%          !  将节点 i的 Ux 定义为变量 2,名为 Uxi (%i% 表示将 i 转换为数值)
         VGET, uxt(2,in), 2                   ! 将变量 2 的数据放入数组 uxt 的第 in 列,从第 2 行开始 (第 1 行为节点编号)
         in = in+1                               !  将当前选择集中的节点计数加一
      *endif
    *enddo                                      ! 当前节点处理结束
    *dim, timen, Array, ntime              !  定义一个数组 timen(ntime),准备存放个时间点的值
    vget, timen(1), 1                         !  将各时间点的值 (变量 1) 存放到数组 timen(ntime) 中。
    !  到此,数组 uxt(ntime+1,nnum) 中存放了所需的所有节点的节点编号以及各时间点的 Ux 值
    !  数组 timen(ntime) 中存放了各时间点的值
    !  然后可以使用 *vwrite 命令,将两个数组的数据按照 Matlab 需要的格式输出。我不知道你需要的输出格式,请你自己做吧。
    上述内容没有验证过,你可以试试,自己修改、完善一下。
3楼2016-03-09 09:08:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 幸福的风 的主题更新
信息提示
请填处理意见