续写代码,根据下面代码写下一圈的代码计算,续写FCUM,ADD esel,s,elem,,right,left-1,1 *get,neq1,elem,0,num,min *get,neq2,elem,0,num,max do,i,neq1,neq2 ni=nelem(i,1) nj=nelem(i,2) p1sv=p1(nx(ni)-nx(nj))/2 F,ni,FY,-p1sv F,nj,FY,-p1sv *enddo allsel esel,s,elem,,left,num_elem,1 *get,neq1,elem,0,num,min *get,neq2,elem,0,num,max *do,i,neq1,neq2 ni=nelem(i,1) nj=nelem(i,2)
时间: 2023-06-20 21:08:38 浏览: 88
p1sv=p1(nx(ni)-nx(nj))/2
F,ni,FY,p1sv
F,nj,FY,p1sv
*enddo
FCUM计算了一个圈的力和力矩,ADD指令添加一个力或力矩到一个节点或单元上。在这段代码中,我们先通过esel选择了一些单元,然后通过get指令获取了这些单元中节点编号最小和最大的节点。接着,使用do循环遍历这些单元,计算每个单元上的力和力矩:首先计算两个节点之间的长度差并除以2得到p1sv,然后将这个力矩分别作用于两个节点上。接下来,我们又使用了一个allsel指令重新选择了所有单元,然后重复了上面的步骤,但是这次只选择了左边的单元,即elem的编号从left到num_elem。
相关问题
续写FCUM,ADD esel,s,elem,,right,left-1,1 *get,neq1,elem,0,num,min *get,neq2,elem,0,num,max *do,i,neq1,neq2 ni=nelem(i,1) nj=nelem(i,2) p1sv=p1*(nx(ni)-nx(nj))/2 F,ni,FY,-p1sv F,nj,FY,-p1sv *enddo allsel esel,s,elem,,left,num_elem,1 *get,neq1,elem,0,num,min *get,neq2,elem,0,num,max *do,i,neq1,neq2 ni=nelem(i,1) nj=nelem(i,2)
在这段代码中,首先定义了一个名为 "esel" 的选择器,用于选择元素。选择的方式是选择所有的元素,并且限制它们的位置在 "right" 和 "left-1" 之间,其中 "right" 和 "left-1" 是两个变量。接下来,使用 "*get" 命令获取了元素属性 "elem",其中包含了元素编号 "num"、最小节点编号 "min" 和最大节点编号 "max"。接着,使用 "*do" 命令对所有元素进行遍历,其中 "neq1" 和 "neq2" 分别代表了最小和最大元素编号。在循环体中,通过 "ni" 和 "nj" 获取了当前遍历元素的两个节点编号。然后,计算了一个名为 "p1sv" 的变量,它表示了两个节点之间的压力差。最后,使用 "F" 命令施加了一个沿 "FY" 方向的力,大小为 "-p1sv",作用在 "ni" 和 "nj" 节点上。
接下来,使用了另外一个名为 "esel" 的选择器,用于选择所有的元素,并且限制它们的位置在 "left" 和 "num_elem,1" 之间。接着,同样使用 "*get" 命令获取了元素属性 "elem",其中包含了元素编号 "num"、最小节点编号 "min" 和最大节点编号 "max"。最后,使用 "*do" 命令对所有元素进行遍历,其中 "neq1" 和 "neq2" 分别代表了最小和最大元素编号。在循环体中,通过 "ni" 和 "nj" 获取了当前遍历元素的两个节点编号。
阅读全文