找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1194|回复: 3

[编程申请]:如何求一带有挖空截面的型心及惯性矩?

[复制链接]

已领礼包: 3337个

财富等级: 富可敌国

发表于 2002-10-10 16:20:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如何求一带有挖空截面的型心及惯性矩?[/COLOR]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-10-10 17:00:21 | 显示全部楼层

Re: [编程申请]:如何求一带有挖空截面的型心及惯性矩?

最初由 ww822 发布
[B]如何求一带有挖空截面的型心及惯性矩?[/COLOR] [/B]


可以用3DSOLID对象关于查询型心ACTIVEX方法:

下面是示例代码:

  1. [FONT=courier new]
  2. Sub Example_Centroid()
  3.     ' This example creates a box in model space.
  4.     ' It then returns the Centroid for that box.
  5.    
  6.     Dim boxObj As Acad3DSolid
  7.     Dim length As Double, width As Double, height As Double
  8.     Dim center(0 To 2) As Double
  9.    
  10.     ' Define the box
  11.     center(0) = 5#: center(1) = 5#: center(2) = 0
  12.     length = 5#: width = 7: height = 10#
  13.    
  14.     ' Create the box (3DSolid) object in model space
  15.     Set boxObj = ThisDrawing.ModelSpace.AddBox(center, length, width, height)
  16.    
  17.     ' Change the viewing direction of the viewport to better see the box
  18.     Dim NewDirection(0 To 2) As Double
  19.     NewDirection(0) = -1: NewDirection(1) = -1: NewDirection(2) = 1
  20.     ThisDrawing.ActiveViewport.direction = NewDirection
  21.     ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
  22.     ZoomAll
  23.    
  24.     ' Return the Centroid for the box
  25.     Dim Centroid As Variant
  26.     Centroid = boxObj.Centroid
  27.     MsgBox "The Centroid for the box is " & Centroid(0) & ", " & Centroid(1), , "Centroid Example"
  28.         
  29. End Sub
  30. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3337个

财富等级: 富可敌国

 楼主| 发表于 2002-10-11 10:49:32 | 显示全部楼层
我主要想求平面的型心及惯性矩。不知能否用VLISP实现?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-11 10:53:23 | 显示全部楼层
最初由 ww822 发布
[B]我主要想求平面的型心及惯性矩。不知能否用VLISP实现? [/B]


如果要考虑挖空,算整体的型心,应该变成一个3DSOLID实体。

如果求平面的,REGION只能是单独的,VLISP也可以使用ActiveX方法,

你把上面代码稍微改动,就可以求REGION的型心了。

或者使用XDRX_API函数XDRX_CURVE_INFO:


  1. [FONT=courier new]
  2. 功能:获得AcDbCurve曲线实体(polyline,lwpolyline,arc,circle,ellipse,spline)
  3.      和AcDbRegion(REGION面域)实体的面积,周长,质心,惯性矩,回转半径,边界盒等信息。
  4.      (得到的信息同命令massprop得到的Region的信息。但对于曲线不用得到region就能求得。

  5. 调用格式:(xdrx_getcurveinfo <Curve曲线或Region面域实体名>)

  6. 返回值:各个信息组成的关联表。

  7. 说明:对于不封闭的曲线,面积是把曲线开始点和终止点用直线闭合后的面积
  8.      但周长不计算最后的封闭直线段的长度。

  9. 示例:下面信息使用该函数得到的Polyline的信息。

  10.      (("Perimeter" 26485.5) ("Area" 8.96831e+007) ("Centroid" (18350.9 11745.1))
  11.       ("MomInertia" 1.30432e+016 3.09809e+016) ("ProdInertia" 1.95954e+016)
  12.       ("PrinMoments" 4.54504e+014 9.96837e+014) ("PrinAxes" (0.774289 0.632833) (-0.632833 0.774289))
  13.       ("RadGyration" 12059.7 18586.2) ("Box" (11075.9 6655.67) (23993.4 17421.3))
  14.      )     
  15.      
  16.      下面是MASSPROP命令得到的转换为Region后的POLYLINE的信息。和上面得到的信息在周长上不同。
  17.      因为做面域的时候用了封闭的线。
  18.      Command: massprop                                      
  19.                                                             
  20.      Select objects: 1 found                                
  21.                                                             
  22.      Select objects:                                       
  23.                                                             
  24.       ----------------   REGIONS   ----------------         
  25.                                                             
  26.      Area:                    89683065                     
  27.      Perimeter:               37673                        
  28.      Bounding box:         X: 11076  --  23993              
  29.                            Y: 6656  --  17421               
  30.      Centroid:             X: 18351                        
  31.                            Y: 11745                        
  32.      Moments of inertia:   X: 1E+16                        
  33.                            Y: 3E+16                        
  34.      Product of inertia:  XY: 2E+16                        
  35.      Radii of gyration:    X: 12060                        
  36.                            Y: 18586                        
  37.      Principal moments and X-Y directions about centroid:   
  38.                            I: 454503674971976 along [1 1]   
  39.                            J: 996836689445791 along [-1 1]   
  40.     各参数意义:

  41.     下表列出了 AutoCAD 为实体显示的质量特性。                                                                                                                                                                                            
  42.                                                                                                                                                                                                            
  43.     实体的质量特性                                                                                                                                                                                         
  44.                                                                                                                                                                                                       
  45.     质量特性        描述                                                                                                                                                                              
  46.     质量        用于度量物体的惯性。AutoCAD 使用的密度为 1,所以质量和体积的值相同。                                                                                                                     
  47.     体积        实体包容的三维空间总量。                                                                                                                                                                  

  48.     面积        (Area)        实体的表面面积或面域的封闭面积。

  49.     周长        (Perimeter)        面域的内环和外环的总长度。AutoCAD 不计算实体的周长。

  50.     质心        (Centroid)        代表面域中心点的二维或三维坐标。对于与当前用户坐标系的 XY 平面共面的面域,
  51.                           质心是一个二维点。对于与当前用户坐标系的 XY 平面不共面的面域,质心是一个三维点。

  52.     惯性矩(MomInertia)          质量惯性矩,用来计算绕给定的轴旋转对象(例如车轮绕车轴旋转)时所需的力。            
  53.                           惯性矩的计算公式是:质量惯性矩 = 对象质量*轴半径*轴半径                              
  54.                           质量惯性矩的单位是质量(克或斯勒格)乘以距离的平方。                                 
  55.                                                                                                 
  56.     惯性积(ProdInertia)   用来确定导致对象运动的力,通常通过两个正交平面计算。计算 YZ 平面和 XZ 平面           
  57.                          惯性积的公式是:惯性积(YZ,XZ) = 质量*质心到平面 YZ 的距离*质心到平面 XZ 的距离      
  58.                          这个 XY 值的单位是质量乘以距离的平方。                                               

  59.     旋转半径(RadGyration)  表示实体惯性矩的另一种方法。                                                
  60.                           计算旋转半径的公式是:旋转半径=(惯性积 / 物体质量)1/2 旋转半径的单位就是距离单位。                                                                  
  61.    
  62.     主力矩和质心的 X、Y、Z 轴        (PrinMoments)  (PrinAxes)                                                        
  63.                           由惯性积得出,它们具有相同单位。在对象的质心处有一个确定的轴,                       
  64.  ?                       对应这个轴的惯性矩最大。另有一个轴与第一个轴相垂直,并且也通过质心,对应它的惯性矩最?
  65.                           由此导出第三个轴,其惯性矩介于最大值与最小值之间。                                   
  66.                                                                                                 
  67.     边界框(Box)                  显示用于定义边界框的两个坐标。对于与当前用户坐标系的 XY 平面共面的面域,            
  68.                           边界框由包含该面域的矩形的对角点定义。对于与当前用户坐标系的 XY 平面不共面的面域,   
  69.                           边界框由包含该面域的三维的对角点定义。                                               
  70. [/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-26 02:24 , Processed in 0.201853 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表