24小时热门版块排行榜    

查看: 883  |  回复: 1

长缨在首

铁虫 (著名写手)

[求助] 万能的小木虫啊,workbench中如何能得到超过某应力值的区域面积 已有1人参与

现在在计算 workbench中 某一对象,如何能得到 应力值超过2 MPa的区域面积。
回复此楼

» 猜你喜欢

疏枝立寒窗,笑在百花前
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shgao20

专家顾问 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
长缨在首: 金币+30, ★★★很有帮助 2020-04-24 10:30:23
这个问题可以使用 APDL 语言编程来实现。大概的思路是:
    1  在读入计算结果后,先使用 *GET 命令获取单元总数 Enum。最小单元编号 Emin 和最大单元编号 Emax。
    2  创建一个数组 ESTRESS(Enum) 其中第一列是该单元的应力是否超过指定大小的标记,0 - 不超过, 1 - 超过; 首先全部赋予 0。
    3  ae = 0    !  用于统计符合条件的单元的总面积。如不需要,可以不用。
    4  对单元进行循环,从 Emin 到 Emax;循环变量 ie。
         *do,ie,emin,emax,1
    5  如果单元 ie 在当前选择集中,则执行如下命令流:
           *if,ESEL(ie), eq, 1, then
             使用 *GET 命令获取单元应力,与具体单元类型有关,自己编写。
             如果单元应力大于 2 MPa,(与具体单元类型有关,自己编写)。则:
               ESTRESS(ie) = 1
               使用 *GET 命令获取单元 ie 的面积,赋予 变量 ai。 (根据单元类型自己编写)
               ae = ae + ai    !  统计满足条件的单元面积
             *endif
           *endif
         *enddo
    6  将数组 ESTRESS 中数值为 1 的单元创建一个 component,大致思路如下:
         ESEL,NONE    ! 不选择任何单元
         *do, ie, emin, emax, 1
           *if, ESTRESS(ie),eq,1,then
             ESEL,A,ie,  ! 添加单元 ie 到当前选择集
           *endif
         *enddo
         cm,ee,elem        ! 创建 component ee,其中为所有单元应力大于指定值的单元
    7  然后可以绘制单元或进行其它操作。

    没有验证国,试试吧,有问题自己修改完善一下。
2楼2020-04-24 09:10:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 长缨在首 的主题更新
信息提示
请填处理意见