许可优化
产品
解决方案
服务支持
关于
软件库
当前位置:服务支持 >  软件文章 >  Femap对象方法进阶:Tool Methods(2)

Femap对象方法进阶:Tool Methods(2)

阅读数 5
点赞 0
article_banner

六、Measure(测量)

测量包括测量两个坐标点距离、坐标与平面的距离、两个几何实体的距离、两个节点的距离、两条直线的距离、两个固体的距离、三个坐标的角度、曲线的长度、面的面积、固体质量、网格量、面板截面属性、网格截面。

1. 两个坐标的距离

feMeasureDistance( p1, p2, dist )

其中p1和p2为Variant类型的长度为3的数组,为输入参数;dist为double类型的变量。

Sub Main

Dim App As femap.model

Set App = feFemap()

Dim p1(3) As Variant

Dim p2(3) As Variant

Dim dist As Double

p1(0)=0

p1(1)=0

p1(2)=0

p2(0)=2

p2(1)=0

p2(2)=0

rc=App.feMeasureDistance (p1,p2,dist)

MsgBox(Str$(dist))

End Sub

2. 坐标和平面的距离

feMeasureDistanceToPlane( p1, planePt, planeNorm, dist )

其中p1为坐标,planePt为平面上的任意一点,planeNorm为面的法向 ,dist为输出变量,点与平面的距离值

Sub Main

Dim App As femap.model

Set App = feFemap()

Dim p1(3) As Variant

Dim p2(3) As Variant

Dim planeNorm(3) As Variant

Dim dist As Double

p1(0)=0

p1(1)=0

p1(2)=0

p2(0)=2

p2(1)=0

p2(2)=0

planeNorm(0)=-1

planeNorm(1)=0

planeNorm(2)=0

App.feMeasureDistanceToPlane( p1, p2, planeNorm, dist )

MsgBox(Str$(dist))

End Sub

3. 两个几何/节点实体/节点和几何实体集合(Set)的距离

feMeasureDistanceBetweenGeometry( enFromType, nFromSet, enToType, nToSet, bMinimum, nFromID, nToID, vFrom, vTo, dDistance )

其中前五个参数为输入参数,其他为输出参数。第一、二个参数分别为起点(第一个集合)的几何类型和ID,第三、四个参数为终点(第二个集合)的实体类型和ID,第五个参数指定测量的是最小值还是最大值。

这个方法涉及集合(Set)的概念,等后续分享Set概念以及集合的属性及方法后再回来看这个方法就很好理解了。

4. 两个节点的距离

feMeasureDistanceBetweenNodes2( nFrom, nTo, nOutSetID, nOutVecID, nCSysID, vecBase, vecTip, vecDist, magDist )

其中前五个参数为输入,其他为输出参数。第一、二个参数为起点和终点的节点ID。第三、四个参数是用来控制测量时是否考虑变形后的节点之间的距离,具体的可见下图,第三个参数nOutSetID为包含节点变形结果的输出集合(Output Set)的ID,如果为0则会使用节点没有变形的位置,第四个参数nOutVecID为在nOutSetID中的输出向量 (Output Vector)的ID,同样,如果为0测量时不考虑变形。第五个参数指的是返回结果坐标系的ID,即你希望测量的距离是基于哪个坐标系。

下面以一个小例子说明:

建立一个简单的有限模型并求解除结果,具体信息如图所示。

Sub Main

Dim App As femap.model

Set App = feFemap()

Dim vecBase As Variant

Dim vecTip As Variant

Dim vecDist As Variant

Dim magDist As Double

rc=App.feMeasureDistanceBetweenNodes2(7,12,0,0,0,vecBase,vecTip,vecDist,magDist)

MsgBox(Str$(magDist))

rc=App.feMeasureDistanceBetweenNodes2(7,12,1,1,0,vecBase,vecTip,vecDist,magDist)

MsgBox(Str$(magDist))

End Sub

显然,第一次输出为1,是模型中节点7和节点12的真实距离,而第二次输出为1.713,显然是在受力变形 后两个节点的距离。

5. 两条线的最小距离

feMeasureDistanceBetweenLines( pA1, pA2, pB1, pB2, dist )

前四个参数为输入,最后一个参数为输出。pA1, pA2是第一条直线的首尾端点的坐标,pB1, pB2为第二条直线的坐标,最后参数dist为两条直线的最小距离。

坐标位置必须在相同的直角坐标 系统中,这个函数才能正常工作—最好在全局矩形中。如果最近的接近点在各区段的长度内,则最小距离将是垂直距离。如果不是,那么距离就是其中一个端点到另一条直线的距离。

6. 两个固体的距离

feMeasureDistanceBetweenSolids( solidID1, solidID2, dist )

前两个参数分别为两个固体的id,dist为两个固体的最小距离值。

7. 角度测量

feMeasureAngle( center, p1, p2, angle )

该函数的功能是测量空间中三个坐标形成夹角角度的测量。

8. 结构变形后角度的测量

feMeasureAngleBetweenNodes( nVertex, nFrom, nTo, nOutSetID, nOutVecID, nCSysID, vecBase, vecNormal, magAn­gle )

参数的含义和作用和节点距离的测量函数 基本一致,不再赘述。

9. 曲线长度的测量

feMeasureCurve( curveSET, totalLength )

这个函数很简单,输入曲线的集合的ID,输出所有曲线的总长度。当然如果你只需要测量一条曲线的长度,那么输入的参数curveSET就不是集合的ID了,而是针对的曲线的ID的相反数(即-ID)。Femap API中有很多这样的做法,如果有多个对象则用集合的ID,如果只有一个对象,则输入对象ID的负值。

需要注意的是,这些曲线的总长度就是各个曲线的长度之和,它不考虑曲线中的任何重叠部分。

10. 曲面面积

feMeasureSurfaceArea( surfaceSET, totalArea )

用法和曲线长度测量函数基本一致。

11.固体质量的测量

feMeasureSolidMassProp( solidID, area, volume, cg, inertia )

只需要输入固体的ID,通过该函数就可得到固体的表面积 、体积、重心坐标和3X3的惯性矩阵

12.网格质量属性的计算

feMeasureMeshMassProp( elemSET, csysID, printResults, printDetails, len, area, volume, structMass, nonstruct­Mass, totalMass, structCG, nonstructCG, totalCG, inertia, inertiaCG )

第一个参数为单元的选择集合的ID,同样,若只有一个单元,则用单元ID的负值。第二个参数为计算基于的坐标系 的ID。第三、四个参数是控制是否需要将结果和细节打印出来。其他为输出参数,可查Help文档。

13.平面的截面属性的计算

feMeasureSurfSectionProp( surfID, vecBase, vecDir, sectProp )

需要输入面的ID、方向向量(orientation vector)的原点坐标 和截面y轴的方向向量,计算出截面的属性sectProp。

14.单元截面属性的计算

feMeasureMeshSectionProp( elemSET, vecBase, vecDir, sectProp )

用法参考函数13。

需要注意的是所选择的单元都应该是平面单元 (planar elements)。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空