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 3771 3

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

秋爱 楼主

2015-8-15 09:15:43

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

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

x

: I3 B8 ]6 r$ g$ I( H% Fvoid selectedge::initialize_cb(). m" K- b- Y4 k. c$ {1 Z# J
{: I2 r! k1 w1 n0 V
    try
" |7 o# Q- G' I4 M) {; T( a; z    {

2 N9 ~; \, O9 I4 X& `, A        group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));- h5 y- ^; b0 j# J8 i
        edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()-             >FindBlock("edge_select0"));
: h. B. ?, b2 v3 ^        expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()-       >FindBlock("expression0"));}* \( }5 ^5 E: k" z6 e5 U
    caTCh(exception& ex)
1 o8 D3 w1 `: s    {
: X, t0 s) p" S- s        //---- Enter your exception handling code here -----4 \9 Q- M* e" g2 H1 G. i% d
        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());- I: H0 q( z. G" K- ~
    }
6 v, h  Y8 s/ P8 v}
- r# I6 V$ M+ i! ^* ]  _& z, }/ c& `2 Y& v0 Q) E0 l
int selectedge::apply_cb()2 r  E1 B( n2 O( I& j
{8 Z2 k% F9 V/ i
    int errorCode = 0;
7 K9 c& ]" E  c0 T0 U8 X; n    try/ C* l1 V# B0 `
    {
& X' M! `) Y; a2 N9 I1 m        //---- Enter your callback code here -----
3 |0 q( l  d2 z# ^
: U3 T: Z/ W) D; [+ N9 b; R7 c- E
: K& y4 F: R8 W# S( X  V

- h( n+ I- ^4 j" l                Session *theSession = Session::GetSession();
: @  a8 `1 z4 v- Y                Part *workPart(theSession->Parts()->Work());0 ]+ R) ~( Z( W8 O, k
                Part *displayPart(theSession->Parts()->Display());3 ^3 g# e5 \  V# J

. k* O( f: z0 M9 d; R/ F

1 Z- b/ o% f$ s$ o! I! k                Features::Feature *nullFeatures_Feature(NULL);
1 N" u; Y2 b5 y6 x                Features::EdgeBlendBuilder *edgeBlendBuilder1;
# P9 u% p- u3 Y4 x& U                edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);. q: q4 S3 K7 B
' n$ C; e( f/ [- }
2 u; z& v2 g! o2 t  z/ a
                ScCollector *scCollector1;% H6 g. i2 I3 j! L
                scCollector1 = workPart->ScCollectors()->CreateCollector();+ t6 B' r# {- P$ }* W
1 p$ ~- ~. c0 e
7 s# y" q) P2 \0 f- [7 n
                std::vector<Edge *> seedEdges;8 o4 E  n  Q7 \" B
                0 |7 Y. x' v& L9 }
                std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects();       //获取选择的对象$ m2 X- x: Z2 n6 Q# Y
                for (int i=0;i<selectob.size();i++)) i9 K' m" U( R" F) ~. [5 Q
                {8 z$ N2 n0 f7 R$ Q' K5 [' W& F
                        seedEdges.push_back(dynamic_cast<Edge*>(selectob));
( {& q& |) ]8 K  t3 x9 q  }, `7 b# z* x7 o# a7 o* E7 f$ f

1 v. A, t: w9 D  double dia = expression0->Value();            //获取表达式的值! z0 f% n/ v: f6 K
                stringstream DIA;: Y$ ]& j9 L- O+ Z. S, c
                DIA << dia;: r. T% ^& O! t3 R8 O+ U( o

" _  N$ D8 {6 O2 r# i* U3 `; \; E
* ~0 r- n2 _  p$ H3 u: n9 g: }
                EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;
' g/ n* g# U' ~5 i" {                edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);
9 E+ ]3 v8 _2 ~& h( ~8 b$ U6 _+ F7 z0 ?4 _
' {  v6 ?% W0 S( |3 M5 T4 n5 g
                std::vector<SelectionIntentRule *> rules1(1);
$ c3 X$ h6 p' }                rules1[0] = edgeMultipleSeedTangentRule1;. q' m$ c' {' r4 Q* P+ J+ m
                scCollector1->ReplaceRules(rules1, false);, T& h# S4 C* ]: D% f" s. j  N

/ b* C1 `6 ~8 v# v

3 L  ]' b# h% K% I5 w* o                edgeBlendBuilder1->SetTolerance(0.001);
1 I0 q& H/ p7 I! }$ h% b0 c$ g9 D% [' n9 M- q! E

7 M# ~/ L& e* @- e/ h                edgeBlendBuilder1->SetAllInstancesOption(false);
. B+ Q* M& D0 p. o8 q& k2 K# X& }0 v: o
3 O0 Y' O; k3 J
                edgeBlendBuilder1->SetRemoveSelfIntersection(true);
% C9 w7 t$ I$ w
8 R1 j3 g2 m, Y* r# X, ?

* M$ c' A3 o& x  g- T( b! e& c# s                edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);
9 v# Z! ~: G. d; |2 I) D! P
9 G1 @2 f0 [6 T

! Z# @* @% N3 c! c/ e: H7 g                edgeBlendBuilder1->SetLimitFailingAreas(true);( ]7 D0 u) `! l% ~

: ^; R' U% U5 p2 p$ |+ p

5 O- \. y# w* M! n! E' R                edgeBlendBuilder1->SetConvexConcaveY(false);
: K0 U1 y' K6 u7 h3 B* b
3 ^, p/ w9 M: t' I( [3 p+ z1 E

* \+ ]1 ?- [0 r1 @                edgeBlendBuilder1->SetRollOverSmoothEdge(true);  H5 L1 R2 m  U5 |3 z2 k1 j) H  T4 \

" T: O1 d  [0 E& w: F! \
0 o- m0 }- _' a) O) G- W
                edgeBlendBuilder1->SetRollOntoEdge(true);. m4 L. |9 p0 C; n: Y
6 k" h7 U7 J, E& _7 D

* B, B, P( s9 d! }5 _3 d) s# R& f                edgeBlendBuilder1->SetMoveSharpEdge(true);
0 M, `$ S$ v$ g
8 W9 ]$ V8 M, a
, A. v9 a$ f0 O5 j3 x6 V
                edgeBlendBuilder1->SetTrimmingOption(false);
" c4 C8 Q! B, e# \5 R) Y9 l3 v
. L# j, A% j) m9 w! _% S  D, r. h

4 w4 R5 G% {. I2 B+ g                edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);
1 \* s3 e$ z& }0 @  j
/ X1 X; \! I+ o' f8 F1 x6 m
+ Z& V# ?8 u+ I- \7 [  o
                edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);
; {& r$ R! n, P! ^1 a; ~" Q9 z
# K% ?9 u) D* i: c' _
7 \/ k  Z- N7 ~3 H! n3 M
                edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);: {8 Z3 H8 T: t3 O. q  B' S
# S& f$ k% b& _1 E$ k1 ?7 y
% ?6 ]5 W& m0 ^% v1 S- ^# ^
                int csIndex1;4 h' d. k5 \- M1 R7 B  C
                csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());
3 `2 _$ t( r4 g' c* X* v
2 t# F8 T& r2 F* r2 r) L4 r! N

# m( m2 N! y+ Z4 p$ q* Y" m                Features::Feature *feature1;4 N9 @! u) ]! c) S5 f6 q$ G
                feature1 = edgeBlendBuilder1->CommitFeature();
1 C* b, u1 F: c% `4 F9 V/ ^, N, D
3 H# @1 O3 q+ O% Q# A: T

- P4 b6 _  a! v. o/ |5 V2 D* M                edgeBlendBuilder1->Destroy();* [9 J0 l8 {% n0 ]1 X) L; {
5 T. {" c  v$ Q+ v- s% N) `
    }
" S7 |4 \; I8 {    catch(exception& ex)& G$ c  K$ V6 g$ t! y
    {/ E0 |$ F% H7 `8 {) N' E3 w) s; J
        //---- Enter your exception handling code here -----! q, L( Z8 H6 y3 p( a0 B$ ?5 c. V
        errorCode = 1;
$ j: p  ^0 Y) ~- E' ^* d        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
0 d1 A% e2 {4 C9 S/ i    }7 e' }5 O5 d4 L% O9 U: ?9 h
    return errorCode;7 C2 u' [: n! o
}
: @1 d4 ]  J6 K( d$ o

! r+ F( x" j; L' B+ G说明:因为字数有限制,这里只贴出关键代码。
) D$ G5 e/ J5 w  K/ s
& J- B, ?6 w* `; J0 _' y
0 I- a7 R* [' c- h$ R& m
: p( ^! Q' l/ r* v0 O6 n
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二次开发专题模块培训报名开始啦

    我知道了