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

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

秋爱 楼主

2015-8-15 09:15:43

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

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

x

$ d$ u" S6 l6 y* d0 l7 ~1 w/ N6 ?void selectedge::initialize_cb()/ Z! R7 L/ Q4 f- \  k( b& n
{9 `, O0 a5 g: D( n  E) c. |% T
    try$ b3 F4 q3 U" f! x* B2 v% J; k
    {

) f! C0 Y8 {+ N2 e  _% n        group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));
' v' j( B7 `& p6 a" v        edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()-             >FindBlock("edge_select0"));
: b3 r( u  F6 O* P, H2 y$ L        expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()-       >FindBlock("expression0"));}
* ~/ m. v. s: o6 j    caTCh(exception& ex)
0 g* P. T0 }( ?  h5 e7 g; M    {
. A# F4 L4 I/ M        //---- Enter your exception handling code here -----" D' T* L9 ^6 U4 i
        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());
$ G9 k+ t& F: }! M( @% ^- [    }
' @+ ^! d, w) t3 ^/ C4 H}# h& a9 j. T' P$ o% O$ b% s
4 M* S# `- y8 _# t& o, Z. I" N
int selectedge::apply_cb()
! q/ ]9 {- V; k# ?{
7 N4 }# d+ s+ p% D: ]6 U    int errorCode = 0;/ ~" K' ^5 B% f  H1 Y3 ^, u
    try
4 m3 q+ {+ s: `    {
7 a3 I: t) A# q6 @1 M        //---- Enter your callback code here -----
' o8 i, ?4 H4 ~) _# I+ q
. x" X* ~* S7 y
6 l% s5 u1 |. }6 K( G

. V# V: u8 t0 }                Session *theSession = Session::GetSession();4 m7 s8 b) i9 t/ e) B) Q4 L7 D
                Part *workPart(theSession->Parts()->Work());1 P' E) h7 F4 I4 c* ?7 h8 U8 y2 h
                Part *displayPart(theSession->Parts()->Display());. g/ @$ `8 j" ?$ o/ {+ z) c! l8 I
, A( X: W: D9 h! D' ]

! [9 \2 k( M3 r3 y                Features::Feature *nullFeatures_Feature(NULL);
6 F8 Z1 k& l, q                Features::EdgeBlendBuilder *edgeBlendBuilder1;
5 u; w1 _) I9 s                edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);0 {6 m8 c- g3 E! h+ s6 I  Y

) o2 S+ o& u. ?- _! }% M  D

$ e5 }  |4 ^! m! n# Q( m% H% p3 s                ScCollector *scCollector1;
5 p1 I( w' p  Z                scCollector1 = workPart->ScCollectors()->CreateCollector();
2 d4 I7 i9 o* l/ i9 l7 w# p; R4 P' D- ~1 G

  H5 s7 T: F/ E4 s9 Q! {& I                std::vector<Edge *> seedEdges;
" m$ C; ]; _% e. ?  f9 q$ s                0 W# U" y# ]7 ?6 C0 Z0 ~
                std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects();       //获取选择的对象! C( {/ B$ ]0 Q( R, X
                for (int i=0;i<selectob.size();i++)
, O: c0 O! i& A+ d# g7 B% M- w                {
7 @4 j" `3 A& {% M( ^                        seedEdges.push_back(dynamic_cast<Edge*>(selectob));1 Y; p  [; e; I! d1 a  e
  }
9 m; `% A* ^1 N& W) H
$ l$ ^- j3 r' w5 r# ?( c$ e$ F- J. A  double dia = expression0->Value();            //获取表达式的值2 T- {& F3 |; j+ t, I
                stringstream DIA;
0 E( ]5 W) X1 z                DIA << dia;
1 h9 [* M3 u5 b- X. z) p& V2 r8 p. v) s/ {- k0 m
& |" r- @, E8 W; S; [% `* m6 A
                EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;9 P: A7 z2 m, U6 q: U7 v
                edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);
- u9 K  L7 f- `0 ?
* G8 W  o& D, X# G: B. X) Q1 }

, Y- [+ M# M5 a, @/ x, i                std::vector<SelectionIntentRule *> rules1(1);
+ E& ]3 D+ O3 K( b% S                rules1[0] = edgeMultipleSeedTangentRule1;" Z0 s3 V1 |% b; H, e
                scCollector1->ReplaceRules(rules1, false);9 b; A# E$ F8 \) z9 F9 x

3 }- W) z8 U! t3 t0 ?6 x2 q
- y& s$ H' Y1 U) M; i
                edgeBlendBuilder1->SetTolerance(0.001);
3 l% Y" [& r+ c4 V) c0 t) K1 U4 Z1 Y) }' q; V/ _4 Q
3 A1 }$ o# W& f: f
                edgeBlendBuilder1->SetAllInstancesOption(false);1 y4 ]4 v2 b9 X. E
5 g9 t% v8 `& d$ b# b
2 C6 j; p" D' b) K1 Q! R9 b
                edgeBlendBuilder1->SetRemoveSelfIntersection(true);
6 T# N9 t! w: {# f# l2 z/ g5 ~) G3 a4 \$ \! E

$ q8 u1 F. }! L* P, r                edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);
  [; i2 w) A: w- W5 K# d( l9 n1 B5 B) U# b( V. u# O0 f( a

& r* b) H% A- A1 ?                edgeBlendBuilder1->SetLimitFailingAreas(true);
% x1 Q* E3 ^# R6 |
+ }. y: q/ t) L* ^# x( @0 G  p
, B4 c+ h8 S3 y* I1 P6 U& ^; }
                edgeBlendBuilder1->SetConvexConcaveY(false);: u2 K6 }, X& ]5 ^

2 J: Q4 D. V8 ?7 D* j4 z+ e
. L$ ~2 w# G7 j% M5 R7 Z! E5 d
                edgeBlendBuilder1->SetRollOverSmoothEdge(true);# A7 }6 B: e( g1 R9 N2 u! m0 P
1 i- S" \, W4 A8 {% c& M

! h2 t" c* A& G8 p8 J                edgeBlendBuilder1->SetRollOntoEdge(true);
. l1 W! ]4 l# x- M# ]! F0 y: M2 s5 X3 _
  j3 Y# o8 ?  V: \: b" ]; N
                edgeBlendBuilder1->SetMoveSharpEdge(true);
8 d2 ?' ~& Y, @. B0 s
5 Q# L2 g9 q; I4 _4 r

9 ?! T0 K$ {5 v$ [. ^! T1 _                edgeBlendBuilder1->SetTrimmingOption(false);
' \1 @+ ^( ^: K8 I  C1 l7 ~3 u" o4 n; o5 L) a
2 n0 @' v$ K" l4 D
                edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);# n7 I( @9 L' v& w( W

3 u6 n" {6 h* L' d

. X% I9 q; j: @; v  I                edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);# Y3 i, _( F; G
- y/ i& g7 z6 P

  S5 f/ D8 p' W* P1 m2 y6 ^$ g+ M8 ~                edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);
; Q/ t4 a' M/ [, ~
9 ?) Q" s( }8 I7 N1 h0 O

/ K/ R; d& U5 ~  M- o+ Z% Q/ s                int csIndex1;3 u; c9 T  `! \& N7 R) Q! p
                csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());, C: {: ]; k8 g0 m
" U( ~2 S' m: p: a6 M/ |
. v. B4 a. j; j4 k6 F1 R
                Features::Feature *feature1;
  ]3 n/ M& y. m7 u5 a                feature1 = edgeBlendBuilder1->CommitFeature();
+ A$ j( _: l; F5 ^' U0 J7 E
2 l2 E$ q# F+ ~" @2 K9 p5 M
4 d, z/ K& w2 h) x0 K8 K
                edgeBlendBuilder1->Destroy();$ A2 e- G% }. T( j

/ ^: y. _% K' |$ ^" f# ^+ m/ x    }
% I) n' C: A& M4 W    catch(exception& ex)
' G2 @6 d/ m6 r8 _* [  B& s7 d    {
+ F. C; b: G2 ]% q6 b        //---- Enter your exception handling code here -----
/ u% {2 Q- \* K6 W$ _8 D( ^4 p2 f        errorCode = 1;
, h' r3 S) B' l4 h' c8 o        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());* g' t! C; r9 X; e0 ^( ?2 [6 {8 |( n+ ^
    }% h/ _7 I! U2 w5 ?. n
    return errorCode;. L5 ^, N- t5 ?
}

3 |: O- x( w+ q6 `

7 H& z6 L; B8 J" F- W3 y1 m说明:因为字数有限制,这里只贴出关键代码。
( N/ @* Q9 \6 Z
) o$ z  J6 m( E9 C9 ^! n
$ \' p' G3 t# E' \( I2 x9 o' z9 Q

) ]0 J8 X% T5 g, ?
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二次开发专题模块培训报名开始啦

    我知道了