PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

[交作业] 通过UI结合代码生成倒圆角功能,有成就感!

  [复制链接]

2015-11-23 16:33:40 3814 3

秋爱 发表于 2015-8-15 09:15:43 |阅读模式

秋爱 楼主

2015-8-15 09:15:43

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

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

x

* u' ^8 M; o5 K* c% ^/ Wvoid selectedge::initialize_cb()7 f$ C1 T( r# {
{
& I  K( _0 s2 l' M) [    try
/ }& E! w% u/ [. E2 f. m# S    {

+ C4 M4 T& {8 w: o7 _- h        group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));$ Y2 n. W' u/ j' D5 p, M
        edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()-             >FindBlock("edge_select0"));1 j  h5 l5 N4 a$ n' M) V
        expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()-       >FindBlock("expression0"));}
( S/ J! D# }$ k0 i$ g    caTCh(exception& ex)4 A; G$ t+ O0 F5 a) e( K. N
    {7 k" Q; n# Q: a! O
        //---- Enter your exception handling code here -----
# _6 |/ p' S- Z) E7 C9 E- M        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());* x- N- b9 _0 u
    }
, A. b+ n" _0 [& E- Q  P}) d) b* W( B5 H# }# [# T4 ?
  C3 |1 i) X2 o& I* H
int selectedge::apply_cb()
" d7 X/ o/ ~. m2 Z- t6 t{
5 m, N$ ]# c2 G; Y  H- f2 y4 W3 O1 A    int errorCode = 0;9 [3 g  T& ]& n* n
    try
4 v2 u% L( i% u: l. s* z4 t    {
8 y2 a7 n# f: X3 g: K: T, c4 H% A) e        //---- Enter your callback code here -----
* f$ U4 ^: n" r% L% K# x  R9 ?( M+ L: H6 @& T3 ?

0 u& ?( C- o8 I

) F  }8 C, o, X1 A+ t7 b7 ?* B9 |                Session *theSession = Session::GetSession();
3 U9 z- j0 V" \) h8 H                Part *workPart(theSession->Parts()->Work());# I. a5 a1 x/ }' z
                Part *displayPart(theSession->Parts()->Display());
+ v7 u8 Y6 d$ ~: n5 F  N5 H/ ]
! s  [& E3 K( m: r' E& }

- \2 e$ K# R9 F" ]                Features::Feature *nullFeatures_Feature(NULL);
1 ?# S# y  x3 ~3 v9 Z5 g8 g1 w                Features::EdgeBlendBuilder *edgeBlendBuilder1;& w; V( o+ j  A) l* }# s9 @
                edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);/ }- J4 h4 k: H# n: b) M

8 @* }6 n: F; @$ p4 A+ b2 E

5 D2 Y1 t$ g4 c0 g: l% X- S                ScCollector *scCollector1;
# q: E, F( o, i6 Q' ]# o                scCollector1 = workPart->ScCollectors()->CreateCollector();
& {# g! u7 e* C+ @+ X6 Y: r$ ~1 L0 k' u
, M4 v& K* U2 H2 [
                std::vector<Edge *> seedEdges;/ c/ l+ Y# j' U6 r. q9 m
               
3 p* U" Z$ ]* I; A8 n1 C                std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects();       //获取选择的对象
- G7 X$ @* K7 n- }  g! k# z' S                for (int i=0;i<selectob.size();i++)
' y3 {' K4 V7 q# F, z: o) U                {1 @4 G( L* y: L) o
                        seedEdges.push_back(dynamic_cast<Edge*>(selectob));$ y0 L0 m, B) j" }
  }
* e4 \5 v; y. ^; |8 {) C8 h. f! E) n; m, A! B  J
  double dia = expression0->Value();            //获取表达式的值
: Z; M9 y$ w" F+ P; D0 H/ n                stringstream DIA;
6 L9 g) R* p$ L2 F                DIA << dia;" f/ h! r6 O0 i/ ~$ _

8 Q: _; Z. G; k  C% P7 t

, m+ _, D* c9 g/ C/ Q+ m1 C  x                EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;  n0 `: T% U! f3 c
                edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);- i; O' E, `5 u6 Y6 H4 r+ g

, D$ n; A8 t# B7 J% k0 ]3 T! R+ ?

/ P0 h6 G" ~& H" A                std::vector<SelectionIntentRule *> rules1(1);/ X  H6 T; D' k/ q- N$ I
                rules1[0] = edgeMultipleSeedTangentRule1;) u! h4 `& P+ V( h1 |+ `: p' j0 b
                scCollector1->ReplaceRules(rules1, false);
0 I% M0 A6 w* ]
6 G$ H7 Q9 f# \+ b+ c; X3 n2 I

0 I/ K! S$ E2 _( p5 j* z: P                edgeBlendBuilder1->SetTolerance(0.001);! I4 x2 d) m5 ?

6 c5 f# A0 J  R+ U1 n1 {" v

/ o, E, v# O, m2 t                edgeBlendBuilder1->SetAllInstancesOption(false);
% n% _2 ^  {( ?: c1 _" g9 P) r  Z* e) \; @# W, r. E$ `/ x8 H

2 \6 b. `+ A, R  W7 m                edgeBlendBuilder1->SetRemoveSelfIntersection(true);9 b' v% p7 T5 k& L% R, Q$ R

/ ~% z3 h3 s6 E7 x& y& J% b

! M) _& W, i+ K                edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);
. D! j2 B* C+ O0 w! c  E; W5 p: Z( j
# R& s3 r) |! `+ P
5 g0 _* d2 M% I9 B8 F% ?- K
                edgeBlendBuilder1->SetLimitFailingAreas(true);! r$ ?7 Z  w/ j; Z( ^
$ S- F! w3 ^6 Q0 u1 Y

' A2 d8 ^8 X5 i" A                edgeBlendBuilder1->SetConvexConcaveY(false);
+ V: \& X5 u# m1 x% M6 V. m) q( a7 G- `8 ?% m4 [7 K: k4 f0 r

9 [& J* M- {' h+ \$ x5 ]4 P" o                edgeBlendBuilder1->SetRollOverSmoothEdge(true);- @- L1 D" [, s+ K9 ]; s* {" o4 _

" Q; w+ k( m3 {9 ~

2 c; B$ T% q9 h6 \9 M( Z: u& I                edgeBlendBuilder1->SetRollOntoEdge(true);- c- C3 q4 G# p. L. Z) J% |

# m  M/ W! B1 \- R( r
) T8 z! C. T8 ^
                edgeBlendBuilder1->SetMoveSharpEdge(true);
: I" E. D5 `3 i9 V1 K" a: Y1 n) t. f9 ^# L2 |/ b; k+ L9 K

- [1 n" C# P' G9 q: o* t                edgeBlendBuilder1->SetTrimmingOption(false);
1 \3 C) g3 {! @: O4 v1 D& x; B& _7 j

7 u0 a/ J- `6 b0 x6 b$ _                edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);
3 ^+ m% m* r! P) @" G7 N
% ^* V5 n- M' \4 g5 e) l% l1 `( R

! w0 U) H4 U( ^. h                edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);
3 @; I  @6 h" P% i, \# d3 Q" |  R$ r+ p! n$ a* T. G0 |4 @. w

8 B9 f" K# J$ @& S9 ~                edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);$ ^" F6 `- x. P( D

6 X0 ~3 \, F% j( T( ~

) ~: M6 j! _. r7 F3 F  @                int csIndex1;
4 m. S% _, H1 q                csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());% K, _1 [5 K7 a6 j  \- s
2 U  [6 k1 Y8 E; E$ n
9 ~/ ]( X1 X% [
                Features::Feature *feature1;
, h1 m% \0 {. t7 T                feature1 = edgeBlendBuilder1->CommitFeature();
  d# o3 ]" W' k8 H0 D/ ?/ k! m, ~

& ^) M) p4 H( g" c! ]8 |& ^. `                edgeBlendBuilder1->Destroy();. K7 B4 y) a. Z1 }5 b% y1 Q" W

) f% S. r' N+ [0 w    }) @: i# V( Y  z; ]/ z
    catch(exception& ex)
5 v- u! D4 u+ c/ P    {: C& i% c+ ~2 @% E0 P( ~% M1 m! k
        //---- Enter your exception handling code here -----
" |2 A7 \- `) k        errorCode = 1;( {8 m9 ?& L! d* J- S: }# ^
        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());" Y5 l" S. D9 ]) y( G  R
    }
" Z2 y% o. N  Q! f5 v    return errorCode;
. a/ a9 x8 p3 S/ m* U! b# f* C* W& `}

5 V, a/ a+ w0 J2 f0 M
. I9 D) \2 l; t* A
说明:因为字数有限制,这里只贴出关键代码。
7 ]. d9 N9 F' F: w5 `3 E5 @0 z7 N# p0 r+ c

2 O" g& m& N. ^2 U
7 G( @" I$ s, F" G
QQ图片20150814180022.png

评分

参与人数 1PLM币 +5 收起 理由
admin + 5

查看全部评分

上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复3

heromo 发表于 2015-11-4 11:12:18 PLM之家手机频道

heromo 板凳

2015-11-4 11:12:18

如果我选择是一个实体,怎么自动将所有的边倒圆角呢?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

秋爱 发表于 2015-11-23 16:33:40

秋爱 地板

2015-11-23 16:33:40

遍历加判断
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了