PLM之家PLMHome-工业软件与AI结合践行者

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

  [复制链接]

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

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

秋爱 楼主

2015-8-15 09:15:43

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

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

x

9 R7 O, c/ z$ S6 Tvoid selectedge::initialize_cb()  C  |9 w9 b/ O: a) {
{
0 }: k6 \2 j3 p  u5 L    try* }5 U8 {) `$ Z' Q$ Y
    {

1 ^6 M; k5 j9 X: q0 O8 W        group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));
, z: L; J* W  ^. s        edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()-             >FindBlock("edge_select0"));8 `+ @7 x+ ]4 [
        expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()-       >FindBlock("expression0"));}$ A$ W; g) g" J. k% ~3 ]
    caTCh(exception& ex), z1 s6 E5 l' q9 d# |& v1 [
    {& e5 X* l" M2 m* O
        //---- Enter your exception handling code here -----
+ _( i1 M8 h; l: C0 Q        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());3 B& s  h( [4 l
    }. l& R3 \( I( J8 {; E' e; ]( p" W/ d
}
. q7 M! j1 D  G4 w
2 l" p6 j" U2 Y/ ~+ kint selectedge::apply_cb()% s6 e* R) D2 X9 k# Q
{
* w, a8 c2 C4 I6 r    int errorCode = 0;
8 R3 u4 `# [4 F# C2 O    try# k8 m* n6 {+ ^2 {
    {/ _: Y* F9 h) q
        //---- Enter your callback code here -----
# B6 f- }. j; S' S! c/ O" ?; m9 ]( n' b2 I$ E/ t
; G0 I" _' o" j! Y  U+ g, z0 E
$ L: K3 g+ W! L
                Session *theSession = Session::GetSession();. v& f% v" ~; L. ?1 J
                Part *workPart(theSession->Parts()->Work());+ D* @8 O1 ~! D$ K  D0 q
                Part *displayPart(theSession->Parts()->Display());
3 N; H6 @$ Q. `  }; I' e( E# i, H. G/ S
5 I7 ^' L( f: k0 D: j4 i! |! V) p7 s
                Features::Feature *nullFeatures_Feature(NULL);7 E* d1 o! A( D# v1 N
                Features::EdgeBlendBuilder *edgeBlendBuilder1;
) E/ w: A) L$ M- z$ ]7 l                edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);
# P% c3 d- P. R
% h* E* C) g1 b$ ~  ]/ c. N
  ^5 t( }; C) c  b8 `0 w% o
                ScCollector *scCollector1;/ a3 o3 @( g2 w9 _
                scCollector1 = workPart->ScCollectors()->CreateCollector();+ r0 g' D: F4 K

) G0 \! f" P. R' s* a

+ h: L' h6 T6 m1 J1 E  s( E                std::vector<Edge *> seedEdges;
7 J6 ~6 n# L6 Q4 m9 y3 i, u               
3 J! S" R( x* |' G                std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects();       //获取选择的对象: G+ ^3 T- H! `' J/ M- j- P. H
                for (int i=0;i<selectob.size();i++)% P7 M0 }7 W, g) D9 O
                {5 g9 ?, S& V/ \
                        seedEdges.push_back(dynamic_cast<Edge*>(selectob));2 C, }& h* q* h0 R& a# O
  }* [( u% k2 m  i( e1 t, t: a8 h
1 K9 ]5 k: Q* n- x" }/ A( C
  double dia = expression0->Value();            //获取表达式的值
9 L- e: C/ {7 Q: E5 F                stringstream DIA;  D9 U/ {; I5 w$ U& ?) f' s9 k
                DIA << dia;1 m! o- ]( N% S* u# q: F- U1 Y

1 T: P' Q; j. O: F: V5 l
# v, P' C: ?! u' h4 H9 y1 r5 B
                EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;
9 `2 Y. d; L! |5 h- Q! p7 O                edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);# {& n: v# C+ H1 R9 x
6 I% n" G% W1 W( B( r5 u

/ z" k! e6 @2 y' w0 p                std::vector<SelectionIntentRule *> rules1(1);
; r& I9 f. ?' q, H0 u7 t                rules1[0] = edgeMultipleSeedTangentRule1;
) t. J7 a$ i: Y. I$ O                scCollector1->ReplaceRules(rules1, false);8 @9 o6 |8 S5 O+ X- I1 T

( A, u: u! H- u6 J6 t6 ?
8 x9 _* i4 h# @% T- X, U* w
                edgeBlendBuilder1->SetTolerance(0.001);
3 k3 N9 ~+ z4 m- v- [1 J' q/ r& _6 f7 i. c

6 z4 ^3 P) C" O; R  {& Q, X                edgeBlendBuilder1->SetAllInstancesOption(false);7 v/ d* b) `) _; G) D8 V% @" Q/ T
, T1 _* F; J* Y0 g9 n
0 {  Y0 Y, k9 k3 T
                edgeBlendBuilder1->SetRemoveSelfIntersection(true);1 M/ |1 [7 `0 A2 ~' H5 Y

; R2 _) P! x0 ~

5 _/ H7 k8 ?- P4 `1 j# l                edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);& y0 N! p' l/ b% x2 R% {

2 _) o- J+ i2 [' u; N8 p6 F. l

: A# s3 `6 Z6 }' ~7 g4 n6 C* Q( Z                edgeBlendBuilder1->SetLimitFailingAreas(true);
; M5 L$ K4 o  O! h. _3 k- [% T, l' u( _/ T

& e7 f+ s8 X& |& G3 f                edgeBlendBuilder1->SetConvexConcaveY(false);
4 |& y2 n& _0 N2 H
$ p" @0 }+ `3 G8 H4 ~+ m
9 ~$ d7 \  @$ @$ i, D  C
                edgeBlendBuilder1->SetRollOverSmoothEdge(true);& e" g1 l# I2 R2 e  k* g  F
7 O- t) D7 {' y/ O1 v' C, @

  L% ?9 R. r, P# N) R                edgeBlendBuilder1->SetRollOntoEdge(true);' `# N2 q6 C4 T  Y/ t. h
  Z  {, ?) b. A4 P7 J/ v1 t& ?  n

4 B( R8 f* C/ Y9 [                edgeBlendBuilder1->SetMoveSharpEdge(true);
5 L& C/ f# P' `5 c2 M% U& B" |" q8 w2 ^. `

% J) `- v0 j" Z' r* }                edgeBlendBuilder1->SetTrimmingOption(false);2 w5 w3 H7 W& [! @( C
- _9 }. u! A! |6 }4 F9 B

9 _: ]6 }- z3 o7 X- \                edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);* K7 l9 k# Y9 @- u9 S5 C# s

, N& _( F: V5 I
9 w1 v7 V" I1 K1 Z
                edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);1 n$ c4 J2 O. {! d! _
& f3 Q9 O* `4 J1 {
1 r, t. @+ C+ N
                edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);3 ]' m2 ^2 ~/ m: r* V
; m' N6 z1 x& H, h3 P

3 [* A9 c- [& L! r& e4 U5 Z                int csIndex1;
1 x9 p, y$ k' M6 Q# A% T+ x# X! y                csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());( m, ^9 X* \1 \- P4 J; ^$ m
5 Z; P# U3 m/ d7 I3 @6 S6 X$ K

' z# S& _3 m7 {4 q! Z9 e                Features::Feature *feature1;; a- ~' m3 J* b( ]0 ^/ e2 O
                feature1 = edgeBlendBuilder1->CommitFeature();( S1 g4 @3 {4 n
8 }3 A4 W/ E! |! Y# A5 S
, o, Q8 K- @; ?  [
                edgeBlendBuilder1->Destroy();
: Q4 k- Q1 A: l2 v! C1 X5 K) H% c6 U7 D3 R$ L
    }1 t% G9 f) r8 l. Y
    catch(exception& ex)
# a/ f, v4 l( y. k1 R2 G    {
. b, v; @+ o" S  X7 X        //---- Enter your exception handling code here -----
0 `* R; d  W  T7 {        errorCode = 1;
( _0 n: A7 [1 X2 [! x        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());+ q7 Y" d5 X) j* u1 ~
    }* v0 M1 I! w/ Y2 F7 N$ p% U8 A2 V; v
    return errorCode;$ {& S3 S2 k2 [6 M
}

) y3 y/ d& U, Y

7 V" `' S4 k( w说明:因为字数有限制,这里只贴出关键代码。
4 x  n/ ^3 r; `+ ?7 ]: [7 w# ^5 C5 Y& I- i% a. G4 v, k* w

# u0 K9 l, L9 L1 i, t( p7 E

2 A7 b% Z( N: T9 ~+ X
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二次开发专题模块培训报名开始啦

    我知道了