|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
, N$ m3 v9 F- x
* a3 I" @, W: i" O/ Z3 ENX二次开发源码分享: 使用NXOpen获取对象最小距离8 \2 O7 h5 O0 S$ ~. ^7 ^
- |9 d# `- `8 ~' \1 u- j
: S8 c/ ]1 ~% s$ j+ F' o* o
[mw_shl_code=csharp,true]" `9 t0 t( u; j8 k
Dim theSession As Session = Session.GetSession()% A4 k o% |+ G% w* s
Dim workPart As Part = theSession.Parts.Work
* w8 ~6 b1 R* L' ^" _$ c1 `! I: ^' a+ t( C# [
Dim object1 As DisplayableObject = SelectAnObject("First Object")
0 i5 k% m) y8 q6 M% j Dim object2 As DisplayableObject = SelectAnObject("Second Object")2 C* Y" @+ s9 \) W5 }6 o( A
5 ?6 J M4 d) j& J ' either obtain Unit as desired or use default (null) unit! ~0 o9 \6 Q* J% s
Dim unitMM As Unit = CType(workPart.UniTCollection.FindObject("MilliMeter"), Unit)% u( y& u- ^7 x; ?5 {0 _$ d
Dim nullUnit As Unit = Nothing, l; I. f$ C" S) s Q+ f
Dim measureDistance1 As MeasureDistance
3 U, z$ r' a2 ~0 {( z+ m P% J' ^
" w- [- q9 ~6 | measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, _ S" Y8 z7 x( t4 y
MeasureManager.MeasureType.Minimum, object1, object2)' E5 [% B& D: Z9 `9 n/ O m
6 I# M9 P) {4 I- {* y f! `4 M
Dim theLW As ListingWindow = theSession.ListingWindow2 Q5 {& c' @& s) [7 ]$ A9 E N% w
theLW.Open()1 V# z: P8 T9 P( h: e4 m9 k: f
theLW.WriteLine("Minimum distance = " & measureDistance1.Value.ToString("F6"))
4 s1 \* G" B# e1 o/ ~ H1 ~
' ?3 ?4 D& M% {/ u+ s ' optionally, create Distance Measurement feature (needs solid_modeling)
+ J D) i1 e# u4 c4 f, u" Q* L3 W ' Dim measure1 As NXOpen.Measure = measureDistance1.CreateFeature()7 [5 w: U, ], Y5 t" p$ j
measureDistance1.Dispose()[/mw_shl_code]( @( c9 m* I c
|
|