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

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

秋爱 楼主

2015-8-15 09:15:43

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

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

x

# \0 E$ B2 V; y3 H' G% \void selectedge::initialize_cb()  |& V/ k, c9 f' f7 L: S- O
{
2 i9 i( F* ]+ s, w    try
* S0 q; A  ?: V$ Z. z5 G. P    {
; C' o$ G: Y6 I, z4 T/ k/ _& m- ]
        group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));! P5 i% q. e/ K. v1 q! _2 `% z& B
        edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()-             >FindBlock("edge_select0"));& ^" L! X% {6 R1 ^) M1 i6 e7 c1 ~
        expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()-       >FindBlock("expression0"));}
  }" |' m7 O1 ?; C% X. ^; Y: a; A" O    caTCh(exception& ex): |- Z) D. O/ B1 V7 a" |5 Q
    {
6 A2 L$ i6 i6 ~6 r# d9 U" Y( b        //---- Enter your exception handling code here -----) z4 u, Q6 h0 c7 H
        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());
- @4 g, e& k$ `* P" i% J    }
1 y( o$ R' o! m6 G& z4 _) L}
) F" s% i# o3 K& T# f
3 V# G3 I" F0 Uint selectedge::apply_cb()9 b  s( Q3 D! Y/ A
{
  [! T5 h3 N. K+ O3 ~    int errorCode = 0;2 \7 z' z$ z# t. Q
    try
/ U( Z; X6 L0 o# a6 n9 y    {
- ]1 U8 K6 _7 i& _3 `6 w' r2 [        //---- Enter your callback code here -----) n( y/ d& g5 M% q. k0 g
& t3 R: O1 @5 m, v: F; p

" K& r0 ?& C: w/ `" P: V) z
+ n" g) g. d/ V/ @- [' ^
                Session *theSession = Session::GetSession();/ A5 d7 s$ H. ~! e
                Part *workPart(theSession->Parts()->Work());
% D) i9 t# v) m" Q                Part *displayPart(theSession->Parts()->Display());2 ?, K. N3 v. I5 _* H! l
7 a. G8 q" H  y! v  v  P8 t
0 T& z* K# y9 [4 `
                Features::Feature *nullFeatures_Feature(NULL);
4 I! ^7 d; Q: d9 X                Features::EdgeBlendBuilder *edgeBlendBuilder1;& C9 T1 y* A+ ~' D! e6 o
                edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);
0 r) B. i0 `, _! `& J  V7 `# \
5 ]4 ^. ^% a% H' p" U: ?3 X% V# C* f
3 r% c# b7 C& v. \
                ScCollector *scCollector1;0 N: Y+ L2 s2 }1 `( I9 ^
                scCollector1 = workPart->ScCollectors()->CreateCollector();
- h& L7 R* ?! s/ ]( {
& Z) \% j7 O" z# r) ?* u9 C! X

* q/ {5 l2 C/ H                std::vector<Edge *> seedEdges;
( h- W" X: G" I2 Z+ R$ {                + C* I0 R4 E* r; @
                std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects();       //获取选择的对象+ f" x: T2 F1 t5 \, ^( @, B) Y
                for (int i=0;i<selectob.size();i++)' y. X7 n" F4 M) t
                {. o6 Z' e; n+ T( b+ L1 ?* B
                        seedEdges.push_back(dynamic_cast<Edge*>(selectob));
; K( z. b- O3 Y; X4 u  }$ R2 H' ]. f- J! y  |

# L- z! x; |) P4 g) I# K5 M  double dia = expression0->Value();            //获取表达式的值
3 @# A% X! f# q( T* q4 Q                stringstream DIA;
+ S+ `  z& w  O/ Z* P                DIA << dia;
) S0 k: O- D! M  \# E1 e3 M+ f: ]" |
8 m; E5 }/ K, }) t: Y
) `# g0 B* X6 t
                EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;1 y4 l: p! N+ k. p" C# q1 u
                edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);% ]0 \9 e7 N# }0 l4 ?6 S, q

' E! D9 }; Q+ s6 W+ Q

' y- ?9 D: B+ e* E" Z4 ?                std::vector<SelectionIntentRule *> rules1(1);2 H  ^$ E; d4 e7 v  c
                rules1[0] = edgeMultipleSeedTangentRule1;
% L1 m8 D  K: ?  }                scCollector1->ReplaceRules(rules1, false);: u' O9 s( q. R$ h3 z

2 a' ~6 S) V7 J; F/ Z9 ^0 @

/ w/ ~! O) C7 m                edgeBlendBuilder1->SetTolerance(0.001);" _) h6 Z  w! p1 `) t$ c, Q

$ D9 j' u8 M6 n' w
1 i# x2 N1 x5 r, b9 r6 r- S
                edgeBlendBuilder1->SetAllInstancesOption(false);  F5 O, h3 \) u) a; Q

( D5 I/ G8 U: \4 e9 o) a
; B! B) \# S4 C/ S6 S
                edgeBlendBuilder1->SetRemoveSelfIntersection(true);9 |) n0 f, A' m: ]0 k
/ |. Q) [' G- o' k9 y. V
1 }) [9 q* d$ Y! X4 T4 f) ~
                edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);6 q6 `" c! G  m$ [" {

- |2 i& e6 y6 T' T# \  V& ]

) ]( O1 F  B9 ?5 Y; |0 m                edgeBlendBuilder1->SetLimitFailingAreas(true);
( v5 p* T0 V  H# M3 ]+ S9 n1 K. k. L# \, k

4 X, B  e" `$ U0 @4 A  u$ l, w, b0 E                edgeBlendBuilder1->SetConvexConcaveY(false);6 y: U; w1 O/ P/ }. L# D/ p

1 d( \' {6 N6 R) P1 W

+ W; o% K3 c& @+ U7 v                edgeBlendBuilder1->SetRollOverSmoothEdge(true);
: Q- D4 Z& {9 z) P- }9 F& _9 f" _0 C) F0 ?! p- `* e
" s' Q8 W: y# u- O, u
                edgeBlendBuilder1->SetRollOntoEdge(true);6 U9 ~! ^; t+ @* Y9 A# y! t0 V& E

% G$ o& Y! I) t# B" Q; C# X
: G. t2 s. Q8 w9 `% l; Q# ?3 L- w8 T
                edgeBlendBuilder1->SetMoveSharpEdge(true);
+ S1 V9 f8 _6 s; ?, `  r* x  s" C2 j7 B# }2 _3 Q

  [5 w$ d8 c8 ~+ L+ w: V" T3 o+ n. }) r                edgeBlendBuilder1->SetTrimmingOption(false);
/ F; ^4 ]' L0 ^' K, h' h6 A* T8 }( O! s: I! n- g% b* g! j  B/ d

  E" n9 i' \+ X) d                edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);6 A" l# G7 e& `1 i
( `. S8 k# a0 a

  n# C7 B1 k9 T                edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);' N" R1 q* A1 p% E! S

0 q" G# T: O$ w3 s1 T
; u0 z9 N( i# J
                edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);
5 p% l) C# s$ M, I% D9 ^" Z5 N1 B7 L8 A$ v8 C; o7 {
- q/ `. Q  H: k8 m
                int csIndex1;
" ?. L9 {) @" n/ v) `) ?( Q1 [                csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());
' u+ a4 ^8 w' }* |* k9 q6 a4 u9 _
+ s7 L# l6 u2 e7 s+ A

! A3 W1 C* D, F9 y  I/ q                Features::Feature *feature1;3 X. ?5 P! q, }( Q+ p8 f2 G
                feature1 = edgeBlendBuilder1->CommitFeature();
: a$ M+ ~, Z/ \' W7 [( o& ^. v
" C' G! o1 J  b) t- w8 [& k
  v3 s: s  A/ {7 V1 H
                edgeBlendBuilder1->Destroy();1 R6 M5 ]$ a  a6 L' \0 d/ ?

) O$ d/ k$ S  g  \/ l- c: q/ ]    }# W+ z+ b3 u! d  ]
    catch(exception& ex)
0 ^3 E2 B" ~4 X& d    {' S- k' T) ~: t3 c
        //---- Enter your exception handling code here -----: m+ {- L$ A6 _2 P1 ~
        errorCode = 1;4 r1 G2 O( V* H
        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
  [, D: c: T7 }( f% e9 V    }
" U9 S) C; K8 i$ X5 i  {    return errorCode;
1 g$ V5 Y' \3 f6 z' W}
6 }; f9 `+ I2 k9 L
- w. N: ^3 R* l: l
说明:因为字数有限制,这里只贴出关键代码。9 h( A, B  N2 S
; p- B" g8 t+ d- l' V
3 ~9 m3 \' P' K& V, B% t2 M
3 [6 M& k6 a" p& 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二次开发专题模块培训报名开始啦

    我知道了