PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

  [复制链接]

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

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

秋爱 楼主

2015-8-15 09:15:43

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

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

x

% u1 A- f' Q( x# G/ ?, i( w( _void selectedge::initialize_cb()
3 \/ G7 ?4 n) l4 Y- j5 ]% V{
$ D) p* Z' g; ?) @: B2 d    try; P4 P$ V$ u9 o8 m2 n
    {
9 e7 W( S2 p5 F" t; l5 g2 \
        group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));
( n' s" h4 Z% F, g! G. x( U        edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()-             >FindBlock("edge_select0"));9 C4 H4 p+ }) q0 f; O" ~. A  A& V" u
        expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()-       >FindBlock("expression0"));}
2 e) B- S/ H2 V2 \  s0 ]    caTCh(exception& ex)
+ m3 u8 F7 O; s    {
8 e: ]8 f) _0 n) Q' ~        //---- Enter your exception handling code here -----
! _  `+ b% z7 T0 ?        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());0 r# c8 ]" N8 H) M& |4 b+ d/ I$ c, H
    }$ O' }% \& O  ~+ K+ \
}
, q1 e1 C* k2 T. ~4 u7 s; T) V+ L: H3 M" p" S- \0 i0 s
int selectedge::apply_cb()" t+ z. J# c% A; b; W+ N
{
1 g; j  ?* J% p$ E" i    int errorCode = 0;
* R8 ]3 {! c; c- }3 l: a    try
4 C: t. X; {& \. G    {8 w6 L3 }2 p7 [6 J/ d
        //---- Enter your callback code here -----
3 U3 [- O6 Q9 b* P! U
% k. b5 |8 ~$ g( l% \
1 B6 I  k( b. ]

, W1 E, m$ @* S' L3 k: Q/ {! S# i                Session *theSession = Session::GetSession();
5 C" U+ l; B% ]                Part *workPart(theSession->Parts()->Work());
. k1 M1 ]8 @) D* H                Part *displayPart(theSession->Parts()->Display());4 a( {" F- w; ?) r+ w

* b. {7 O+ O2 Z0 q) B' B& d

& e8 Q9 `; ^8 D                Features::Feature *nullFeatures_Feature(NULL);
/ i$ R) ]' \9 B- G+ t; U/ Y3 d  C                Features::EdgeBlendBuilder *edgeBlendBuilder1;2 x. Y1 W! M, ?* v+ N% V7 y, C
                edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);* @' I! P# ?& p0 @* v- R

( y/ [3 H7 w* D& {6 a% Q' k5 w3 {

; o: x6 ^' C1 j" B                ScCollector *scCollector1;
( R) u4 e; W7 v+ H                scCollector1 = workPart->ScCollectors()->CreateCollector();# G/ S! w. K: C8 q
8 H7 l% u7 g0 T6 _, h: G

3 Q7 @! J' M1 i! l4 W                std::vector<Edge *> seedEdges;
9 }& \4 K% q: E               
; G! E# u/ ~3 O" \# {! E                std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects();       //获取选择的对象
) w0 C4 U7 U$ d& z- T' c                for (int i=0;i<selectob.size();i++)4 d# q4 `" z' L/ w' g' k# d
                {
  y. R+ ~9 N) k% q  }# ^, J                        seedEdges.push_back(dynamic_cast<Edge*>(selectob));
+ ~! l5 B" d! I( a" I: N) n1 f( Q  }
& m, L5 A7 c" i! j* O: G! D
/ I4 g% r; }3 i" ?  double dia = expression0->Value();            //获取表达式的值2 S1 Y: t: l! x$ u; o& N
                stringstream DIA;
9 j" y# {* }0 L( x3 D& O                DIA << dia;. h( q; u8 S) O, i

9 B! C6 Z3 n. u9 ^  `; r

  N7 e* ^! `5 N5 C6 a                EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;
4 ~6 C5 {% d3 _8 m3 C3 v+ |! A                edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);
3 A1 B& |$ b: L6 c, j4 H: k3 {6 ?) g$ {- w2 J* L+ d1 J

( ?5 ]. S7 j0 j: y* a* }+ W3 g" q1 ]                std::vector<SelectionIntentRule *> rules1(1);7 s3 B6 X; E& C! p5 ?3 v- S1 ?
                rules1[0] = edgeMultipleSeedTangentRule1;
8 M  w" M9 P  e0 H$ G                scCollector1->ReplaceRules(rules1, false);
6 Q+ G% Z- U( S) j
# I, N5 c4 O$ l! [( e7 Z

8 v+ I9 A. x- v& q% v. k0 w                edgeBlendBuilder1->SetTolerance(0.001);
9 U( p6 y, y! t$ g
$ f% R1 X/ w+ n5 a, h
1 `# b( {* _7 X
                edgeBlendBuilder1->SetAllInstancesOption(false);
% [7 j2 |: }1 p
9 A5 C6 {5 b! _( ^0 k+ _& ?: S

4 w0 G4 E( g' M% L                edgeBlendBuilder1->SetRemoveSelfIntersection(true);8 ^0 v3 J! ^, L4 I

) u5 M3 l! J9 `7 I0 h
" U& _  b5 i- W( F" c* f
                edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);7 G+ h% T0 T) F, _* F
0 d7 O8 l0 {7 t  h% k# M8 e
% f" k; t' O+ c0 ?1 N% D
                edgeBlendBuilder1->SetLimitFailingAreas(true);3 _% S  U8 A: ]9 f
( V$ t. r8 n4 s0 N) P8 ?  ?
6 v0 q4 r* |" a0 [+ q; m
                edgeBlendBuilder1->SetConvexConcaveY(false);
- ^$ f, Q% I# h8 e
  A. K  {5 ^3 j- x9 N- W8 s; f

. k0 J5 k! A! C9 n+ G                edgeBlendBuilder1->SetRollOverSmoothEdge(true);
2 c0 ^) m" [; R* J/ }3 F$ L- Z- ]: N; W1 l6 \

7 v3 z; ^, N+ t) Z) k0 H7 @! E                edgeBlendBuilder1->SetRollOntoEdge(true);
# Q3 S' v% E( \! L1 N  U5 Y
& s$ a$ f+ a9 }
/ A# b6 [% A& }0 ]
                edgeBlendBuilder1->SetMoveSharpEdge(true);
8 h3 C0 i: A% Q' P4 C$ v7 f! }5 |
4 Z$ A- g, p; F$ D2 Z) J
+ c8 k% e; L4 I1 P
                edgeBlendBuilder1->SetTrimmingOption(false);
7 Q% b; d% {- ~. U5 q2 H7 ~- E1 \0 p" O( ]" M0 @( u

+ P% Y; w8 I3 x4 g) p0 d, i                edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);8 g6 {# m/ T$ S1 K: Z
" E9 P. G% R1 m! z" F) b

8 w, j9 }/ B, i, S* h  O2 O                edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);
7 {5 S  A; ?+ F8 w0 X; M# ^# p0 U8 U, W& w0 M; k, c

8 p: F, J0 Y7 U* {( t& K                edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);
9 z% E/ V0 ~( t5 I  ], ~  ]# R1 M
4 z& C+ ~1 c  c4 C& O, q8 i% r
. g! z5 g# p  h0 c3 G" t
                int csIndex1;* F8 S! v$ R, z* V  T- W
                csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());$ }& r5 ?; }; k3 a2 G
6 n* b  i; Y- z, ~( q8 Z9 q
( [6 ^' m& f$ v, y! z* I
                Features::Feature *feature1;* z# k$ r3 K% k( g) y6 {
                feature1 = edgeBlendBuilder1->CommitFeature();
1 s) g  ?% F& x( G  [8 l3 _
" U' N8 H# m3 P' z- \
: w( M1 i4 f' }/ w* l/ a) a
                edgeBlendBuilder1->Destroy();: e1 e3 R+ P, \% h6 Z5 B

1 l+ R" T) V8 B* Q/ t1 q- Q8 E6 W    }
  k1 C% ^1 }4 e    catch(exception& ex)
! |) H! }, V/ B9 x# N" B    {% b& I4 G( k# _' I: e3 A
        //---- Enter your exception handling code here -----
# l" V" v( s' t) ]7 r% }$ E9 v        errorCode = 1;
4 g' Z1 j$ o1 y2 d, c        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
, W  N# c8 w" e( P: j0 ]    }1 \4 O0 c% @, C7 _
    return errorCode;
0 @' A7 I% I& z. U}
  ^3 I  A% n, h! ?0 y9 Q

7 @6 r% p& v1 O' E/ H: k说明:因为字数有限制,这里只贴出关键代码。
' \  U6 F# P- m" c' T6 j' Z' F( s* l
( h2 S3 n. ^5 J7 X
: I% K! F# N, o; F
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二次开发专题模块培训报名开始啦

    我知道了