|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
6 ^) s6 P+ _: q: |2 _0 A9 I( d3 E
; U6 o/ \, s# X- f' GNX二次开发源码分享: 使用NXOpen获取对象最小距离
, j# H1 t( N; l' K: A
* j3 Y2 R! A2 y0 i" O! u8 }
6 f. | u( Z) f9 Z, b[mw_shl_code=csharp,true], f" `% r) ]7 I0 \0 ^8 O
Dim theSession As Session = Session.GetSession()
! @$ B3 s4 N! R$ ?% Q Dim workPart As Part = theSession.Parts.Work
0 z$ q I7 T$ ?4 A
4 d' C0 ~0 y6 l+ q7 B Dim object1 As DisplayableObject = SelectAnObject("First Object")
* l9 C+ \6 d& g: F0 N Dim object2 As DisplayableObject = SelectAnObject("Second Object")
. x/ B }2 T! m7 W! t2 X$ x3 l+ A' N1 M9 ~4 Z
' either obtain Unit as desired or use default (null) unit# i7 E3 l* t, k
Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit)9 p! P: D9 E( D
Dim nullUnit As Unit = Nothing6 l" N; D6 S7 G; F$ O
Dim measureDistance1 As MeasureDistance5 A _9 w: e7 P% X; L9 c+ a# j" g
! G1 E& T) r2 L
measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _
) N9 h6 o/ Y; e; D8 v; E MeasureManager.MeasureType.Minimum, object1, object2)" a5 ^: G' w$ \* t1 u1 U
' e9 D# B" P2 k {, I Dim theLW As ListingWindow = theSession.ListingWindow! W+ V+ P8 v% }( k/ f% e
theLW.Open(). O8 r$ B' `% ]- O1 g- P
theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6"))' e7 @0 ^, X- J. v
* _ E& r6 ]1 j" S) q
' optionally, create Distance Measurement feature (needs solid_modeling)
3 T4 e& r+ l( I! B5 S ' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature()8 D7 i: p' y2 @4 l4 q) B `7 T( o. p
measureDistance1.Dispose()[/mw_shl_code]9 z1 A) h( F! ], }$ \
|
|