|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
% _" I) |) b; P( c1 T' o
$ V" d. \1 D& C6 D
NX二次开发源码分享: 使用NXOpen获取对象最小距离7 L& t% z( N8 T$ p E9 y5 [ ^
- L/ S Y$ x) V7 ~2 j2 w2 W
3 f4 T, ~& ~: |8 b$ K2 V/ |- i[mw_shl_code=csharp,true]$ c# g3 E, x8 M
Dim theSession As Session = Session.GetSession()
4 V# P6 g' [1 ~ L) Q7 V, Z% q Dim workPart As Part = theSession.Parts.Work( X5 F3 _) q) c; A' x- |7 Y
& g% i! E' S% D2 M4 x Dim object1 As DisplayableObject = SelectAnObject("First Object")$ P. j8 N1 M( e2 ^
Dim object2 As DisplayableObject = SelectAnObject("Second Object")
+ E- { ^- M+ [9 _" a: S5 n. B5 M- h2 k2 G! }8 `
' either obtain Unit as desired or use default (null) unit
1 E% u4 M. i+ O6 _2 p: g( J. v/ M Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit)
6 B& h# l' ?0 N% D! W Dim nullUnit As Unit = Nothing$ H s2 L+ F2 q W( ?
Dim measureDistance1 As MeasureDistance1 Z4 ]8 h( q) |5 g
" G7 T' W$ { Z- N measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _8 P- v& m7 s( f6 o- y
MeasureManager.MeasureType.Minimum, object1, object2)8 b, X6 o: |! R1 j+ O
+ \# G! j D3 c, C8 x& K( h
Dim theLW As ListingWindow = theSession.ListingWindow& z& O7 B- N" L( i- p) g$ P# o! [9 u
theLW.Open()/ |( k8 Y9 F# i9 y9 f" R
theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6"))
8 O" @' h( G+ W
* S- d! W6 S' ] ' optionally, create Distance Measurement feature (needs solid_modeling)
# W; }' t% p4 `% S4 O ' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature()
8 G( K# f2 N4 j x measureDistance1.Dispose()[/mw_shl_code]
, ?' L( [% t9 \+ X' W7 E: @6 H |
|