[请教] 如何拾取装配体重心?
本帖最后由 叶飘零 于 2011-1-21 13:56 编辑
1 |' W7 k/ o+ W* m9 {6 O) Z4 t! K) @' ?& P# \$ I6 @; h% k
可以先点装配体的质量特性按钮,软件计算出重心的XYZ坐标,记下这个坐标,在装配体中插入三维草图,新建一草图点,手动设置草图点的XYZ坐标为刚记下的坐标值就可以了。这是手动的笨方法,只有我这种笨人才用,改了图要手动改点坐标才行。
T$ ?9 L, E2 v4 G2 E8 U下面是转载的高手的方法,我试用过了,好像有问题,可能是版本的问题吧。(以下为转载)
! E. L4 B& g) C# _3 M) n2 v8 Z1 N' L
3D草图点可以通过宏程序和重心进行关联,具体操作方式步驟如下1. 功能表>工具>宏/巨集>新增
3 b% l. {# t4 K, {1 Z+ e7 F. h2. 選擇儲存位置及給予有意義的名字
3 g7 {3 q% ^2 x) L$ [3 t7 S# U3. 刪除新宏內所有內容,貼上以下的程序碼
4 j1 a4 S( c/ A+ B. S
' @3 y0 o$ f) P6 ~
- Function swmRebuild(swApp As Object, ModelDoc As Object, Feature As Object) As Variant
- Dim nStatus As Long
- vMassProp = ModelDoc.Extension.GetMassProperties(1, nStatus)
- Parents = Feature.GetParents
- vPoints = Parents(0).GetSpecificFeature2.GetSketchPoints2
- Set Point = vPoints(0)
- Point.X = vMassProp(0): Point.Y = vMassProp(1): Point.Z = vMassProp(2)
- End Function
- Sub main()
- Set swApp = Application.SldWorks
- Dim ModelDoc As SldWorks.ModelDoc2: Set ModelDoc = swApp.ActiveDoc
- ThisFile = swApp.GetCurrentMacroPathName
- Dim Methods(8) As String: Methods(0) = ThisFile: Methods(1) = 'Module1': Methods(2) = 'swmRebuild'
- ModelDoc.SketchManager.Insert3DSketch True
- ModelDoc.SketchManager.CreatePoint 0, 0, 0
- ModelDoc.SketchManager.InsertSketch True
- Set MacroFeature = ModelDoc.FeatureManager.InsertMacroFeature2('MassCenter_Update', '', (Methods), Empty, Empty, Empty, Empty, Empty, Nothing, Empty, 0)
- End Sub
# V4 p6 R+ X8 u0 ^6 x/ n
5. 立即運行也可,或到自定義工具列,新增一個圖示方便使用
8 W7 |: B# a$ o9 B) @3 @7 ?% @由于程序簡短編寫,因此有很多禁忌必須注意:
3 g, [2 D# R9 _4 G1. 必定在裝配內運行
( _- {8 ~7 x6 H9 u7 L7 @+ n2. 再多配置/模型組態的情況下,每個重心特徵宏只可再一個配置/模型組態內運行,在其他配置/模型組態內必須抑制
$ C0 ?) ]- P- p3. 3D草圖內的那一個點不可刪除; X( _2 L& x5 Q* y0 N* c* g
4. 這個裝配插入到另一個裝配(成為子裝配),如果多於一個的時候,這些子裝配就不可設定為靈活。- k7 c' f) H9 M$ R* r
' _/ T1 h& |& `) r4 s
转载来源链接:http://www.5dcad.cn/bbs/thread-39631-1-1.html,感谢原作者!
$ ~0 F2 G# a1 _, L