|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
% h9 ?2 Y1 r9 F
! A: x1 D3 k& ]" G8 d8 k% Q4 mNX二次开发源码分享: 使用NXOpen获取对象最小距离5 }: f" j0 m4 S `; V5 v7 ^
- L0 I9 U f0 {- U- V+ w
9 b7 s9 \( X; G+ i1 \' U[mw_shl_code=csharp,true]
$ _7 }" z3 ]6 U7 u1 {* O5 g" D Dim theSession As Session = Session.GetSession()! f) ]! T6 o% k, Z
Dim workPart As Part = theSession.Parts.Work
& }! `- g' ^& W9 \; v4 M* G0 J! Z! U+ Q
Dim object1 As DisplayableObject = SelectAnObject("First Object")! n0 I; j0 j5 e9 P6 L0 P8 a
Dim object2 As DisplayableObject = SelectAnObject("Second Object")& v% h$ h+ C) W5 S% M2 A
* ~6 W1 _; w1 p1 e" p) g ' either obtain Unit as desired or use default (null) unit6 ~3 J1 L+ G" d U X0 Z: C
Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit)
) J: g& r4 r& P" i- ~ Dim nullUnit As Unit = Nothing
8 D# q; C7 A0 _6 a Dim measureDistance1 As MeasureDistance
) j% Z% o1 @0 r) o
# q1 F8 D& h5 C A! y measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _( d3 m# t8 o; e1 e- @
MeasureManager.MeasureType.Minimum, object1, object2)
% T; e2 @% O- b( y/ }4 B9 P4 g& b" t* R, w$ M
Dim theLW As ListingWindow = theSession.ListingWindow$ r8 G; u8 M2 B8 }
theLW.Open()- Y1 r6 k+ N. U1 z G
theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6"))% l- k+ C6 |! U! s
. g( Z ?2 u& e6 S( ~8 B ' optionally, create Distance Measurement feature (needs solid_modeling)
0 F! K, `8 O2 R" A7 a ' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature()
& D" f B" C( b measureDistance1.Dispose()[/mw_shl_code], r( o# r4 y* b6 G5 ?' G/ b1 K
|
|