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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓6 g5 b- p9 k- C3 n- q, l

6 x! m/ W5 f: e7 m( H/ a7 \! GUF_CURVE_create_shadow_outline (view source)
$ F; f! }: T5 D
  s( s1 w' J) m# F( B+ I  R& jDefined in: uf_curve.h
) u2 ^& b2 r6 R& y2 B ; a4 l& h) U# M8 K, X5 T

0 I) v4 D/ T- J- c) BOverview
9 r& w( L  f% k% Z+ ?7 m/ W+ o
. \* A% ^* K; v" yCreate shadow outline for a given array of solids. Solids passed to this " ]0 p6 @4 h  `0 x. Y
routine must be on a selectable layer and visible. If created shadow curves 8 l, O9 k& `# Y
can not form loops, please use UF_CURVE_create_shadow_curves instead to get 6 C2 B9 X3 j1 {: O
shadow curves. 8 N2 l# q6 {& |
* w8 w. R& R' a( O0 ]
7 E: X- [! L0 j( O9 D
[hide]
7 s! ~% ^) S) g# C( A! V) P4 P: D% N
[mw_shl_code=csharp,true] void DoIt()
% ]8 e# C: N# C- |& y- _    {0 P2 v& H: ~% E( t4 ~
        if (theSession.Parts.Display != theSession.Parts.Work): \7 B$ X, F. x8 |! K3 Q3 t
            theSession.Parts.SetWork(theSession.Parts.Display);
, S- a4 H, J% u) y. _8 l
( t! Q7 m& `9 l5 H1 z  C/ ^- R
        TaggedObject[] theBodies = null;
) a; K& k  q8 Q  K  Z" n        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
6 V' f3 Q5 b: F2 D! r& ^        {0 B/ x' R# G/ @  A
            Echo("Selected Bodies: " + theBodies.Length.ToString());# u( h# d; p7 y: s( f, J$ @
            Tag[] theBodyTags = new Tag[theBodies.Length];
& n2 T( P$ F( Q& v. R" }9 A! X1 Y            for (int ii = 0; ii < theBodies.Length; ii++)
/ G, U/ b0 p. p$ v$ {                theBodyTags[ii] = theBodies[ii].Tag;3 e; Y3 j" O( `# ~/ N7 g

" @% d3 T+ ?* I8 U3 s( f            List<Curve> theOutlineCurves = new List<Curve>();" P& y7 x- O3 q3 F  p  \. K
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
( R" }6 S: g, q            int loop_count;9 F  g( _3 X4 V% G% M" @% R, l# y
            int[] count_array;9 b9 |; N- T. L" H9 P( M: E: u$ M
            Tag[][] curve_array = null;* y6 ^" c3 y# Q& ^* r
            double[] tol = new double[2];
6 a+ I+ l' ?# p& j9 t/ s* V6 u
, a& ]) [3 H3 Y            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
1 E, r- i9 p+ p+ v3 Q' j            theUFSession.Modl.AskAngleTolerance(out tol[1]);" t* M+ u! p$ J6 G- L

8 _4 N+ z- n# A, N2 h            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,: ^9 t2 I6 J+ [1 [9 {: O) K
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
$ I8 v# v+ L; \
( A7 I* N+ Q! i* W% n: b            Echo("Precise Outline Loops: " + loop_count.ToString());% q2 I  m& i" t( f9 e
            for (int ii = 0; ii < loop_count; ii++)" Z3 e+ F9 o0 Z' _' C2 _7 b: x
                for (int jj = 0; jj < count_array[ii]; jj++); F0 @( F; |8 I* [% b, O4 a/ O
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));; D; G# q! J# z2 q
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());5 y9 l8 W8 J4 Y
6 P- C( Z( x& l  R8 q' P
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead 4 W* U$ b2 p% U3 Z0 d
            int curve_count;
0 X* C( j, E) R: k6 }- q# n  |            Tag[] outline_curves = null;) i/ a2 Y) c7 O- w
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
5 w! K" e$ L8 G                workView.Tag, out curve_count, out outline_curves);
* p6 |, M  G8 b) A2 k" u# y            Echo("Precise Outline Curves: " + curve_count.ToString());
& C/ F6 K  _2 H& y* n" [; \            */
- Y( N* @! h- ?7 P. w, C        }% e5 l2 _. A" D/ M; ^, m

, u& e* J5 _5 g! f    }[/mw_shl_code]
+ o3 y0 w, Z/ V' O[/hide]" i) n2 G: w( W' o
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了