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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓+ t3 r% X4 e0 @3 h- ~; Z! C7 e
* c; {1 ]5 b% m# }4 N
UF_CURVE_create_shadow_outline (view source)( ~  J- {/ |: ?

$ L: H4 |, @8 m8 Q4 ?0 K: wDefined in: uf_curve.h
* ?" w" l4 f- f; Q 4 L$ w4 S* V7 i$ t$ I

1 v0 f/ }" C) W4 ]Overview
( h& {2 X& f1 A& Y) b/ j( H
+ c. g0 V2 l1 bCreate shadow outline for a given array of solids. Solids passed to this 6 {+ n% S5 C2 e! H
routine must be on a selectable layer and visible. If created shadow curves
5 g! t  n: t5 e2 S8 V$ wcan not form loops, please use UF_CURVE_create_shadow_curves instead to get
$ |3 K' }( _% g/ s' `5 v- hshadow curves. 4 J# n$ Z# P/ }* f- z+ z) B2 v
. l7 T* o3 t  w

2 r) v/ G; P8 {* e2 J- H; \& b" z0 d[hide]) y3 x2 q: R" a, s0 a

7 X( a  c7 z" ?4 I) J2 k& @* r( T[mw_shl_code=csharp,true] void DoIt()0 q3 E0 P  i  x; |' I; r
    {
+ J( T4 ~+ R  F5 x3 a- c        if (theSession.Parts.Display != theSession.Parts.Work)
. D7 {* I/ I- M            theSession.Parts.SetWork(theSession.Parts.Display);
+ o* D, r- l& K4 V7 e+ J. M, c# Q8 b. L  P
9 U  j: W# o: Q8 d: P" k/ a# O2 O
        TaggedObject[] theBodies = null;
. t- u/ j. U1 O, n% k9 Y        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)- U) G5 q, m( E+ |
        {# `0 ]! P0 {# P
            Echo("Selected Bodies: " + theBodies.Length.ToString());
% C* B; a  N0 a. E* d            Tag[] theBodyTags = new Tag[theBodies.Length];
9 i3 J5 g- ]2 |            for (int ii = 0; ii < theBodies.Length; ii++): {2 n' L! T- ^; V, m& H7 y8 J
                theBodyTags[ii] = theBodies[ii].Tag;# X* F. Y$ Z# h

& S/ W0 [4 z; y% @9 |            List<Curve> theOutlineCurves = new List<Curve>();. R- P' R, @" Z; V, x/ K
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;, `6 e- s, [2 s* G; m0 O
            int loop_count;
$ ^3 y+ F( O. Y4 ?            int[] count_array;
' ^, Z+ }% ~3 A$ |' v8 v1 Q            Tag[][] curve_array = null;& V1 k' s. x: R% _
            double[] tol = new double[2];% l, V# \) Y" f

  O% d( B: S5 ]9 w. ~            theUFSession.Modl.AskDistanceTolerance(out tol[0]);* G- F+ [& a9 N% @! n# O
            theUFSession.Modl.AskAngleTolerance(out tol[1]);
7 g' x! n* n- J( I# G
6 S* t8 b. D2 n) n% E2 a* z3 W& ~            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,1 S6 g8 F) @& v5 [
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
* F9 h+ K9 N( Z+ \) E  n; ^4 |
            Echo("Precise Outline Loops: " + loop_count.ToString());$ H1 x0 J* ^! s& n5 t
            for (int ii = 0; ii < loop_count; ii++)
9 f+ [- h. B, ]# f. d6 K                for (int jj = 0; jj < count_array[ii]; jj++)
* C! N& V8 }1 A" L" \* O, g( F                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
, q& j3 M4 \+ {) p' ?            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());2 c" ?9 _% D8 C$ _& ~
) B+ e1 ?8 b; {% y9 G
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
* b! m* w; [/ F8 c( x            int curve_count;
5 h' Z" J, P, U            Tag[] outline_curves = null;
2 X; T; j  X1 ?            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, 5 l2 J6 A  n# m+ P9 m
                workView.Tag, out curve_count, out outline_curves);
  l2 B" C9 G1 k/ ]            Echo("Precise Outline Curves: " + curve_count.ToString());
( k2 [1 i" m3 n- k5 y2 f4 m            */" k' Y# N! {) Q7 l8 h3 `# s; v( A
        }6 p9 ?( g2 l0 u9 f! l
, p6 \# J. J. `  x9 E4 [
    }[/mw_shl_code]4 E9 {! Z/ G: h" z  `$ V  A. _9 F5 F
[/hide]
+ W+ `2 U0 K9 S4 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二次开发专题模块培训报名开始啦

    我知道了