|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
: B2 i3 D" {+ V) J3 m+ Y6 Y; u9 S7 q! f
NX二次开发源码分享: 使用NXOpen获取对象最小距离
) f8 h, _" m/ A: z" X9 E
8 X* [5 m6 n% g
% P$ W5 @0 E7 i- b[mw_shl_code=csharp,true]
3 f ]3 T7 M/ k* j: ~: M Dim theSession As Session = Session.GetSession()% |% u9 {7 y$ B
Dim workPart As Part = theSession.Parts.Work1 B6 y6 q2 s: W5 o: n
' d$ j/ w7 w3 Q( B h% M
Dim object1 As DisplayableObject = SelectAnObject("First Object"), c. D& ?. y; g1 Z5 V
Dim object2 As DisplayableObject = SelectAnObject("Second Object")
8 _' y# U1 g N* \' A! I0 H4 D7 N/ P7 w& Q
' either obtain Unit as desired or use default (null) unit2 m5 R* i. c/ a% E; S1 v
Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit)
5 f! m6 }1 w8 i9 g k* }9 @9 l Dim nullUnit As Unit = Nothing
5 l) ]. I8 ]' y7 r9 L Dim measureDistance1 As MeasureDistance
; S; u" L/ [. I# X4 s: i& c
% o' L' _: d4 o! j3 { measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _
- ^/ W1 y/ o5 w+ u/ R/ x& A MeasureManager.MeasureType.Minimum, object1, object2)% Z0 n6 P e! F* c
2 o6 Q! C, `% \# g
Dim theLW As ListingWindow = theSession.ListingWindow, q1 B- y: B) ?( }
theLW.Open()
4 Y* h9 ~9 ?, H7 W theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6"))
* a( x" l1 x* E" k) L) A# D- L! S0 \' l; J& s$ @* M( Q
' optionally, create Distance Measurement feature (needs solid_modeling)
/ I2 F3 ?" P1 X( q/ O ' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature()
% t- w# s3 g' s$ J) Y& e, [7 s measureDistance1.Dispose()[/mw_shl_code]0 b/ z- r" x4 y1 |6 E
|
|