MILAN3 发表于 2018-6-20 08:51:18

如何一次性施加多个载荷至多个关键点

在结构上选取32个关键点(KP1,KP2...KP32)施加力载荷,共32个力(F1,F2...F32),32个力与32个关键点没有指定的对应关系,二者的对应是随机性的,即F1施加至KP1至KP32中的任何一个都行,但只能施加一次。

常规的施加方法是,先选中一个节点,如KP1,然后对KP1施加F1,之后再选中KP2,施加F2...重复32次,才能完成全部载荷施加,这样做太麻烦。

请教高手,有没有一个命令,一次操作就能实现32个载荷的施加,关键点与力没有指定的对应关系,只要将32个力施加到32个关键点即可。

njweiwei2 发表于 2018-6-20 17:59:46

!初始化关键点,清除关键点及对应节点上的所有载荷
ksel,s,kp,,1,32      !选择1~32关键点
nslk,s,1                !选择关键点对应的节点

fkdele,all,all          !清除关键点上的载荷
fdele,all,all            !清除对应节点上的载荷


!对关键点随机施加载荷
*do,ii,1,32,1         
aa=rand(1,32)      !在1~32之间产生一个随机数
ksel,s,kp,,aa         !选择这个关键点
nslk                     !选择关键点对应的节点
*get,bb,node,,num,min    !得到节点号
*get,cc,node,bb,f,fx         !提取节点上x方向的力,以避免对已经施加载荷的关键点重复施加。APDL好像没有判断关键点载荷的命令,所以用节点判断

*if,cc,eq,0,then,       !如果提取的力等于0,则施加力。此处有一个要求就是f1~f32不能为0fk,aa,fx,f%ii%          !对随机关键点aa施加力 f%ii%,
sbctran                     !将关键点上施加的力传递到对应节点上,以便上面的语句进行判断
*endif
*enddo

redwar 发表于 2018-6-21 15:57:08

本帖最后由 redwar 于 2018-6-21 19:19 编辑

aa=rand(1,32)      !在1~32之间产生一个随机数
这个命令不严谨,选取出来的关键点有可能是重复       这样32次循环完 , 有可能某些点根本就没有加载上
页: [1]
查看完整版本: 如何一次性施加多个载荷至多个关键点