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

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

秋爱 楼主

2015-8-15 09:15:43

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

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

x
; h+ l( c% u4 J
void selectedge::initialize_cb()
0 q$ e$ n! y9 [* r" u! v{0 Y4 i4 R5 D5 u# X7 H# `; \8 S5 t
    try
  r4 L! i( q, |" O, L: T2 H6 ?    {

, D3 M( }( `# H        group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));
$ v5 e8 Q8 E1 n# {; ~4 K& e        edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()-             >FindBlock("edge_select0"));# ~; p) C* r" |5 s1 H& o
        expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()-       >FindBlock("expression0"));}+ O8 U- W4 F' [. m+ Q( t( t+ _
    caTCh(exception& ex)! q; A6 C! @. l: H
    {; S) a  B5 Z  g/ ~  M' ]& j
        //---- Enter your exception handling code here -----1 y& `+ m1 C  J0 J) e2 }
        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());
. q1 {, z2 l6 _3 G; Z7 ~    }" }0 |6 A2 U8 d
}
# Q4 o0 m' h8 [" K+ u0 a' Z7 ^8 J  ]( A. Y5 }( X5 M$ u
int selectedge::apply_cb()7 N* C! S% H  t* q: k. R. I. I' t/ b
{5 O5 Q# Q/ v: T* U( f3 n
    int errorCode = 0;
- P# j5 x+ t- u8 J2 P    try" `7 T0 {8 j* C" ~/ m: {
    {2 m  E" _5 u" x2 N" O2 \+ K
        //---- Enter your callback code here -----& d; ?* x& a9 n! d
" K( z+ A( W' }6 N! z0 {& O

6 |% Y- x8 q' x  s' q+ O3 S2 B
  C; _7 L8 a0 S, B0 y7 [, y6 D! F
                Session *theSession = Session::GetSession();% `" M2 e" \4 u0 W* k% x: G5 ~
                Part *workPart(theSession->Parts()->Work());% r' W+ {, P1 y
                Part *displayPart(theSession->Parts()->Display());6 a% x9 u% W$ Y
7 J% j  [5 X/ o& G" n
8 z2 h) L5 v4 M
                Features::Feature *nullFeatures_Feature(NULL);$ d& c* R( p/ i& h3 r, T: Q! P
                Features::EdgeBlendBuilder *edgeBlendBuilder1;% T9 l6 h& m9 `5 [% V3 T$ L
                edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);' R+ \/ O9 G# U! n* r

: v9 x$ R# _3 K/ J& z" b

0 K& a1 x+ l4 v                ScCollector *scCollector1;9 z8 N* G: p4 c. \& |1 c
                scCollector1 = workPart->ScCollectors()->CreateCollector();
8 w0 y% f* ]3 h, r3 f* C0 C& `1 s' ^; Z+ `
, Z3 M  ]! W, N8 f
                std::vector<Edge *> seedEdges;
- p9 d$ l7 D  @0 q% H7 H5 `                : x0 Q! G8 p) Z8 `
                std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects();       //获取选择的对象
1 n, D# F3 x% s) F% {                for (int i=0;i<selectob.size();i++)% A) D" W8 ?0 a6 Z( s8 w
                {& A- V! i! l4 @0 a( ^+ z+ S5 \
                        seedEdges.push_back(dynamic_cast<Edge*>(selectob));, G3 D" V, Y# G) w' y
  }
2 C  u0 `5 A) d2 I) j# A, ]; B  T$ U2 M) |/ h( e* ^. _: m
  double dia = expression0->Value();            //获取表达式的值
- u" c: A" ?2 Z/ ?3 \* _                stringstream DIA;; B) |+ R1 ?2 R. x
                DIA << dia;! T* `) `# f* B- g3 O1 h6 {

9 Q6 }% r+ _8 {5 R2 B. Q

: W/ b; d4 o( E; B                EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;% o+ X. P  ^2 b6 v$ }
                edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);
( }* b+ Y9 a3 f, |7 V
, W5 y* m$ F8 B" X+ S* B

1 G7 L! n* V) [+ r; |4 p* B( \                std::vector<SelectionIntentRule *> rules1(1);' K; a: u9 z) O
                rules1[0] = edgeMultipleSeedTangentRule1;0 V9 x2 }$ J3 X
                scCollector1->ReplaceRules(rules1, false);
+ ~1 v; c& J8 ~; {$ a: z6 l$ m6 _- h6 s8 T0 {3 ^) L; [

& u" o8 @' `7 N                edgeBlendBuilder1->SetTolerance(0.001);# w8 n6 T- R7 s! d
2 {( `# L; q  J5 T
0 n* _- e3 W+ M$ h
                edgeBlendBuilder1->SetAllInstancesOption(false);8 ?* l7 |% l2 C

! R( ?+ W" p3 Z; l4 t" l  L
/ e8 N7 F* u9 S
                edgeBlendBuilder1->SetRemoveSelfIntersection(true);3 O" z8 k6 B6 f

& i2 ?! q- F* f0 G! @
- e# e$ B8 P0 p8 l0 b+ s
                edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);  V' q8 H! W- j+ r: o

- O' v  Z# N8 w2 O4 H
, x. ?, u) f  C- x9 r( t
                edgeBlendBuilder1->SetLimitFailingAreas(true);+ j& \# M( a4 a

7 n: `/ b' ?8 h

, ]) J. t/ O& J! _                edgeBlendBuilder1->SetConvexConcaveY(false);
( q& J1 D# G. d* r! `7 L# U4 @+ u

. k( F$ ^# L9 P, V' q& N. |% W                edgeBlendBuilder1->SetRollOverSmoothEdge(true);
1 w, R4 S" E3 q5 O2 h+ ~8 T
, {, e2 ^) i. ^& |

) I8 p& n4 s' S$ F% q( W4 r4 T/ r                edgeBlendBuilder1->SetRollOntoEdge(true);
' l3 F3 j! k1 |% n2 F4 a+ R& H+ C$ [! {

: C6 h# i: v* U1 N! M; x                edgeBlendBuilder1->SetMoveSharpEdge(true);
# ~/ N9 z/ C- u0 P! M% K  [
' C( U- [& w5 }9 P3 i2 G1 R
1 P1 z0 r0 _4 }' }3 `+ Z' C$ D
                edgeBlendBuilder1->SetTrimmingOption(false);
- Y+ K, t; l6 K# R+ U! i9 h: [
4 Q2 ]0 k5 _% x: q( @* V+ @; d

; X6 x! q) M" @6 f- k                edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);
  m; y" ?! V6 B3 D; m, f( ?4 S, X0 q( e6 l
5 y/ Q' e/ M) P
                edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);; U# L# q( ^3 R
# b) z0 `" q$ ?( L

$ e- m7 ^& }$ x2 t                edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);( \- U. {) M" j) y

# c+ z6 l3 e8 q/ Q9 v9 \
  h  d% B& K8 ?' \* ?, }; S, g- W" ?" x
                int csIndex1;9 B, v" G4 [( p8 T0 S
                csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());: S6 t5 i. V- T6 P% i' @
- E/ N' \# I: O* s. ~6 W* q7 I
. G: l: j+ h$ k; L1 `
                Features::Feature *feature1;2 L  x; ~; Q  K% P
                feature1 = edgeBlendBuilder1->CommitFeature();& z/ L# l" ?2 `( V3 ^, G& ~

9 q6 n7 h) J5 h/ u  r4 W0 x+ u0 v0 ?
& [! e0 @# r& d
                edgeBlendBuilder1->Destroy();9 S: [- _7 p6 r9 V7 N

; j4 @6 Y0 ^" k/ f3 n% t    }
& i4 Z, ^' f1 d+ \" U    catch(exception& ex)
" ]% [9 O- E+ b# P: ]    {
+ [7 u5 n1 o! \5 \" [" ]" Q2 U( r        //---- Enter your exception handling code here -----% B* A0 X2 B, i! E: Q, B
        errorCode = 1;
. \1 S) a9 D' G% F# p# r        selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
5 N$ m, S/ j/ w" m# `6 h0 B    }
, C; t1 t5 l. V- K; V* r0 x    return errorCode;
! V) J6 u2 T6 v- Z}

) W3 R! [8 K; _7 ]+ _

/ `5 r/ E- G4 F2 U) {3 m% S* i1 J说明:因为字数有限制,这里只贴出关键代码。- f3 g+ P1 F7 g8 s
  E: s' a- u: n4 Q( b8 V

6 B5 j, k. {4 t! I6 D! e% W

& r7 e2 f6 G$ c8 k
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二次开发专题模块培训报名开始啦

    我知道了