PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

[交作业] 通过UI结合代码生成倒圆角功能,有成就感!

  [复制链接]

2015-11-23 16:33:40 3841 3

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

秋爱 楼主

2015-8-15 09:15:43

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

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

x
9 W( C2 C5 Z2 E& x
void selectedge::initialize_cb()! u$ ~/ P, {! p, P! y* {
{
( u7 k  r5 i3 b    try
& X9 y/ O9 S) s$ ?    {
3 Y5 Y9 g, j2 i9 b2 a7 m
        group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));; ?5 d3 f# D8 D7 V" E2 @  s
        edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()-             >FindBlock("edge_select0"));
. D7 C. I9 U* \% t7 P* V8 |$ d0 g        expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()-       >FindBlock("expression0"));}& v5 D9 A( @( Y) g
    caTCh(exception& ex), t# F$ O* P0 w) w4 [
    {
: Y# T8 R/ e8 M! Z+ Z        //---- Enter your exception handling code here -----7 n1 s! w0 f) L
        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());" s1 w$ N( _, T8 |0 Y
    }) T& _$ H( l$ K1 C3 b* E" A
}4 `* a9 n9 P  u/ K1 m
; ^6 F% q, z) w; t: x% s
int selectedge::apply_cb()2 E1 U. e8 L. O, `1 I' P
{
+ H9 y0 G% ?' z. J* U  @% K' v    int errorCode = 0;
9 n2 S% F# t" r6 C    try" v% }5 B$ z8 ?) N# H
    {
3 e1 ~! M; b4 v' ^0 d        //---- Enter your callback code here -----
1 o+ B. d1 P% i& O0 `# b; A1 y
# z: [( ~0 b" j) @$ W) s9 I# J& J5 ]

9 i$ ]1 s6 ]# W5 {# I; y                Session *theSession = Session::GetSession();
7 |8 p# A' w! R" D, {                Part *workPart(theSession->Parts()->Work());$ ], h- r+ c! A" ^  ]
                Part *displayPart(theSession->Parts()->Display());
- e8 i! F/ [, k5 Z( X
  t, p: q) |9 D

: G/ g! _9 z8 B& l                Features::Feature *nullFeatures_Feature(NULL);4 u* v+ E& A- y7 ~
                Features::EdgeBlendBuilder *edgeBlendBuilder1;
" d- Z2 ?# X7 f8 Q+ T% |& ^                edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);
) p$ x3 Y/ w5 [5 C8 r7 a0 x
7 T3 V6 ~2 v7 }- l7 Y

/ k3 [% q3 X, m: v* d                ScCollector *scCollector1;- w" x5 ^  ^7 E. B3 S+ G
                scCollector1 = workPart->ScCollectors()->CreateCollector();" U, g/ ~$ t2 V4 M% g3 L* ?; K/ }# q

7 F( |5 l5 z2 {+ q
; x. R' D( q7 o' |, ?
                std::vector<Edge *> seedEdges;
' y0 Z! e' k1 w6 ^; a               
$ L0 R3 A" m; V8 \! ~4 Q& g7 i7 S                std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects();       //获取选择的对象$ f) C. e6 q, V/ x+ O) e
                for (int i=0;i<selectob.size();i++)0 a! M1 u. z9 l/ `7 {3 D
                {" B0 D: O4 s' S2 C* I4 _: e
                        seedEdges.push_back(dynamic_cast<Edge*>(selectob));
4 k7 H( ^% R7 N0 W  }
2 X5 l* Z' t: P- f* j
, J% w% n% `2 g+ r/ [  double dia = expression0->Value();            //获取表达式的值
. |( {6 k, C2 B1 n4 \. H                stringstream DIA;- D, i$ b& c9 e, y- B0 K/ N# D
                DIA << dia;: y' }2 M2 J/ P% c% _1 E0 V" y# _
7 G) f3 H$ S6 V* M# s: X

1 x" v* _" t2 G4 w( m                EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;
1 q* E' |9 R$ }+ |                edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);# V0 ]3 q( F( n" a$ M
: Z- b1 J2 {& b* z" f, _- c
: w+ V; A, W! n2 H. ~
                std::vector<SelectionIntentRule *> rules1(1);
6 C8 N% [- [* C- v) k9 K                rules1[0] = edgeMultipleSeedTangentRule1;
3 ]% }" m1 R$ F( o                scCollector1->ReplaceRules(rules1, false);
4 U* c0 }) n  B% ]' @# I2 s/ p8 i  l" A- K5 X: C

) g5 l4 W% y6 N) v                edgeBlendBuilder1->SetTolerance(0.001);( ?5 s) B9 w! W8 }3 N6 d! l

0 R! j" j) `, w" g* i

- k& l$ B- G, E0 f                edgeBlendBuilder1->SetAllInstancesOption(false);( ^* S+ I/ k9 w: z4 I2 f

! y8 n" j- b; C9 C" p! Z; {% [

0 k4 r$ E* y  T' x" Y! \( ?) ?! @                edgeBlendBuilder1->SetRemoveSelfIntersection(true);+ ~3 D8 j$ M9 B$ z8 b# F

9 a8 ?/ C' q! I; E3 ~) S8 a

" R9 p$ A- V. S1 F" ~7 J                edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);
# J0 S* I5 x& ^2 _
1 [0 |6 [, S% u0 W' B- M. w

$ O: ~2 B( {1 c; K! s/ A! d/ y                edgeBlendBuilder1->SetLimitFailingAreas(true);
  v9 I' d! `2 c1 h  `! H4 U# c/ Y7 u# Z; a/ p
9 P) X9 ]9 r( K- y: x2 a* a
                edgeBlendBuilder1->SetConvexConcaveY(false);3 l2 l$ a1 ]& }0 E

. H6 m2 X1 P5 x

8 ], J$ a' i" K" y# Y% Q; j8 e) S                edgeBlendBuilder1->SetRollOverSmoothEdge(true);* \! z+ d' b& M

) z) ^' ?2 r' _% g. W0 ?
. C* s2 O6 l0 Q9 e7 q7 m
                edgeBlendBuilder1->SetRollOntoEdge(true);3 g6 j! ?3 ~" D, s+ E4 j2 U

7 x" s/ D; e' O8 R

" |# |( }# Y. p! U  t9 y( Q! U, b                edgeBlendBuilder1->SetMoveSharpEdge(true);9 N& i& N% n7 L

; g4 }- u& N& H

  ^# q; I9 |7 c. g% i, Z2 p, r                edgeBlendBuilder1->SetTrimmingOption(false);
% ^2 A6 ~. D+ M6 G+ W
( w/ _" b9 N: R9 A) w

6 J1 G3 P& z) w+ F6 R: W* Y) t                edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);
( Y; ?9 k, o, A9 A6 D* T/ q; Q6 b- g+ l9 E

0 u6 H* w$ V( y9 n' Z# L                edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);
' @5 Z4 ~7 s# k( o  i
0 N$ K7 j6 b, E6 Q
# Y$ m- t) i( l$ B% }! {
                edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);
. R3 a; x/ o/ D/ d- ?" W( m4 O
4 y4 Y; k5 O% Y* J' j6 h

/ c: R* g1 `* d; ]                int csIndex1;. k: F9 Y5 Z, U! T" s2 O
                csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());  x# O* v  P8 i( [

5 J- A+ g* Q# H& v2 L# M' q

7 h  X( j) [: P) S. m, g                Features::Feature *feature1;1 S/ S" q1 V$ L- C
                feature1 = edgeBlendBuilder1->CommitFeature();
: u" Y. R5 o8 B/ \9 \/ q. ^8 S; }( l

6 H" ]# _0 _! @7 q- Y. m3 l                edgeBlendBuilder1->Destroy();, S! ~4 R- G1 `0 L9 ]5 x
. y4 S: ~; M* r( b
    }1 A' @( P/ K2 e6 X) W* B) L, V; g
    catch(exception& ex)2 G/ y5 K" [4 _0 G! ~. `
    {
  m, c+ X$ C# w7 ?. V" j' q        //---- Enter your exception handling code here -----
8 U/ M. |; G& j+ Y$ `3 p, R        errorCode = 1;
- f3 e. a- \& c* B( r        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
- X* O# g$ `5 o: m( X  N: o    }
; q/ D$ S  t0 Z1 }% X# e) E; n) N) |    return errorCode;: k" @2 e& q' T7 w4 G3 H1 H1 j9 }2 W
}
0 I, {' s+ |* g
- `- w: E+ ?8 I5 B
说明:因为字数有限制,这里只贴出关键代码。- |& y) v# _3 e9 [6 i9 G
" e' Z( L* F3 K
4 |! Z- M; f  P! M$ d

5 H( l7 Y/ F! B9 P
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二次开发专题模块培训报名开始啦

    我知道了