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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓8 j4 J% N- Q0 z7 r
, q4 m& I3 F' \6 W6 s7 I" k  a/ z
UF_CURVE_create_shadow_outline (view source)
9 o7 C* C9 A( }* \7 I% v/ n5 D8 b
7 w" B) ]8 @( n9 X* bDefined in: uf_curve.h* E# q  r  T0 B8 [7 a3 H
0 t$ W5 I( p) V

  b6 l5 I. a7 r; p% g2 E1 U7 dOverview) V- X3 ?. @: [  f: [( Q& E7 T9 d4 t
4 t: N- l7 I( i
Create shadow outline for a given array of solids. Solids passed to this 4 e. L# G: r$ _2 H* q7 r7 s. G( g- w
routine must be on a selectable layer and visible. If created shadow curves
7 d$ l( l& d& D0 P. e! ~can not form loops, please use UF_CURVE_create_shadow_curves instead to get
2 }$ l: e" M- o/ z% U& Y; N' p+ Vshadow curves.
+ [6 ~% j! b/ Y. a$ N9 S  }& ?! d/ {
, O% P8 ^1 k4 O! x3 I
[hide]
$ ?" X" b4 i. @( M: z: y. v( l& a9 J; n- U( A2 ]  x
[mw_shl_code=csharp,true] void DoIt()# k( B. }  ?# i6 _
    {
9 f7 ]6 o, B% o! i; t        if (theSession.Parts.Display != theSession.Parts.Work)
  n8 m; ]4 D5 C/ f+ ~! A            theSession.Parts.SetWork(theSession.Parts.Display);
" w! i/ t4 G3 m8 B* Z% ?$ t7 i9 \: ^7 X2 I; d

+ [+ w( A% Q8 q        TaggedObject[] theBodies = null;
( X! K$ j1 I8 q& F' A  D' s0 [' F        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)1 v) I7 C# W1 c
        {- |6 ?7 r. @/ h$ h
            Echo("Selected Bodies: " + theBodies.Length.ToString());
8 t- [2 {' v& c/ t' f            Tag[] theBodyTags = new Tag[theBodies.Length];
7 r& W7 ]: ~# s3 L            for (int ii = 0; ii < theBodies.Length; ii++)
4 z6 X- Q0 s2 T" O                theBodyTags[ii] = theBodies[ii].Tag;
* O) z  p8 B' O( S% s' {/ b- `1 y! c2 e5 k: [
            List<Curve> theOutlineCurves = new List<Curve>();; [/ V, Y* Y* |4 G$ l- O9 A8 N+ s
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
8 T1 p: b* G7 d1 v            int loop_count;
  ~4 H0 ~" E. {/ r. m$ V            int[] count_array;
+ h5 V* r, E8 r( ], s6 R            Tag[][] curve_array = null;
4 G: s* V- `4 V6 a            double[] tol = new double[2];
0 h2 e8 ~: o* u4 Y& J3 c# A7 F+ e: F, v$ c# e8 e( t  w0 Y
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);9 Z* I* ?4 d: _& @( v! Q) \5 |
            theUFSession.Modl.AskAngleTolerance(out tol[1]);
/ r, G8 A/ F6 u$ U3 t3 O+ |2 L6 V. T9 R" ?$ ?+ v, X3 N: Q
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,* Z1 @  `8 o/ ~4 f- ~
                workView.Tag, out loop_count, out count_array, out curve_array, tol);$ ?% j; D% m  a7 p5 f9 U2 X
" H* Y# h8 Z+ q8 b# D
            Echo("Precise Outline Loops: " + loop_count.ToString());
% k0 k( u, }% m  w! E            for (int ii = 0; ii < loop_count; ii++)6 q4 Q% g, u8 N2 i  n9 h
                for (int jj = 0; jj < count_array[ii]; jj++)( W+ H2 e3 m# m" t3 w
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
2 r9 U2 u5 _: q. I% u; J            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
2 O8 s3 I$ O/ T3 ]' @5 e' p- J+ P, F" D6 I; ?5 Z
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
: ]6 \8 b" I" D6 S3 M/ u5 K            int curve_count;; ?+ h; O9 d6 z& o
            Tag[] outline_curves = null;
- G/ C5 t6 Q- P& B5 |            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
0 V) l7 w2 N! w$ f% Q  H* S& ~3 j                workView.Tag, out curve_count, out outline_curves);" u, [1 i7 h" p
            Echo("Precise Outline Curves: " + curve_count.ToString());
5 `: \* M) q$ r  ]  I1 K            */  G; [, J, s: m
        }9 z( H: U1 e- E& {

0 L6 {! ?3 u& ^, x% [. m+ [/ C    }[/mw_shl_code]
- J/ f) G+ D- Q1 [' z[/hide]0 s, E7 B6 T) ^! b8 D7 l5 R
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了