|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
9 v, C5 O' e* n0 x7 c/ ]( ]* J& y
NX二次开发源码分享: 使用NXOpen获取对象最小距离7 \2 P+ {' U! j4 K
$ S% K/ l5 L9 F9 r/ `
4 G' {/ Y3 g% {8 V6 v; G[mw_shl_code=csharp,true]
. _- w7 c1 M) Y9 z; M7 |8 g Dim theSession As Session = Session.GetSession()
' g; _+ q( Y. f& n2 X Dim workPart As Part = theSession.Parts.Work0 t5 J; t, p! d3 t# m. n- r" G
A% f3 C6 L9 r% \1 |) Y Dim object1 As DisplayableObject = SelectAnObject("First Object")
, t; U4 r: }5 L6 [, _* R# C- c Dim object2 As DisplayableObject = SelectAnObject("Second Object")% X; v+ ]2 ~2 {4 ?: L
; X* \9 M& l9 [8 @) {* O" F
' either obtain Unit as desired or use default (null) unit1 G. X0 O9 j9 S& S) \+ R6 F0 {
Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit)
- G! k- a; [. p& c: H& D4 u8 `' p Dim nullUnit As Unit = Nothing; K0 ?4 E2 _# b3 G
Dim measureDistance1 As MeasureDistance
4 J3 R) C9 G3 B! _& d7 [, c. I# v& V' E
measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _' P( H Q7 g7 U7 F# q: Q! T
MeasureManager.MeasureType.Minimum, object1, object2)
9 `5 n/ R2 b+ H5 o" A! n |8 e- {* t# L+ H% s. I7 R( P$ }2 T
Dim theLW As ListingWindow = theSession.ListingWindow
! z8 V) a& ?& ^6 E$ E theLW.Open()% \: p: O* G, x9 d" q( g
theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6"))
/ n8 T3 {& A6 P) {& B
! y$ {5 ?# Q2 `& w ' optionally, create Distance Measurement feature (needs solid_modeling)# l8 V3 z- X& D" T1 U
' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature()) g4 C2 B2 K+ G$ f' }
measureDistance1.Dispose()[/mw_shl_code]: y- G9 o1 |. b; \; ]; T
|
|