|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
' @. ~8 x" P2 I5 N# _; k7 C& D; H5 p7 u0 P! E) h' f; J T
NX二次开发源码分享: 使用NXOpen获取对象最小距离
4 @# y. ~ H. R3 q7 u/ e1 G1 x7 h8 @# c* |% p1 @
1 B' X0 s/ a; |% x2 E& a
[mw_shl_code=csharp,true]
3 U( \( ~. f x- g( \8 ]* `& ? Dim theSession As Session = Session.GetSession()
( x, ^) l" c& n W Dim workPart As Part = theSession.Parts.Work
; E* ?; L, ^6 Z4 A+ I6 ~# A: a# l; D2 Y8 b7 r
Dim object1 As DisplayableObject = SelectAnObject("First Object")
" j- x0 k* p" ~; _ Dim object2 As DisplayableObject = SelectAnObject("Second Object")
' J0 N" U7 r) e! } u
, E' h' H/ v; N! @5 U8 e4 e& ? ' either obtain Unit as desired or use default (null) unit2 Q6 S# H, G5 S4 D7 S8 ^( l! P
Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit)
4 b+ r2 e' |' g& u- ]5 H Dim nullUnit As Unit = Nothing' i4 _ T- c# A' j
Dim measureDistance1 As MeasureDistance
. ^! K0 A& A# R/ I2 s7 a8 H- K8 A5 f2 A( [* m
measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _
$ L2 H+ }% d* M4 a7 c9 H% c MeasureManager.MeasureType.Minimum, object1, object2)( t; k2 I% b) m) t
; S# I1 x' w) e4 a. N' |8 g Dim theLW As ListingWindow = theSession.ListingWindow
+ W* C8 ?; A3 g' v theLW.Open()$ p* O0 X( t1 w' g) V
theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6"))
2 c0 T* Q; L3 G9 S
; c5 q3 M' C- d# i8 K ' optionally, create Distance Measurement feature (needs solid_modeling)% d) j# A3 T9 A6 K5 u8 x% y' K9 q
' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature()
5 b) J: m6 j7 |4 ]% j measureDistance1.Dispose()[/mw_shl_code]
; z0 I) W( ~! D$ w2 D3 R7 S |
|