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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓/ o$ o$ c2 h$ L/ @; R- \6 [

7 K0 ~0 ]. m: u  {' ^' JUF_CURVE_create_shadow_outline (view source)* L7 n" n+ U- G1 }% P9 \* [
; }' h; p1 [4 L5 `; }2 \2 F4 [
Defined in: uf_curve.h/ h$ u) d# a+ b) ~  J  n/ ?

. ?+ K* t4 u" E9 S+ ]% ]  ?. s# r
# u5 o7 w# O1 qOverview( Y& q% z/ L5 a, _' y* G) m

! W' h( C- }4 S" b! z6 `8 wCreate shadow outline for a given array of solids. Solids passed to this 4 t1 Q8 U; k$ Z
routine must be on a selectable layer and visible. If created shadow curves & A" B5 J. {* s; z+ E6 b
can not form loops, please use UF_CURVE_create_shadow_curves instead to get
% [2 j! ~' `; u" lshadow curves. ' l( V6 _( @8 }
* K* ]& W& l1 ?. e4 j

4 ^1 W/ m. h. ~7 B6 F4 E! v5 u[hide]; k; }9 [% ]9 f' j
8 Q0 @/ s8 g, Q) H5 _, d0 V4 Y- Z% O
[mw_shl_code=csharp,true] void DoIt()" `% ?6 s0 u) b! `  q' S* x
    {& S% I7 B: s8 Y4 s
        if (theSession.Parts.Display != theSession.Parts.Work)3 V" q1 l) l1 ^! \. R' D/ A
            theSession.Parts.SetWork(theSession.Parts.Display);
* r$ N) T; p% f) e, w# ]* k9 ]/ }
0 u; U. N4 k5 r6 h, }2 l
        TaggedObject[] theBodies = null;' n% K8 V1 f0 |% M$ X# v0 N7 y
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
7 _) m. F- b7 P: j        {
* j4 O5 d( B2 t" c. I            Echo("Selected Bodies: " + theBodies.Length.ToString());& o& x3 \# [2 G& ^
            Tag[] theBodyTags = new Tag[theBodies.Length];! U/ K. O. N+ i9 g, I* p
            for (int ii = 0; ii < theBodies.Length; ii++)
' A4 ^' o6 G/ \) c: z6 z% ^                theBodyTags[ii] = theBodies[ii].Tag;
9 u8 [3 E1 K. G; L1 L# G! ]0 V  b
; r$ {' U8 a4 c+ d& E  J# f            List<Curve> theOutlineCurves = new List<Curve>();
$ k% |6 M8 ]8 S7 K) ~            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
# x& o0 E6 L4 h  a            int loop_count;* T% c) g  _; j( }  m
            int[] count_array;
) V3 H' E9 j0 b, B( Q2 t0 k, u            Tag[][] curve_array = null;
( C7 ^) A5 w3 y; @( G            double[] tol = new double[2];1 l( t/ `6 A9 }4 F3 L
4 o1 |; \; [" a. }5 [
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
$ v: {7 M5 M8 A/ @7 j+ i3 C            theUFSession.Modl.AskAngleTolerance(out tol[1]);
# k9 U, g' I7 O1 t" v) e8 p3 N" P0 {$ W7 w- v/ F
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,7 j8 [) T0 s/ ~: ^" }$ [
                workView.Tag, out loop_count, out count_array, out curve_array, tol);/ Z6 |5 T4 K% q4 k3 j7 l

0 M6 ~( J$ _1 s            Echo("Precise Outline Loops: " + loop_count.ToString());& x! p; h- L: j% m
            for (int ii = 0; ii < loop_count; ii++)
9 y! \1 z3 b9 ^5 ]                for (int jj = 0; jj < count_array[ii]; jj++)
) |+ C$ i) L: W3 R$ G                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));) ?. [8 K- K9 Y* R) D; H
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
8 X$ L6 T: s; R) x
% N# n" c, Y  u- X, t            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead ' c( f% N9 d- D, l7 J$ K
            int curve_count;( B  v7 F8 ^6 @3 s
            Tag[] outline_curves = null;
$ Q2 n* p) {& Q. G" ~/ @; ^            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
7 Y( r# [6 Z' x7 g. I! _) k                workView.Tag, out curve_count, out outline_curves);
+ N2 K: v2 n( l7 G4 N4 B2 M            Echo("Precise Outline Curves: " + curve_count.ToString());
. J1 W/ w- q; j4 S: F            */
& D' W' e3 W2 \/ M# x        }
2 y8 s- f+ ^; i6 J5 N* z! [
# i5 j+ V8 n4 M# {: _# U    }[/mw_shl_code]- u! i2 I% O0 ~. N# R* U3 i
[/hide]
* q+ n+ l  d) y/ 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二次开发专题模块培训报名开始啦

    我知道了