* m0 K6 P S0 l0 r3 K! o/ r" VNX二次开发源码分享: 使用NXOpen获取对象最小距离 % h! x2 `. S6 c' K1 m$ V; i. N 1 o. H) @2 o( { 8 f* Z. \/ \+ J* V[mw_shl_code=csharp,true]5 o) O( C m+ l& F- e: J2 K
Dim theSession As Session = Session.GetSession()& f! M3 K0 I/ m, } B% y
Dim workPart As Part = theSession.Parts.Work , Y/ Q3 m% `. Q9 {8 j. _& U' B7 b; ~% F
Dim object1 As DisplayableObject = SelectAnObject("First Object") ' C* `4 l' R7 c% q7 p5 L6 O1 ?) r0 b Dim object2 As DisplayableObject = SelectAnObject("Second Object") . X, u2 r2 p$ Q- h2 }% g; {& e6 m 1 B3 x& \8 K/ i' N8 X ' either obtain Unit as desired or use default (null) unit, W Y7 l/ [/ P4 }" I0 u) w, v
Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit)/ z( s4 F% o; ?% K
Dim nullUnit As Unit = Nothing / K6 ?6 W& l' p2 R Dim measureDistance1 As MeasureDistance / s: l+ A# t7 f. N' ~3 k& u: s! T5 w' s0 |2 S0 h
measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _ 8 V1 @5 K2 T" u: R MeasureManager.MeasureType.Minimum, object1, object2)) o, I6 \1 M) A: E" Q {/ ]
+ R9 U; [5 P; q* e Dim theLW As ListingWindow = theSession.ListingWindow. v4 h4 h9 `" P, B/ N9 B3 ]
theLW.Open() 3 l$ Y" O* d8 D theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6"))" m+ m- s% t+ V2 I
" f4 b9 B6 o9 y( \, A1 m ' optionally, create Distance Measurement feature (needs solid_modeling) ; M. c" v" Q4 j; R ]8 Y ' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature()# ~; Q, B8 G, i2 B) @6 T. U
measureDistance1.Dispose()[/mw_shl_code] G" P6 T4 t3 A; `# K" X" _
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech