|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
! f, K X' Y' _" ?9 N4 \- z" n' [ i4 \3 @
NX二次开发源码分享: 使用NXOpen获取对象最小距离
6 L. ?" x6 h* y& Q; _" A
: X- E I6 |/ o; f
5 }6 \9 x: y/ l[mw_shl_code=csharp,true]
/ O+ Y" \* s# i' y- Y: f9 | Dim theSession As Session = Session.GetSession()
/ E" {& y3 I) n: N* s+ D" x m Dim workPart As Part = theSession.Parts.Work
9 }: e$ j% v& ]+ s! E" T
* }4 n2 P4 o6 D7 g8 B8 m Dim object1 As DisplayableObject = SelectAnObject("First Object")' v; E" Y" \! L& T- Z( [
Dim object2 As DisplayableObject = SelectAnObject("Second Object")) b# U$ [. M, D
' K# r* l. h! Y8 X; }
' either obtain Unit as desired or use default (null) unit/ J: B. p' N) B
Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit)
- R( {; z. c0 I" S' y Dim nullUnit As Unit = Nothing
& v8 j1 d% e3 ~ Dim measureDistance1 As MeasureDistance8 F( }0 E- X2 b0 ?
8 n& S$ m# E* ~# x- m) v H! u measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _: w9 o6 ?5 v# F. q$ B
MeasureManager.MeasureType.Minimum, object1, object2)
; Q! A5 }3 d% c% _$ O7 O4 F" H' T2 J: |5 s& a; o& K$ n
Dim theLW As ListingWindow = theSession.ListingWindow5 {& ^9 ~1 ^8 M5 T1 c* T" M
theLW.Open()$ |0 B: s) j0 ]" H0 m: Q
theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6")); |3 l9 y3 w( Y
1 X# v! O v8 q ' optionally, create Distance Measurement feature (needs solid_modeling)
2 _0 C4 l t, _ ' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature()
8 Z) h& E$ M% ? measureDistance1.Dispose()[/mw_shl_code]
# a1 C5 \" v1 a; }0 s! y |
|