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

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

秋爱 楼主

2015-8-15 09:15:43

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

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

x

  \3 s( E7 V2 Z5 Nvoid selectedge::initialize_cb()+ Y# M8 {% g- _( }4 j- w. e( v
{
8 U" k+ K5 V  A) e    try
' Z: o+ s0 N% Z6 d& s( R2 T% l    {

/ @0 G* E, c, j+ g; o0 |( s        group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));
1 S/ a1 g1 {2 ~' p0 z* {        edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()-             >FindBlock("edge_select0"));) m! l* ^+ h& b  I9 I
        expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()-       >FindBlock("expression0"));}
/ {  C8 b4 l/ X6 N6 Z' E    caTCh(exception& ex)) ]% [( M+ A, N/ S  O3 R7 ?# T
    {) `$ F' d1 _* n  f3 k3 D' P
        //---- Enter your exception handling code here -----, k$ u  w0 l1 P1 i" S: t
        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());
2 h4 D9 V3 v7 @2 u    }# h1 K( \( H/ w$ @; c! A$ _
}
; T# m5 H, ?. a: k+ b
# u. g1 i0 B. g) {% x/ L0 xint selectedge::apply_cb()
0 |' ^  M: V6 `, J: U' n( Z{
6 [' d; L' T( [  A6 s$ ~0 w  S* b    int errorCode = 0;4 W5 h9 ?8 C" n3 ~$ A
    try
# X  e0 N8 q0 u6 w    {/ ^3 M0 _) w2 Y7 v
        //---- Enter your callback code here -----
. J0 _6 L& C4 @- s) @& M
. M+ i; }, E4 d  K/ j; K, x, R* ]) Y) ^
* {/ _5 }1 {0 E6 _% w; \2 S$ z
                Session *theSession = Session::GetSession();1 C. R' a) a, G4 d: ^3 y
                Part *workPart(theSession->Parts()->Work());
* o" P7 Z+ M2 K6 ]                Part *displayPart(theSession->Parts()->Display());
) p& f# A+ }' K) H* H3 p- G
5 j( l4 W/ E+ w
9 R4 \  M# [- r7 q4 Y) L+ g9 \2 G( [
                Features::Feature *nullFeatures_Feature(NULL);
# R: U8 ?9 i5 N) S                Features::EdgeBlendBuilder *edgeBlendBuilder1;
: p  b( }2 ~4 l                edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);
  W# |3 m! i: m* X
9 U' Q# G) s+ Y. K* d5 y' R3 W* E6 y0 ~

& ?7 G7 d5 b& ]4 P                ScCollector *scCollector1;3 R* Z; u, a) }6 Q
                scCollector1 = workPart->ScCollectors()->CreateCollector();) j( w/ N7 s8 x3 g$ W" {

: Y9 s! \5 R  N. h0 T
) |! s/ g8 ?* S! c% e
                std::vector<Edge *> seedEdges;
, G$ F" Y* q3 l2 T1 M* f7 Y( w9 }               
8 x0 e+ z8 ^- T4 W- w7 C5 ]. B( h                std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects();       //获取选择的对象, h! Y5 Y2 ~" {6 p; i
                for (int i=0;i<selectob.size();i++)
! U+ r& D- A) N. m; t+ W( t                {
- D6 Q# z/ d) R' V- ?% S  ~                        seedEdges.push_back(dynamic_cast<Edge*>(selectob));
1 m, l  R; T4 @1 z; ?+ w0 t  }
2 b& e0 D7 D& j: Z1 m2 B0 y, {1 i5 w  W9 }8 K
  double dia = expression0->Value();            //获取表达式的值
! t" w, d0 \! i7 p4 |, @                stringstream DIA;0 \- a5 o; s. E$ Z" D
                DIA << dia;
6 E, G0 \0 l2 G, ?. i8 ~' @4 X6 M$ m6 }; L1 K6 W' O1 \; v( X2 a

7 h% K5 P: _# m$ ~                EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;
8 {9 N3 O" `; Q" H                edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);
$ ?5 z/ D  f, j4 z* u/ \# V8 D: L3 N/ P: W' p/ p* q( t8 N
3 r- h$ I& p* J$ x3 F; N8 e( T6 E& c
                std::vector<SelectionIntentRule *> rules1(1);
) o+ L* B( ]1 ~4 _2 n2 {- S                rules1[0] = edgeMultipleSeedTangentRule1;
8 k- `. u9 H. N# P* N) ]& A                scCollector1->ReplaceRules(rules1, false);( K( Y6 i: H3 l
! H7 ?# X8 G  T0 f/ R/ c2 m
+ K0 ~: [* U# S% n1 F. M
                edgeBlendBuilder1->SetTolerance(0.001);2 G) ]6 m$ {0 i- D/ ~

; W  d1 f6 D7 s. |5 W8 G
  ]- o  B5 \- z0 ?7 ?% m
                edgeBlendBuilder1->SetAllInstancesOption(false);( A% V: \! \5 |
: k/ B) J8 E) Y6 p5 g( |6 D6 j

- e: C+ k1 f5 P$ \$ z+ h$ q                edgeBlendBuilder1->SetRemoveSelfIntersection(true);0 f, Z3 ~$ V3 N* }2 Q

9 \' P/ `% w% b
) t0 v/ Z1 h1 ]& f: ]
                edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);
' W* \. Q* ]. l% P2 x" p+ [2 m" s! `# `" e! o
: `5 T* q3 x4 O* a" U
                edgeBlendBuilder1->SetLimitFailingAreas(true);
/ K; G( Z+ q8 w. B! ?
4 h9 Z, }) G/ ^% r1 P

* S4 L/ Y7 n! S$ D4 j                edgeBlendBuilder1->SetConvexConcaveY(false);
5 n5 ~$ s5 e7 H7 t/ W8 ^
5 k/ ^$ C+ D) U

3 M% J8 H( d8 W. R& T& B                edgeBlendBuilder1->SetRollOverSmoothEdge(true);
: }! d* `0 y+ N4 P. j4 g& ~8 v) q1 |
/ J* m( ?* I0 {9 i+ `5 E
" u0 H4 W) k% k2 D9 {
                edgeBlendBuilder1->SetRollOntoEdge(true);
3 q6 v6 P; J8 M0 R0 J+ x
9 t4 T$ M6 Y( z

/ K+ O: @2 O" ~                edgeBlendBuilder1->SetMoveSharpEdge(true);
* C) m! n* n) ?! c. {4 ^5 s7 \6 [9 n- N: h# Z+ w- F( D/ N6 u
: ]  ~; R  O, b& M5 v
                edgeBlendBuilder1->SetTrimmingOption(false);) f* K, ?# l3 Q9 p

/ ~4 m3 x! E% Z, ^0 D  t

! _0 Q- Q7 n2 g6 G2 V# h                edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);' W3 z' s. F+ V0 |$ f
2 x! J4 m, ^9 Y
5 N2 ?! }2 X8 I) x& U: T: e- R
                edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);
8 ]% Q( S# L- q4 C4 K8 A( \* k
7 v0 t1 S9 [6 @+ A

% j) U. _- Q  K" T                edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);
$ i6 o1 c4 K; ]; w3 w( ]3 P  D# M* E- K: C0 N2 M6 M2 l+ t
$ P  O1 X: n8 N' p% {
                int csIndex1;! Z  b( K2 a5 n
                csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());" v& f  B# V7 e; P

) i5 ~* U2 i! N" {

" @# [+ ^9 s+ a, C                Features::Feature *feature1;
) V7 e+ q" g$ g2 X# g* v                feature1 = edgeBlendBuilder1->CommitFeature();
1 y  ]+ \% y) l( y' W- l
2 {1 P& z" U5 {- c$ J

$ i* K# A1 s- Y5 k% l9 n8 g: \! t                edgeBlendBuilder1->Destroy();* I' E, j+ z1 {7 }" W0 c+ i  P

* e/ ^4 G3 M! k& j' y$ b6 O    }
) T5 }; r$ M! ]7 E2 d  J    catch(exception& ex)
2 \* A) X+ Z5 N8 \& e- u3 B, ~    {$ u7 V, C2 V, B
        //---- Enter your exception handling code here -----
* o4 Q1 z- Q5 Y- t        errorCode = 1;
6 n9 R7 v- ^9 a8 r5 D2 s/ [2 f        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
; \7 W4 {0 @3 i" w    }
& P7 a: N0 m; G6 A! R- A    return errorCode;! {8 d9 h) g5 L# t
}

/ d8 z: Z  k! J% S
0 k& R9 m( [8 I: m! j* o- r
说明:因为字数有限制,这里只贴出关键代码。2 o* E4 g1 J' x% {9 T! N1 V

1 E/ j! _- J; }$ d  C1 A! I/ e$ x3 o5 H8 i

/ }6 R% i  Y# C$ G" y$ a
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二次开发专题模块培训报名开始啦

    我知道了