|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 v& o5 ]" [" `" j y2 n$ Z1 f& u$ B' }) q
NX二次开发源码分享: 使用NXOpen获取对象最小距离2 H7 {: U9 J# ~' F8 }" ~% L
/ q1 D* v8 F& \4 U' e
9 B2 W7 F3 ^' @! H/ H[mw_shl_code=csharp,true]
# A" ?: `% Y8 x7 ]4 S+ q, u Dim theSession As Session = Session.GetSession()
) U2 s0 U c2 n6 l% ]9 I' y Dim workPart As Part = theSession.Parts.Work
7 W% O) L6 e2 |% k" K8 o, n* f0 Y3 d1 j! J$ G3 x5 V9 c. e9 T7 c
Dim object1 As DisplayableObject = SelectAnObject("First Object"), }& j* L; q0 y% S+ i
Dim object2 As DisplayableObject = SelectAnObject("Second Object")
& n- l* G6 i* ]& t3 j) n* O
7 Y$ M+ w- k6 s1 g ' either obtain Unit as desired or use default (null) unit- p8 c6 I* m/ s% U% ~$ x
Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit)
! ]- J$ B! n( F( F Dim nullUnit As Unit = Nothing
. O$ p5 u" T# q0 q- A2 ^ Dim measureDistance1 As MeasureDistance9 U7 l X: ]2 E1 _
' [4 u, e1 ]& @0 V
measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _1 ^8 y: }0 a; S8 ?3 D
MeasureManager.MeasureType.Minimum, object1, object2)1 N0 @+ W5 Z2 T" i4 k
" O/ @$ X, G5 D7 o+ {3 w$ N Dim theLW As ListingWindow = theSession.ListingWindow$ Z% l8 {0 _. L; W
theLW.Open()/ G u# A% e m# n! _
theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6"))
' l" f4 U% I7 ?. W; n' M9 j o" y1 z9 t! D7 |" h) I
' optionally, create Distance Measurement feature (needs solid_modeling)% M ^' S' ]+ e( ~
' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature()
8 X; a5 N+ {$ Y/ M/ `# e measureDistance1.Dispose()[/mw_shl_code]
/ Q. X; Q' @) `# K! z+ t |
|