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

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

秋爱 楼主

2015-8-15 09:15:43

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

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

x

2 N' a" s2 ~" y9 k- Uvoid selectedge::initialize_cb()
' A. q0 X8 \% ^{
- x) o* [5 H/ D. e. h/ c, Z* q    try' a; Y" B# |( B  B) Q/ X8 S
    {
: A) k& j! [/ q7 V5 l. M0 E
        group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));
+ v( m  I2 _1 [+ [: N        edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()-             >FindBlock("edge_select0"));! C4 i2 p3 N, V" ^( j4 r& I0 i4 P
        expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()-       >FindBlock("expression0"));}
; U; R# E4 J$ ?. {6 y( I    caTCh(exception& ex)2 T5 y' j3 j7 c; c9 @- N4 v8 t
    {
5 a1 j% o- |4 H% n: `. k        //---- Enter your exception handling code here -----& A$ P; U8 _8 [
        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());! K/ t- c. P. M, J' ]# R
    }
$ U9 h1 [8 m5 @}/ O; L" J% U4 [! k8 o9 J1 i# w
' V0 {3 |3 v  }7 m, B8 G# w
int selectedge::apply_cb()
, L, b+ v( F* K; q( l{& v$ \8 }$ T) \, m" x7 o& O
    int errorCode = 0;
. |1 c, T3 b  E    try" v$ L) _8 B9 [" k, {; A
    {+ C. E" M# c$ q7 s
        //---- Enter your callback code here -----
# c! I' w5 c6 w/ v3 s6 ?8 l/ @
2 V- m" F( R* R$ u- q- v. W
- |% p7 l0 C2 u3 g' w
, X0 r; q3 I* D+ S  j! y
                Session *theSession = Session::GetSession();
& t2 m+ Q; }% Z& v8 X( s' n  }* e$ y                Part *workPart(theSession->Parts()->Work());
( Q8 L6 _- F5 Z% z- r  @4 d                Part *displayPart(theSession->Parts()->Display());
* M0 ~+ Z. H* F2 K( B/ f+ S' Y: f! P( c% D4 U$ |

9 J& @: B. t: C$ h' W- z8 p, `' n2 I                Features::Feature *nullFeatures_Feature(NULL);
9 W6 W7 c  y7 L6 G1 V, [                Features::EdgeBlendBuilder *edgeBlendBuilder1;/ K9 C! z3 ]; U% B! v
                edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);
4 J  I, g5 {% b0 [2 H/ S" B! {+ `
$ M* Y8 ~! H! |6 f' M

1 o1 |; u: W; x5 @! A( U' y                ScCollector *scCollector1;7 A* a  O3 w( r; b3 T, j$ `
                scCollector1 = workPart->ScCollectors()->CreateCollector();
* J! P. U( m& K3 @: y6 n) y* X( r% v+ ]$ p5 w

+ t4 ~* T8 `3 ?                std::vector<Edge *> seedEdges;, e5 \* `" q* S% b8 G
                & ?2 q5 J* H6 N$ C$ y& d
                std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects();       //获取选择的对象
# Q: n. Z# U  k! G" \2 N! {' \                for (int i=0;i<selectob.size();i++)
: w3 U4 j& P. c: K                {  n5 H0 C" [9 a  r) Z6 H# z
                        seedEdges.push_back(dynamic_cast<Edge*>(selectob));
0 D9 f9 |$ ~: _  R5 W! w( E3 L& I  }
. h5 a$ z: p  A
# P$ v) W* k1 K2 C  O  double dia = expression0->Value();            //获取表达式的值. \8 u9 `0 P. K0 U. ]: }
                stringstream DIA;& t8 U5 I0 {$ V3 G
                DIA << dia;7 |5 E# z& R' c% G

9 [# U2 r0 _5 }- C! B9 S
  B6 f7 V$ k! P) q% P7 p
                EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;) L- f  y# Z! C* s
                edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);+ q1 I& z$ K/ F
: p1 G3 t3 o6 X( R6 [8 l3 X  g5 z

* _! l( g6 T# |9 {                std::vector<SelectionIntentRule *> rules1(1);
, ^% y1 z* Q5 x1 E. p. l                rules1[0] = edgeMultipleSeedTangentRule1;, @1 E& {7 ^6 R* Q; `6 L
                scCollector1->ReplaceRules(rules1, false);: {7 o& K/ j% C# }/ P( _5 r

, I' E+ \4 y/ w: N! x- s$ i
4 \0 G) k: x  a$ y
                edgeBlendBuilder1->SetTolerance(0.001);8 l# y% a8 @2 C6 J

; z9 w( v( g. P, P4 h
' ^# J. I1 G  X8 I  v) V. t
                edgeBlendBuilder1->SetAllInstancesOption(false);
, ?9 n5 {% }/ J* S  S0 P% h; ]: }" g) K
8 l' G+ `: T* O( J& y  U) Z- x, j% u5 a
                edgeBlendBuilder1->SetRemoveSelfIntersection(true);
3 r3 z9 \" R3 l' p9 Q  }) K9 R5 k  v. Z$ S0 P' g

) M2 p* }4 k0 g, T                edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);: s$ D! |. o/ Z- j2 F4 l
+ \8 H2 V( [; N. Q

$ w6 p* U/ {. A9 H; v; e                edgeBlendBuilder1->SetLimitFailingAreas(true);
6 P% I9 B+ p' u! M: @0 j- l
4 Q( g% T! s4 t  P1 m! F
( R1 d9 L- r& T. d) ~2 {
                edgeBlendBuilder1->SetConvexConcaveY(false);* @" O5 P/ t! E5 x% F
7 O: p5 Y1 F) Y

% l5 R3 H7 V9 [  d/ A( L- L                edgeBlendBuilder1->SetRollOverSmoothEdge(true);  `: v/ i0 e5 ?5 q

& @$ I$ r" P! d. N

. X% c- O; Z  l; v                edgeBlendBuilder1->SetRollOntoEdge(true);
# Y  |8 o5 R3 v6 ^' q3 T
8 \& @8 P6 Y4 ]' A
7 z3 j  O5 F: O
                edgeBlendBuilder1->SetMoveSharpEdge(true);- m  F0 m9 j: X5 J1 W

! i" _: x9 U5 T; `$ p+ I6 m
+ H: p  q# E: ?
                edgeBlendBuilder1->SetTrimmingOption(false);5 j! W: k9 z- f4 P7 q
3 h8 c! `) Q$ Q8 W! p
& Y! r( T$ z7 I2 L
                edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);5 C. [0 j; @* n0 u7 {7 p
/ q5 d2 A' z$ F2 g2 r# N

6 T  p! j& ^, P4 ^8 D7 d" D                edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);* |0 y! Y% [  i
* a$ }- L) E( }4 P5 y2 ?
' G% @; j6 Z6 _3 |7 `
                edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);
3 R* g" g& {: W9 M& f1 b, E" C, a
' x: e7 j/ w- z' B' N1 @

- ?3 j; @% r8 u* ]$ q% w6 x6 r6 d                int csIndex1;
7 |8 F7 X( m3 G2 K* E7 M% s                csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());
8 Q4 D2 E; O9 T& z7 A* [9 @! n( n2 H, t7 S) Z7 z) P- P
9 `# a6 {) U+ t( A9 S5 X
                Features::Feature *feature1;
2 Z% s% V( j; e8 r' z0 J0 u+ v2 A                feature1 = edgeBlendBuilder1->CommitFeature();! g+ l% f% ~2 I8 e

5 S0 b; L7 g1 [  ]7 `! L! N: R

- u0 d+ I1 j0 @# T3 a1 \                edgeBlendBuilder1->Destroy();$ ^: }" y6 L+ f5 c9 Q9 s4 ]& _

! `; G( R/ f4 X" n- X$ M    }
+ {) q3 r5 U" q% h; `    catch(exception& ex)
0 w, g+ a. ^7 F+ g( X5 N1 k2 v    {
( x& m( |$ G& X. P* ~7 f# t! c1 T        //---- Enter your exception handling code here -----1 R1 {7 Q! b+ w4 N- n) [8 c  W
        errorCode = 1;
- D( L/ t# x& k1 t8 E! h6 `        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
- Y7 }0 r% L% `: Q3 D5 x    }* e; a" W9 M. _2 P2 K) Z( Q: @
    return errorCode;/ U8 {" [2 R! X* Q6 y
}
  \4 n* j. i' i  ]' q& h

/ P  S7 c7 B0 \( A4 C0 g2 E说明:因为字数有限制,这里只贴出关键代码。0 Q+ l% c+ L& ^& {7 E7 f
. \5 Y  U4 ^. ?: l& r4 m8 P8 r
! {- z3 p4 s$ ?% s/ \1 ~

, Z9 }( Q2 W4 d  ~$ f, U9 [$ u. q; Y
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二次开发专题模块培训报名开始啦

    我知道了