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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
' v8 x& }2 U; D% G- v4 m0 }0 _7 c3 ^
1 q/ v1 h; j# N% R* [2 HUF_CURVE_create_shadow_outline (view source)
9 }2 I% |, j) S6 _ 0 B: ^$ x: B/ ~5 c
Defined in: uf_curve.h1 n7 d. C; W5 n1 u

2 O  N0 O! l& y0 g7 y/ X9 n; t8 P7 C2 K2 E2 g8 b. K
Overview4 u9 R4 U: f1 x% q6 k( m

$ m7 X' b/ e) B  U4 @, LCreate shadow outline for a given array of solids. Solids passed to this 7 `6 z  ]$ x9 K/ c" i2 Q
routine must be on a selectable layer and visible. If created shadow curves
4 O' k, n4 f' _6 z. acan not form loops, please use UF_CURVE_create_shadow_curves instead to get - K, a, j& e. e+ e1 z
shadow curves. 1 N- R% i  v/ l! \, d: i

; d3 `1 D' r  Q6 [! B. _0 a7 B1 C0 O; N
[hide]
* S2 N0 [1 h; q9 _; U
6 N- i$ ~: }% C) ~- w[mw_shl_code=csharp,true] void DoIt()6 d8 X- H6 U6 K, j7 N
    {
5 G4 j& e2 n+ M        if (theSession.Parts.Display != theSession.Parts.Work)
. n) b, q* c. y, N5 X            theSession.Parts.SetWork(theSession.Parts.Display);- |' ?$ r! I, ^, p$ m

: H2 o0 {5 K- l
  ~* ?5 c9 o6 C0 s        TaggedObject[] theBodies = null;
$ _+ B! A$ @- `, \: X9 Z, Q1 E7 P        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)5 S& f: h( K! m# Q5 n
        {
% l2 @( [1 |/ H7 f6 h& a* Y/ |1 ?            Echo("Selected Bodies: " + theBodies.Length.ToString());
3 {: l. R4 W6 D1 r) z. K! G            Tag[] theBodyTags = new Tag[theBodies.Length];0 f$ m+ r0 \* k/ @3 Y" n( Z
            for (int ii = 0; ii < theBodies.Length; ii++)
1 v5 {* S7 f0 F                theBodyTags[ii] = theBodies[ii].Tag;% h! X4 ~8 h& X, T: i/ ?

& Q" R/ k5 h) Y/ i$ t            List<Curve> theOutlineCurves = new List<Curve>();* T. \# {) x$ z, m  f- p) ~3 R
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;  U! Q" D& y# S7 b- |
            int loop_count;
6 M4 U5 z* k8 O! R% F- H5 z; \' ?            int[] count_array;
7 v3 e& p: P0 `+ r' G. E5 C            Tag[][] curve_array = null;' l6 ~! A. s  {/ ?% `( C3 s
            double[] tol = new double[2];
- l6 {+ M9 I, D/ a8 Y) W5 _, P% K  J' C* p1 C  w3 a3 @8 R, r7 S
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);1 {2 O7 A% O. R9 w( J$ Q9 Z- ?/ H0 Q
            theUFSession.Modl.AskAngleTolerance(out tol[1]);
6 o' O% o/ v5 o9 h1 m; [4 |5 v
# S1 u& E: s& U, e0 A( w            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,2 @4 y# s8 Z6 Y7 ?$ C
                workView.Tag, out loop_count, out count_array, out curve_array, tol);; }" g$ C. D1 ?. R0 G5 M$ R9 t
2 z) d& N$ P: T# M3 F
            Echo("Precise Outline Loops: " + loop_count.ToString());! x$ m! w; I$ p# q7 D7 `
            for (int ii = 0; ii < loop_count; ii++)
+ z$ I9 ]2 T, q6 v# T2 ?$ V" I; O                for (int jj = 0; jj < count_array[ii]; jj++)
. M$ j. E$ b! C6 D5 v% w                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
% I, [: [3 a' e, d$ o. o* ^* ?            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());, v- z6 n5 A4 H- d0 x" b

9 c0 c  |+ `) o2 t            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead 8 Z! h: M1 F1 K3 s- O$ ?9 O
            int curve_count;
! y1 z/ c+ }) O3 w            Tag[] outline_curves = null;$ J3 B0 Q8 o; O* a( i  E) _
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
, G7 W$ ]. K9 F, {5 |8 }                workView.Tag, out curve_count, out outline_curves);
7 ~& p% |- ^' S' O, W. a2 q2 M            Echo("Precise Outline Curves: " + curve_count.ToString());% f0 A' U1 M2 T  _6 Q
            */& I8 W+ {9 |- B( j  a! t' \2 Q
        }
0 D4 {$ ~8 l* k  O: h1 d) N0 L0 i' A/ D! f7 y+ ~: H
    }[/mw_shl_code]
( z( A0 w) {9 \[/hide]+ Y8 w% l: s( @. ~
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了