|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
$ o- C' w/ F5 A5 q
NX二次开发源码分享: 如何获取装配导航器上PMI的节点名称
* j2 W) q- j. u3 ]2 j1 C4 k8 K3 v- \0 d; b" X9 k
NX 目前没有想过方法,需要借助 KF 函数
9 c f' R6 |& j/ M( }9 U" J* l V2 Q- |
. k% ` i8 a: ^( Z" K9 \
# N8 k! a3 Y$ F+ o# `// There is no direct way to get the name that is shown for the PMI object# f8 Q) t4 f& c5 _, m1 [
// in the Part Navigator. See ER 7961161.' |( ^+ j, I1 D+ [" J" d/ V& E+ p
// This method uses a Check-Mate function then parses the output to format it7 i8 N2 A( V+ ^7 w& }& K+ J
// so that it maTChes what is shown there in most cases.
5 l) h" }! ~5 j5 h' O: \* ~+ T6 ^ private static string get_pmi_part_navigator_name(NXOpen.Annotations.Pmi thePmi)
; F2 X# s* F" y8 c9 {- o {
# T, `2 c) k* X, v) g) v# t string ruleName;/ H( Y1 L# r/ C) l6 }5 i) o6 S
theUFSession.Cfi.GetUniqueFilename(out ruleName);
+ M) j3 P) l& @. D8 V3 h* u workPart.RuleManager.CreateDynamicRule("root:", ruleName,8 K6 c0 V" y- S
"Any", "mqc_askPMIObjectsInformation({" + thePmi.Tag + "});", "");
( F/ q a- D8 \5 |2 E/ f7 C8 I string theValue = workPart.RuleManager.EvaluateAnyAsString(ruleName + ":");8 M+ A9 z* f$ R- q% l/ ~: s
workPart.RuleManager.DeleteDynamicRule("root:", ruleName);4 @: a2 ^$ k* B* e% i/ Y( d! C
( [( o# _, K; P- x1 b* K
9 h& i+ O( E1 C1 W9 I5 T5 J string[] infos = theValue.Split(new Char[]{','});, B$ G8 `$ b0 w* r$ L
' C$ Z3 U0 N3 G. K. \
( ] _% ?, v+ Z j& O
string theName = (infos[1].Trim().Trim(new Char[]{'"'}) +, x: F, _6 A9 F* t9 [. ]
"(" + infos[2].Trim() + ")").Replace("PMI ", "");
+ `2 m/ ]$ V) v' e, J. N! e return theName;. c) d9 c2 a n& q; z
}
# i0 q1 o& J; h0 G: h1 o2 |6 `: m8 d% b! @
|
|