|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
+ ?/ ]1 v. V' }$ T( s' s8 @, f( V
+ x3 S' P/ V0 F1 K; \* XNX二次开发源码分享: 使用NXOpen获取对象最小距离
$ b0 h% I# f! v: j" ?) S( e! d2 M# }1 B2 ~2 Q1 A
6 V" I% C) L& G4 @6 t0 u[mw_shl_code=csharp,true]0 M7 P' t6 c: x- s
Dim theSession As Session = Session.GetSession(), O7 r4 L6 \8 [
Dim workPart As Part = theSession.Parts.Work8 B( F7 `% z. Y3 T3 s- Y7 _
: ] D1 C& G2 s6 S# m& _ Dim object1 As DisplayableObject = SelectAnObject("First Object")
' ~& Y O) s1 B( [+ n Dim object2 As DisplayableObject = SelectAnObject("Second Object")
) k' O+ e* ]5 ^7 x3 D- P
- ?% F6 ?8 m; y( b3 |8 }: ` ' either obtain Unit as desired or use default (null) unit/ v0 [- S* ?. V. u' l. I0 F0 t* Y
Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit)& F" L% R- X! w! [$ K* B+ s8 \
Dim nullUnit As Unit = Nothing
0 u$ S* Q: h9 o0 t$ p6 V4 I Dim measureDistance1 As MeasureDistance" Z a% S, ?' w# W7 w
' h* F0 q' h8 u, u+ g+ P measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _
# ]; @, b8 y8 A- @ MeasureManager.MeasureType.Minimum, object1, object2) U# b5 m& X8 Z/ p3 Z
& L9 _# {3 a9 L, { Dim theLW As ListingWindow = theSession.ListingWindow/ a$ c3 T1 M% |7 E
theLW.Open()
5 }6 }. ^" h0 `$ U% s theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6"))
- m; p) M& t' m: }! f( y/ F# f
$ u8 C M& f/ @6 F9 C ' optionally, create Distance Measurement feature (needs solid_modeling)
" N7 Z1 F- S0 R ' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature()7 O& N& D6 w2 L4 |$ n
measureDistance1.Dispose()[/mw_shl_code]4 n+ W }5 j% X
|
|