|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 D6 \' h- O n6 M$ f" i+ L: \, p4 l) P$ e6 @& G$ Y- v
NX二次开发源码分享: 使用NXOpen获取对象最小距离1 D! W5 y: I& i* ~$ ^0 Y. K2 a. h
2 }6 X3 J/ v8 ~) a6 y8 a
, @. n9 k; C* P- D
[mw_shl_code=csharp,true], H& ?5 T7 V3 r* W# }9 t
Dim theSession As Session = Session.GetSession()$ y9 W/ {( w" L( I
Dim workPart As Part = theSession.Parts.Work/ R% ]" `7 U! h7 H
- o! S" G1 _* x) ^+ T; @
Dim object1 As DisplayableObject = SelectAnObject("First Object")* M1 M7 \8 E8 C3 Z
Dim object2 As DisplayableObject = SelectAnObject("Second Object"): e5 {' @; t1 C+ j! N. X* j3 {
& I1 W, \8 ~7 h! K
' either obtain Unit as desired or use default (null) unit: e1 z2 f9 b1 Z$ `$ O
Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit)) S4 [# N) K5 E X
Dim nullUnit As Unit = Nothing
! X! q) K- f+ U G Dim measureDistance1 As MeasureDistance7 }1 |" N6 D1 ^! {3 ~ [+ \7 b' N
6 x: u" I) N( K7 v2 ^" p! y' [/ Q measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _
9 ^4 _7 u) Z& O! h t) A MeasureManager.MeasureType.Minimum, object1, object2)& [( G0 ~' i% K* _5 L% l5 M
$ v) f. R# |0 o3 ?. k Dim theLW As ListingWindow = theSession.ListingWindow
3 |1 `- C: Z8 u5 G+ r: t5 j+ W theLW.Open()
% k% e1 c' q+ a0 H+ g" W theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6"))
3 ?2 W3 {! W( W
1 L: O( S! d7 [/ b( W5 G ' optionally, create Distance Measurement feature (needs solid_modeling)
9 I; |8 W6 u. c; Z5 J7 I7 H ' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature()
/ x2 V6 T7 `0 X6 @$ {1 Y measureDistance1.Dispose()[/mw_shl_code]+ u' ^9 Y D. F! Q
|
|