' p; O: l, A' _+ W T0 x* F+ l! z$ O! ` F u( S NX二次开发源码分享: 使用NXOpen获取对象最小距离% |5 _* `" K: O% Y
& @! c* ` w' E$ x! w 3 }+ J6 u( N6 |[mw_shl_code=csharp,true] * y) ^1 G5 G y8 I- F Dim theSession As Session = Session.GetSession() 7 I; Z7 z5 ~5 W+ O Dim workPart As Part = theSession.Parts.Work 9 u7 b |6 C* Q" w ( @/ r5 h3 p# s% v Dim object1 As DisplayableObject = SelectAnObject("First Object"); A1 N$ |1 S R; T( p' V
Dim object2 As DisplayableObject = SelectAnObject("Second Object") 7 _1 m {) Z2 n0 r3 J# ? * X1 C! I6 Z. R* E' A/ `5 ^ ' either obtain Unit as desired or use default (null) unit+ G# R+ G8 ]/ k8 Z, h2 H7 f
Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit) 5 q! w1 ?& e S! x Dim nullUnit As Unit = Nothing * P: q# }0 m$ K" q Dim measureDistance1 As MeasureDistance( V% I( F$ b5 l% W
! W3 G4 Y6 L! R6 J9 S4 v5 w) j measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _ 7 |2 L* \0 c* I( c+ C* Y, `$ S MeasureManager.MeasureType.Minimum, object1, object2) ( m8 N6 v! z) i( r1 p2 V( `! _ l+ T9 G. o3 Q1 Y* H Dim theLW As ListingWindow = theSession.ListingWindow : T, U; F6 C5 Z% u* N theLW.Open() ' T! X2 J/ {5 |8 z P" l; ]8 z theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6"))! Y6 \. u; `7 D6 ?% b) Q* N" z& x
& h( Q [/ j5 e ' optionally, create Distance Measurement feature (needs solid_modeling) ' p' k. Y, U }' a+ l ' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature() ) f! j$ ~& L' N" @ measureDistance1.Dispose()[/mw_shl_code]- Y" R8 I* s2 Q5 C1 ]. n
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech