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-国产软件践行者

[二次开发源码] NX二次开发源码分享: 创建精确外轮廓

[复制链接]

2019-1-17 10:56:35 1723 0

admin 发表于 2019-1-17 10:56:35 |阅读模式

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓8 j9 q1 G* e/ Q) F& H! r: a5 M
  [/ H' k6 @& k  u5 m
UF_CURVE_create_shadow_outline (view source). P% a8 i7 J+ A: d6 V- h1 E
. D  p! b7 l5 O" C0 W
Defined in: uf_curve.h, u. N1 X! a) @- v2 O. r6 I
2 w; B! v. n' V3 p7 O" e. e
/ y4 l: g& T& F9 f2 w  S8 `6 n
Overview
: M: q. R" o9 h2 @
7 Z" C$ l! I) E. \Create shadow outline for a given array of solids. Solids passed to this ( p  r. s3 M: E9 L
routine must be on a selectable layer and visible. If created shadow curves
# c/ R* Q' c( [! o5 }7 }3 Scan not form loops, please use UF_CURVE_create_shadow_curves instead to get
' h4 g1 n2 ]7 \$ [" I& f3 r7 z- Vshadow curves. & ^6 O) ~9 _% y1 |$ y
4 @' P- B2 _, e  o! |6 i2 |

; W, D1 _  j9 Z[hide]6 x/ L# m8 j& L# b
+ D% a1 {5 U& z' Z1 R/ Z- ^, s
[mw_shl_code=csharp,true] void DoIt()
' ]+ E9 \4 j* Y3 V    {
: |7 R2 B! X+ q( ]  v- A        if (theSession.Parts.Display != theSession.Parts.Work)3 r# [: x3 |0 i2 B- i% _- X5 }5 @
            theSession.Parts.SetWork(theSession.Parts.Display);
: N; _0 b' Z4 i7 F5 v) a2 D; b) C' _

  z' ~4 {, F9 p& W- [        TaggedObject[] theBodies = null;
( p9 |$ G' j* f        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)  C  _4 Z0 \! B! Q
        {
$ u1 I" U( \" ?" F            Echo("Selected Bodies: " + theBodies.Length.ToString());
0 J" t4 S5 M2 \/ w/ a8 u            Tag[] theBodyTags = new Tag[theBodies.Length];& W: D/ {5 ?* c6 Z
            for (int ii = 0; ii < theBodies.Length; ii++)
7 ]9 D: S' `+ t6 o                theBodyTags[ii] = theBodies[ii].Tag;4 t4 T1 m  w+ i: H

, [; R% u7 ?$ I3 y2 n# c/ d            List<Curve> theOutlineCurves = new List<Curve>();
/ m& {7 _" L6 q            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;" O( z. k: I* S6 V" _% L
            int loop_count;$ |# f1 Y7 n! i1 E5 A* }
            int[] count_array;
; Q9 O7 G" G3 I0 p6 G1 M% G, A            Tag[][] curve_array = null;
5 d* D" F4 r! e5 ~! @. C            double[] tol = new double[2];2 ^( z3 i& s; B
* |) _9 j, L0 `% g& c
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);4 h, f! {4 l/ K- n
            theUFSession.Modl.AskAngleTolerance(out tol[1]);9 l! |0 l6 z5 `3 B4 m! ?" l! U
1 t. j& s" D# ^( n
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,4 x) v7 I) V! f4 O: m3 x! \7 H8 J
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
3 Y+ V) z. a  F
8 }$ {) e+ [! Z. m  ~0 O* \; D2 N            Echo("Precise Outline Loops: " + loop_count.ToString());9 {! W% d& X- @% G8 `1 D5 Z. E, _9 B
            for (int ii = 0; ii < loop_count; ii++)6 t4 j( L4 g, S, n/ s+ ~$ p0 \2 E
                for (int jj = 0; jj < count_array[ii]; jj++)/ S" Q0 R) f$ U! _
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));7 a8 ]& l5 Y* U1 b1 h
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());8 M$ Z1 b( d  V7 E+ ?/ B

0 ~: V0 l5 H# x' r6 d$ C3 m9 R9 v8 Q            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
, m! {. d, n1 a            int curve_count;
0 E! [  B) a9 T# y            Tag[] outline_curves = null;
" X/ T% r- o; i            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,   J7 ~( x, _9 g  ^1 ?1 M  O# r
                workView.Tag, out curve_count, out outline_curves);8 w* j, |$ o6 u8 H. G" u+ D5 l# C
            Echo("Precise Outline Curves: " + curve_count.ToString());1 J4 ?" E" Y$ I- J( \1 F
            */& h" o1 L$ q; s
        }- q( d  }9 F  M7 y, q" p

+ v5 {9 z7 E2 J# P5 J) Q    }[/mw_shl_code]# ^/ }% c6 h8 o' t2 b
[/hide]
7 y3 r7 P$ B0 j% i% B, r
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了