PLM之家PLMHome-国产软件践行者

[已解决] UG8.0通过Block UI无法得到TaggedObject?是不是什么设置的问题?

  [复制链接]

2013-11-18 09:43:26 10587 15

Bruce_Lee 发表于 2013-11-14 10:09:21 |阅读模式

Bruce_Lee 楼主

2013-11-14 10:09:21

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
4 {. R; ~$ j8 n% K; u1 _
我的获得TaggedObject的代码就是这样的$ b; P3 L+ I9 N) O# D2 o
BlockStyler:ropertyList*  bodySelectProps = bodySelect0->GetProperties();
8 s/ r6 `! w7 {3 [$ Zstd::vector<NXOpen::TaggedObject *> body01 = bodySelectProps->GetTaggedObjectVector("SelectedObjects");
6 A' T  w/ x( f% ?int num = body01.size();& s5 f, s! X8 D0 F  a2 Q
char str[100];
* K, S$ y" I: F$ g9 E5 vsprintf_s(str,"%d",num);
4 g  }2 P! W) ]+ juc1601(str,1);
: d% U3 K; z% r# X  W得到显示的值是0啊
4 f* Z2 x1 d' i* l. J关键是那个objects用这个方法无法得到啊,你选择完成后得到的数量为0,调试的时候,在上面两句话中就会显示有错误,什么无法计算表达式的值。现在我在想是不是8.0这个版本的Block UI Styler不太给力啊,谢谢您了!
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复15

mildcat 发表于 2013-11-14 20:12:49

mildcat 沙发

2013-11-14 20:12:49

你不要去抱怨任何东西,除了你自己的代码!
- A( ]! @  k6 u- }. L8 T9 e这个是选择前的,也就是taggedobjects 的个数* K1 J0 r; R, q/ J8 S; [
/ h/ ], O7 w9 q$ c: a6 ^
) P% u: E+ E% q6 e$ L

NX开发选择体

NX开发选择体
. Q; l9 S4 b8 V' J

1 @* z6 W1 Y9 S# K; F* [
& G, W- Q0 ]1 F( H/ k5 t' u& N' n' ?' ]0 G- l
这个是转换完了的,$ N+ K7 L9 b% |% [
没有问题!!
2 }( t% R5 H5 c$ l: ?% j4 D- d0 M# \% B, d

NX开发选择体

NX开发选择体
$ S5 E+ p- @: G% X6 E' G, j# [

% O" t8 o% H9 `, I
* }6 d) z4 a9 `/ E; u! E% J. G9 L
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

mildcat 发表于 2013-11-14 20:14:10

mildcat 板凳

2013-11-14 20:14:10

代码加上,仅供参考!" J1 T/ H& v! H) M  b9 [

4 q6 R9 D! u6 F- c1 ]! t
6 u0 f9 _. |1 n2 \6 U  ~: s* b, n% f# S* q  t- J9 T5 r
  1.         std::vector<TaggedObject *> objects = this->bodySelect0->GetProperties()->GetTaggedObjectVector("SelectedObjects");4 _; b8 _! A1 H6 U7 i
  2.                         std::stringstream ss;
    # R7 H1 Y2 N* V2 Y
  3.                         ss << "选择的对象的个数是:"<< objects.size() <<endl;
    + F. K; `) @( k* A
  4.                         theSession->ListingWindow()->Open();5 \$ Y$ J( X1 j
  5.                         theSession->ListingWindow()->WriteLine(ss.str());) q5 ]9 [( [3 W
  6.                         6 ^- y/ e0 }0 F5 j, r
  7.                         char msg[133];( x# W& R, `7 F, k
  8.                         sprintf_s(msg,"选择的对象的个数是: %d",(int)objects.size() );+ n' ~3 a5 [6 C. C+ I7 y  ]3 `
  9.                         uc1601(msg,1);
    6 w5 x$ w# ~, T

  10. # _! L" e! \6 @3 O- ]& t6 ~9 r: ^
  11.                         std::vector<Body *> bodies;- o) O7 M/ j7 a9 A
  12.                         for(int i = 0 ; i < objects.size() ; i ++)% t* S& |" J) v  @2 O( b9 r
  13.                         {
    ) c) M7 C2 R, G2 M1 e( j& T
  14.                                 Body *body = dynamic_cast<Body *>(objects[i]);$ m6 t& j5 P# h/ D1 ^- @% n- E
  15.                                 bodies.push_back(body);9 Q, }) J9 z& X3 A( W3 r1 j/ t
  16.                         }
    3 A' k( J5 T" F) d5 V/ v2 y
  17.                         ss.clear();
    * s/ b3 z% q; C5 [( w; u/ f
  18.                         ss.str("");: U* I/ _) m) ^# `) z' a* ~
  19.                         ss << "转化为body类型的个数是 : " << bodies.size()<<endl;
    ' {3 w& Q9 l- O# s5 [  g. J' O# q1 k
  20.                         theSession->ListingWindow()->WriteLine(ss.str());
    5 D# n: [  _( q

  21. 6 P+ Z& L- Q5 F5 y7 |
  22.                         sprintf_s(msg,"转化为body类型的个数是 : %d",(int)bodies.size());
    % P( z% t, |% ^& `2 d7 U
  23.                         uc1601(msg,1);
复制代码
! _- w, T  g  M: n; v4 w

9 P1 r4 A1 ~' K/ {: x2 H9 I* f- G; s) |1 I- d* ^5 X- S
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

mildcat 发表于 2013-11-14 20:19:17

mildcat 地板

2013-11-14 20:19:17

选择的时候 也可以直接用这个 取值& e, T  Z1 N' U

1 _4 v6 b5 h. z+ istd::vector<TaggedObject *> objects = this->bodySelect0->GetSelectedObjects();
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

Bruce_Lee 发表于 2013-11-14 20:53:33

Bruce_Lee 5#

2013-11-14 20:53:33

您好,我不知道您用的是9.0还是8.0,我在8.0上就是按您说的做的,但是就是不能得到想要的结果,不知道是否和设置有关系。我发现8.0上所有块的类型都是UIblock,而9.0上各个块都有自己的类,比如,体选择器他的类型是BodyCollector,而在8.0中他是UIBlock。这个怎么解决,还希望您能够指导,谢谢您!
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

admin 发表于 2013-11-15 12:33:21

admin 6#

2013-11-15 12:33:21

Bruce_Lee 发表于 2013-11-14 12:534 g, J0 I4 f8 ], p' k
您好,我不知道您用的是9.0还是8.0,我在8.0上就是按您说的做的,但是就是不能得到想要的结果,不知道是否 ...

+ V% `$ J: |# w" W, M  O发现你对这方面可能很不了解,* R) D9 \# [" w$ r0 n
) L; a0 t: d; [  C) Z& s$ z
6.0以后的版本 应该都是一样的, 你查查你的代码吧
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

admin 发表于 2013-11-15 12:39:01

admin 7#

2013-11-15 12:39:01

Bruce_Lee 发表于 2013-11-14 12:539 I% V7 x. K9 [9 _
您好,我不知道您用的是9.0还是8.0,我在8.0上就是按您说的做的,但是就是不能得到想要的结果,不知道是否 ...

* L3 `- F% P7 ]9 b0 ~再不行了,你用 select object 吧, 这个控件也可以6 N' x" G0 y0 F% h* f% b
加个过滤就行了
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

Bruce_Lee 发表于 2013-11-15 17:59:36

Bruce_Lee 8#

2013-11-15 17:59:36

说实话我确实刚接触NXOpen,因此我想尽一切办法来搞明白这个东西是什么玩意,所以我特意找了一个9.0看了看,两个生成的代码是有些不太一样,而且帮助文档里面,9.0的UIBlock类下面有各个控件自己的类,而8.0就只有几个,不是所有的都有。而且我发现我这边8.0上那些选择的控件都不好使,我把UGOPEN里面的例子拿出来使用,也不好使。不知道是我的代码写的问题还是什么问题,确实困扰了好久。在此我非常感谢您的指导和解释,希望能够再次得到您的指导,谢谢!
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

Bruce_Lee 发表于 2013-11-18 09:11:00

Bruce_Lee 9#

2013-11-18 09:11:00

您好,还有我不知道UG二次开发是否和VS的版本有关系?希望您能够指导我,谢谢!
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

Bruce_Lee 发表于 2013-11-18 09:43:26

Bruce_Lee 10#

2013-11-18 09:43:26

admin 发表于 2013-11-15 12:39+ ^6 C3 z! \+ v# x, H& K% ^# H6 C
再不行了,你用 select object 吧, 这个控件也可以5 V4 ]" X/ S: C! N( M0 q8 _; e) q
加个过滤就行了

" A3 ~' x7 b$ w% t说实话我确实刚接触NXOpen,因此我想尽一切办法来搞明白这个东西是什么玩意,所以我特意找了一个9.0看了看,两个生成的代码是有些不太一样,而且帮助文档里面,9.0的UIBlock类下面有各个控件自己的类,而8.0就只有几个,不是所有的都有。而且我发现我这边8.0上那些选择的控件都不好使,我把UGOPEN里面的例子拿出来使用,也不好使。不知道是我的代码写的问题还是什么问题,确实困扰了好久。在此我非常感谢您的指导和解释,希望能够再次得到您的指导,谢谢!
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了