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

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

秋爱 楼主

2015-8-15 09:15:43

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

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

x

, r4 o2 [- k/ c" O4 Gvoid selectedge::initialize_cb()
8 D( I, m/ b. N1 U. \$ G$ U3 |4 u{* J5 |' c7 Z( e0 m9 u
    try
5 L" K4 M9 {0 Y3 r5 e    {

7 P$ k4 a- L! U' p$ `/ c" V        group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));
* [7 g$ l( [: J& w% i$ L        edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()-             >FindBlock("edge_select0"));& `9 L4 ~+ C  M; y5 j3 u: L  B
        expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()-       >FindBlock("expression0"));}: y5 c% E8 ]/ j. f) r
    caTCh(exception& ex)$ [' i' ?# F; U! N; h, Y
    {! D2 W/ C" [0 n' G
        //---- Enter your exception handling code here -----$ N" u) D# d/ B+ K3 S& k
        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());
; w3 l( w3 S. k/ p4 n    }
, y( u* j) i6 r8 ^, d+ A}
# b+ U9 p8 E1 c, D( L# d
  j  W" K' y$ Mint selectedge::apply_cb()
7 M) ]/ B4 G7 n* J{# @# j& q* d! e+ ?7 [3 n% }% k: p
    int errorCode = 0;
- {  M' f) I& W8 p1 ~; ]    try
/ y9 t# ?% d& ~! L% L; S5 ?! `, [    {2 O5 n7 J+ Q+ M, d8 @. U
        //---- Enter your callback code here -----  d, N2 {1 W6 j

$ l& S+ E" Q% k5 f4 q" B% i$ T$ E, [6 E
' P' h$ h7 g1 ?( u  O6 Z
                Session *theSession = Session::GetSession();
% K, B; R. ^2 E' t( K$ q% ^                Part *workPart(theSession->Parts()->Work());* o2 X/ b3 V( X% X) y* V: \
                Part *displayPart(theSession->Parts()->Display());: f  W8 J1 b$ |9 F, M3 }; `

' X9 e" i& v5 v- f% I& J: a2 K

& {' m' D& b( f: w. }/ M& t! a$ t                Features::Feature *nullFeatures_Feature(NULL);
# l8 r; O  r' y! H" g" Z/ t                Features::EdgeBlendBuilder *edgeBlendBuilder1;3 @- Y- m( `* R  q
                edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);
" O, }* v6 P. ?1 X; Z( t6 H# {1 B) r. X" i) C* H' j7 L, P

. k7 j* r% P! q: x. ~+ \+ [" H                ScCollector *scCollector1;
/ M& ~' r! ?9 o, p: Q/ h                scCollector1 = workPart->ScCollectors()->CreateCollector();5 O( p+ c7 a7 w2 t6 P/ @
8 P2 Y: a/ _1 H, P& L" t

/ I/ U: Y0 `. @) u* O7 W5 B; u& B                std::vector<Edge *> seedEdges;7 Q& c+ V4 @* t2 w
               
+ `! T+ }3 n$ N                std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects();       //获取选择的对象+ y9 v. `$ H# D9 G1 o3 x. |& i: c
                for (int i=0;i<selectob.size();i++)* J# P" D7 q/ Q' x
                {) \/ q" M2 w/ E# F
                        seedEdges.push_back(dynamic_cast<Edge*>(selectob));1 _) ]# m( T9 a$ S
  }  B7 w% R3 X1 U

: p" ?: k6 N+ L* w  double dia = expression0->Value();            //获取表达式的值
+ S% }# a8 W/ c2 m" s                stringstream DIA;) J7 [) N8 H+ A' G. Q5 }6 p
                DIA << dia;
) Q6 e) X$ x2 H' V0 R- H9 `3 r  i; a! C- D& i8 c6 c$ C( i
4 h' C1 E, V( ?9 O3 _$ _6 f
                EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;
% A8 b. Q$ k& ~) u7 `" z& S. p8 ^- K                edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);
& t4 P, H  T- I2 u6 }" h! S
1 W4 u3 s0 D% I7 a& F7 c
" {% G3 F+ y% i
                std::vector<SelectionIntentRule *> rules1(1);" S, {, s% e! G+ w0 F
                rules1[0] = edgeMultipleSeedTangentRule1;
$ t$ J8 N- q- g: P* o                scCollector1->ReplaceRules(rules1, false);
4 E- W7 r7 l1 {% a  ?; b4 L
5 T: [$ W% C2 w* D0 B3 T& I
1 S  ]/ V9 k; k$ k' E
                edgeBlendBuilder1->SetTolerance(0.001);
7 N* Z/ b9 F& H- A# q1 p- w$ Z5 `7 ~& @, x
: O" R: U6 S8 Z* ^* A- y' {4 b
                edgeBlendBuilder1->SetAllInstancesOption(false);
3 C0 a3 _/ P4 h7 ]( m. p1 }& e8 ]& R0 X) ~( Z/ [1 x

2 C2 B3 T$ ^- i& H" d" K: G8 a                edgeBlendBuilder1->SetRemoveSelfIntersection(true);
1 U. ?; M+ i8 E
. f2 W* v0 B2 ^5 c: Q

3 u: h! [' @, S0 Q! f5 k/ s0 \                edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);8 }! T: g9 b# d
& E! u4 P# K7 ^2 a
$ p( H( y0 X% q; _  }* X8 V
                edgeBlendBuilder1->SetLimitFailingAreas(true);
& P; {/ I  U" M+ m# }5 h: o: _3 a9 f- p2 A2 H+ }

; n5 S0 Z( `9 t                edgeBlendBuilder1->SetConvexConcaveY(false);
' Y" t, u5 g" m0 Z+ [# `9 k
9 ^8 S* u9 I" J, S* j% N

% T6 |, I' l: C  @8 c# x3 c                edgeBlendBuilder1->SetRollOverSmoothEdge(true);3 S& T' R8 I3 U- a7 W$ e( X

/ g9 }6 F1 X+ l/ V; i1 \3 v
0 o, @' z# z4 J+ H: s
                edgeBlendBuilder1->SetRollOntoEdge(true);6 Z) a5 P% o: ^6 K9 c9 R: L, r
- {3 w! |0 }1 t2 I! o" Z

' k1 U, u+ e* p) l" c1 w' R0 Q7 A                edgeBlendBuilder1->SetMoveSharpEdge(true);
1 {1 [3 A  _' o  b! q0 P0 f/ Y1 d4 `: w. z
4 m. C0 Y, w: u* x9 _9 `  u
                edgeBlendBuilder1->SetTrimmingOption(false);% S# C* O* T4 u* E4 M
$ A7 B, I9 R0 U2 Q

  r2 |4 P; `% e8 b4 c4 \                edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);
) w+ y: c3 }- K; g  |; g; b' I( O  w
7 r. ~. B1 ^3 S/ \* R' l1 C
$ B2 }; S. S2 v  b& o! E$ e. }
                edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);+ u: }! k+ I6 P# P5 S

, O. p6 F% L' L

6 |6 D$ L' Z2 Z/ r                edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);
+ s$ S: E7 J( W" V6 }* w1 G( f+ Q  X! N, r9 s0 {3 W8 W) g4 {# a
" b7 i/ v) l) F4 C  T  s3 k
                int csIndex1;8 f* g6 w8 x7 S4 X2 O
                csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());. X0 r% b; Y5 R3 O. }5 P
( q# C  N+ S2 L# }& \2 M

5 k; N# r+ \# X5 o" \                Features::Feature *feature1;# W/ `, I% ?& n* |$ R
                feature1 = edgeBlendBuilder1->CommitFeature();
" k' |6 ]" _8 w# E+ E. G8 L& X- n5 a* X  \& V
0 }0 A* U+ C4 u( J# B# C
                edgeBlendBuilder1->Destroy();
! B. N3 f* |1 ?+ D' F, I, \: H! Z. b3 C' }6 t
    }
, W- Y0 z' X$ j6 F' F' p( n3 w1 F    catch(exception& ex)
! s/ l  w7 ^6 O+ D) |! Q8 q1 Z6 ]    {
* |# A8 m( h9 Q; m- g9 @( R        //---- Enter your exception handling code here -----
5 r, C) W/ ]& y' y        errorCode = 1;
9 \5 ]  j3 H, D9 g, h        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
+ e. B' f9 n5 p1 C& T0 C/ `    }
) W3 l% S; T0 }  o    return errorCode;
* D5 _1 q* T6 t; U3 S}

0 L, O! B0 K) G

- I- B  C9 s) [9 R" M1 X说明:因为字数有限制,这里只贴出关键代码。
% \3 n! p" l, Q  Q4 Z
+ r1 s. C: F+ o$ n* Y% e* {% n& U8 j7 x! u  l; g7 n& g( D
! B& J, M. M. b% 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二次开发专题模块培训报名开始啦

    我知道了