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

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

秋爱 楼主

2015-8-15 09:15:43

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

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

x
# X, ]. `% i3 N$ M5 K0 S
void selectedge::initialize_cb()
( |0 q! h' Q2 T0 T{6 {0 b2 _6 m# [* m+ @2 s, c/ O
    try) o1 d1 P% W0 p* D+ `
    {
, U3 ]3 w6 M& q8 {7 z! D
        group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));
) W1 U5 w5 W# ~! s) a        edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()-             >FindBlock("edge_select0"));" g. _, P; g# Z% t
        expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()-       >FindBlock("expression0"));}! F! m& H3 r  }2 V+ w0 W! {
    caTCh(exception& ex)2 \+ I/ K2 y2 s7 g. _; w
    {
- F0 D8 g# {$ j+ f! I5 n/ A; w1 `  z        //---- Enter your exception handling code here -----
% V% ~+ ?/ ^0 J$ J+ r8 l) |; J        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());
! c6 F6 I9 V$ G# f    }
9 u/ h, M, Q0 L! E& ~) B6 r}
4 N* p* Z7 T4 P" ^) a
1 F* E0 x7 Z6 s( g. ?; x# ~int selectedge::apply_cb()* U0 d) d. m8 B' _  o
{% B2 h, H. o' g4 n8 |4 ?  |2 V
    int errorCode = 0;2 M/ [9 y# W- B) W! ?
    try
  r0 @& \# I+ L; n3 A" t7 @    {
& g4 o1 [: w- K: a        //---- Enter your callback code here -----
2 |# I& M4 a7 S: p" |% g& l, s
8 m! ?2 v: j2 ~' Y5 |% G- t3 _) `

, o" J5 Y; ~: ]% L8 X! M                Session *theSession = Session::GetSession();5 M8 g5 h3 P9 x3 a0 ^$ L, g
                Part *workPart(theSession->Parts()->Work());* k. a( W( S1 e+ W& k
                Part *displayPart(theSession->Parts()->Display());) {& _7 a8 z) U. X! u! {8 n4 `6 q7 L

; I+ f. n* q4 `& l/ w3 L
7 A  f4 G$ b, I7 ?
                Features::Feature *nullFeatures_Feature(NULL);  r4 i0 S1 u' ]+ G% Y+ z' M
                Features::EdgeBlendBuilder *edgeBlendBuilder1;
9 L5 c0 ]/ V  G7 c                edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);
3 y" u3 C) Y" H$ d& p8 a! H. u9 [: @, q, z$ }# k$ T# x6 w
& \, U1 R( e5 {- C/ G  Z
                ScCollector *scCollector1;- x# |  E( e' u; ~! A! q0 Z  }
                scCollector1 = workPart->ScCollectors()->CreateCollector();  b7 l4 a0 G5 c' }4 n
' {/ }: q$ i* s; b  A

9 s% M% {5 X6 T                std::vector<Edge *> seedEdges;: h+ f6 f" B  c% m$ P6 ]
                $ Y5 t- \# h- N* G( {
                std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects();       //获取选择的对象
& w0 H' _) `- Q: B2 i  h+ G                for (int i=0;i<selectob.size();i++)
4 G# a: j( k( n! m1 F0 h+ b                {
9 y* A8 N/ P2 N. H6 o9 Q                        seedEdges.push_back(dynamic_cast<Edge*>(selectob));8 |4 X) I- ~- a% u
  }, u! N( ~" }. c* [; L

1 e; \1 C0 V" S! @1 o4 W  double dia = expression0->Value();            //获取表达式的值
  P1 ~* Q! ~3 y! N                stringstream DIA;
, f% e+ Z9 D% X. j# T                DIA << dia;- T1 _( m0 b  ^( A# O
$ N( z3 X5 K5 j. n0 Q

2 p! l2 |  @  d% }( s: d. z) u: {                EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;
8 J5 ^5 F! i- X6 J- h- u                edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);
: k: @3 o7 s6 t, C$ e; Q/ Z- u, a
* y+ ?7 t: V: E; u
. g$ N# w0 x8 l/ u; o
                std::vector<SelectionIntentRule *> rules1(1);1 q0 B# d$ v! L3 q' t
                rules1[0] = edgeMultipleSeedTangentRule1;$ v& a# V1 j" p8 q9 {# y7 z
                scCollector1->ReplaceRules(rules1, false);) F3 ?% Y/ _/ E0 A7 @

/ p/ F2 w8 j9 m+ l; c

5 W1 B% O6 [0 g$ p# k0 T                edgeBlendBuilder1->SetTolerance(0.001);9 U; I4 {  M' U0 a

, a- f  [+ O  P" a, R6 X

4 I5 A. [5 |/ D3 Q                edgeBlendBuilder1->SetAllInstancesOption(false);
" i2 h( i7 N  w/ P( V+ R* {+ J' M; x; e- Z

) g  z% _4 D' ^# E) E                edgeBlendBuilder1->SetRemoveSelfIntersection(true);5 e4 f; i# v. e8 g2 }6 |
' G* B1 ?1 _7 u1 ^3 `
% H/ M7 S8 ^- ?5 z; Y4 c( j3 h( T
                edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);
2 @, P# K: m8 L0 R$ q
. W& ^8 @# R' c" O5 |$ {9 Q
8 `! n/ `2 D& D% A, R( I: c, n. U  B5 B
                edgeBlendBuilder1->SetLimitFailingAreas(true);- ?4 E0 Q0 i0 ~" w

5 Y# _0 g, e) D* H  @

; V6 g' b' X& x$ p8 s6 s: D) ?                edgeBlendBuilder1->SetConvexConcaveY(false);
$ @' ~$ Y5 Q4 h0 v, B
* w7 E* z1 u- g5 }' q. Z& I7 I! i

) v& E4 d# B" i! v                edgeBlendBuilder1->SetRollOverSmoothEdge(true);
: \3 T  ]- H( ~: T% w0 z0 H2 t$ L/ ?" g" B' \- n4 n

& G! q: g; q# O% L+ q# [& C                edgeBlendBuilder1->SetRollOntoEdge(true);' Y! K& m* l$ c0 y/ N  M
; |4 b0 f  u2 [4 T

1 T5 b- h1 {2 V& c* M7 s  ]4 \                edgeBlendBuilder1->SetMoveSharpEdge(true);
1 X' D; G* Q2 v# _6 J+ e* U* o6 [- c  b1 z
0 {* H: A' ~4 Z5 ~! O5 {5 o
                edgeBlendBuilder1->SetTrimmingOption(false);$ h+ C! w$ e4 B0 A: ~3 Z
- |" W# R$ l' L5 x' v+ S7 J4 ?
2 ~! X* x4 S/ z, x% e
                edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);
7 X1 y' ~5 K/ A' I8 z8 h3 b! R1 b; l- `% g$ Y7 v
& j' h  b3 d% b5 P) y
                edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);8 f7 w: s, |: \
) |2 ]* X6 T  n$ N2 i3 F" e
1 o2 q6 d8 H' I% ]& T  Q
                edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);
) D; G# z. z% q2 S0 {3 p. Z$ N+ S% ?/ ]; o9 ?5 w% J

( L2 n8 ~6 g# E4 ^% V/ G                int csIndex1;2 J% X9 s7 |& K$ ]* J. X. R
                csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());! K: J! _: z: Q( V" \- x% k* r
  [2 ?# q& m, A8 s

" `' _2 T2 u- l7 A- ^) g$ T                Features::Feature *feature1;% a6 y5 Q5 v) L; p# s5 |
                feature1 = edgeBlendBuilder1->CommitFeature();
& _% \) }7 }& q* t- Q5 e1 c9 Y1 C1 k
( a7 T  b. z$ n, o) v

+ K" ]; A( q/ P                edgeBlendBuilder1->Destroy();& Z" u8 q. u* j# a* M% M$ z0 P2 o7 N

' f. B6 o; q1 \- B9 u6 Y" j9 u. c    }
! b& X  C- N6 C    catch(exception& ex)
; Z4 D* ^: ^) z    {
. f6 ]8 \& C  o- |        //---- Enter your exception handling code here -----
4 I$ r3 ?% ?6 a3 m3 r5 t. s: X        errorCode = 1;, F6 Z. ~+ K( d- v7 ^7 u
        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());0 N( \# C$ R2 V3 I0 _3 x% J  t
    }
. T0 C& W4 c5 M1 X) d    return errorCode;3 I/ g8 }: n% ]& `
}

1 `- p0 b9 m; g; N

* L/ l7 z6 Y8 n8 i3 f说明:因为字数有限制,这里只贴出关键代码。
9 Y0 {% A7 [2 v4 _( N3 s: h1 G* i! }- _# d
9 x* D- P# y$ C: W" N

( [# X4 C0 P; 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二次开发专题模块培训报名开始啦

    我知道了