PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2019-1-17 10:56:35 | 显示全部楼层 |阅读模式

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

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

x
NX二次开发源码分享: 创建精确外轮廓8 q& d8 V& l% p! n6 k
7 o# e$ `: N" i& l! B, F% i
UF_CURVE_create_shadow_outline (view source)  G/ Q2 p; H& v4 A: k- }2 j+ d

" X2 u+ q3 c8 y; p7 gDefined in: uf_curve.h
5 h  V6 q6 V6 @6 D) X : W2 \+ g" m/ J5 J5 R' _
  |9 T3 U% F  V8 f" D! H! J
Overview- R7 o' G$ f$ e4 X1 @' w* p! }7 r& i

/ s* C, f0 n' D/ b- z/ OCreate shadow outline for a given array of solids. Solids passed to this # E/ Y* \1 W1 R/ C/ w$ Z
routine must be on a selectable layer and visible. If created shadow curves ; y$ B5 c1 p5 \6 e. m
can not form loops, please use UF_CURVE_create_shadow_curves instead to get * S% |- n+ l2 K% l% x
shadow curves.
& E# g5 H; c2 W4 ~' J, e9 O+ j5 b- y8 w# f0 s
' S( X7 ?- ]7 E$ a/ @, B4 _; H
[hide]
6 d# U, O; G$ ?7 ]5 j; o) f8 G$ V' P; s4 }. o2 h, ~9 O# g: ?
[mw_shl_code=csharp,true] void DoIt()
: u* |& _) U! [! ?. s4 G% }    {
9 K. ~7 `3 E% {9 |; W& T        if (theSession.Parts.Display != theSession.Parts.Work)
0 v& ]" a' Z) l: g            theSession.Parts.SetWork(theSession.Parts.Display);" c# `$ S. p) J2 d0 ^; `
' k' f7 J0 y7 `& A8 t/ Y
9 E6 r7 \6 S! N+ |2 O
        TaggedObject[] theBodies = null;$ @7 [' }1 `/ y# l- e  I; _
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok); C9 {' x6 i2 X5 k+ U3 U
        {
) V9 @: \# h" p            Echo("Selected Bodies: " + theBodies.Length.ToString());
+ o& s; w& _: R1 ^- D/ M            Tag[] theBodyTags = new Tag[theBodies.Length];
$ d2 U8 g3 z' m; M2 g0 f+ k8 B" J            for (int ii = 0; ii < theBodies.Length; ii++)
& E0 n% B) z0 |/ Q                theBodyTags[ii] = theBodies[ii].Tag;) e0 k) J7 G* z- w  J  i5 ]

* U) Y3 V( ]( z( }9 I* G            List<Curve> theOutlineCurves = new List<Curve>();
3 X& C) Y0 Y: `. l. n$ Y" O            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
  T! o2 a& z  ~) n5 Q            int loop_count;
* E# I7 F/ f* ~% B6 |1 [            int[] count_array;& O+ X/ W, d, z8 H, b: ?
            Tag[][] curve_array = null;
7 J4 z; Z. w; H& S            double[] tol = new double[2];
; r' _7 U3 E2 X3 }) ]. E
* H2 v7 Y+ \! B; r            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
3 z3 W0 L* e5 k8 g& `) L# z            theUFSession.Modl.AskAngleTolerance(out tol[1]);3 n3 L# x+ u# {# ~- i
- v2 E7 \; x1 ]7 r- y7 _
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
# H) q" w7 c3 l                workView.Tag, out loop_count, out count_array, out curve_array, tol);
' `# f0 ]) `  ~& ]* Q6 q
4 X# q, E- r( D$ M' }. L" k            Echo("Precise Outline Loops: " + loop_count.ToString());
  H) s5 d2 E$ N4 D" v* o- Z: C1 _$ X8 G            for (int ii = 0; ii < loop_count; ii++)2 {3 B2 w9 S8 z& d- _
                for (int jj = 0; jj < count_array[ii]; jj++)7 }/ i$ ?& K. J) [) x0 [4 B" C2 @7 B7 T
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
# a: w5 K4 N6 D, m1 |            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
. {3 d  D4 `0 b
+ n: y! U6 k9 b3 j' a; L& l8 x& I            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
3 Y4 q% a4 O' |" Y" T            int curve_count;
  \) k  X. T! }, j' J4 s            Tag[] outline_curves = null;
% Z) V  ^* W4 V3 r7 M# K            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
) v5 V  v) Z/ a) Y, P                workView.Tag, out curve_count, out outline_curves);! t4 b# W$ [" }$ g# V) L5 O3 t
            Echo("Precise Outline Curves: " + curve_count.ToString());7 P$ v0 L1 p; J
            */% \- H5 f6 g: p7 R2 F* I2 f* F
        }
" C, |4 s. p% H5 s. G1 Z. u: i2 k3 `2 L( K! J# t' A$ O; s# \0 r* e2 H8 J
    }[/mw_shl_code]$ F. R. m1 m. ?
[/hide]( {# {  L7 O' b) k
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了