|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
, E+ b9 L$ P4 ~+ C1 j. O; E4 o a
% d, x, U4 M+ i" Q+ }0 Q9 O
NX二次开发源码分享: 使用NXOpen获取对象最小距离" l' N; n( v; l" l6 x% }/ U! e7 Q2 X
' f" _1 v1 `/ W$ V
, S% V( m4 P; k' n! `[mw_shl_code=csharp,true]: U2 x' q) G! n* g5 p* N
Dim theSession As Session = Session.GetSession()( b2 i, B" G& t
Dim workPart As Part = theSession.Parts.Work" G0 g) p+ l2 x) [+ ]
w$ ]4 v3 j+ H' r: x. V1 Y
Dim object1 As DisplayableObject = SelectAnObject("First Object")
; U- C7 c: v9 G3 b- B2 e8 N Dim object2 As DisplayableObject = SelectAnObject("Second Object")
( ~6 o1 K. z ]- f$ U/ S7 k
. Z$ h; z, |- c/ i+ F9 `% @5 \ ' either obtain Unit as desired or use default (null) unit
" S: G V, _# q: R2 j. {+ r! ^ Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit)
: x2 X3 c! s" B& N7 T( i" l: b Dim nullUnit As Unit = Nothing
/ i# O6 ~5 E/ a* r% T! r+ l7 R9 [ Dim measureDistance1 As MeasureDistance
$ N, z: l; z' N1 W* [2 k+ c" }& V% s1 {5 |2 X
measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _
+ l' A2 X; P3 A1 O, r MeasureManager.MeasureType.Minimum, object1, object2)
; \5 }+ Z; ~5 j/ `7 [5 ?, U5 w" H: V0 p& t/ h5 z, c. Z6 T: G
Dim theLW As ListingWindow = theSession.ListingWindow
" O1 Q+ F. k! [/ R( C- b& } theLW.Open()- m0 Q) f6 t: g. ~% m0 ]8 A
theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6"))6 M+ K; f! E! K1 {( ^7 X r
! {) r' q) g+ P1 w
' optionally, create Distance Measurement feature (needs solid_modeling)
S8 E7 I% t: w, c% K9 ]4 J: L; D ' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature()% e" h4 a5 k3 G0 T
measureDistance1.Dispose()[/mw_shl_code]5 T" d0 M9 \1 y7 U5 u1 Q
|
|