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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓* T: C2 f, r" b! l1 S
7 d6 M: D, p2 U# E
UF_CURVE_create_shadow_outline (view source)# D: W+ I' ]& b; q7 E, w: F! F

% m4 q1 k0 v& TDefined in: uf_curve.h  O% S' m5 i& q( l) |8 o

! H8 M  ]# ]) A) x; `8 P* U) r! R+ z& M0 b& u9 @0 V
Overview0 X0 t% z; h- H9 [7 Q$ ?5 x- q
4 _2 G; x& w. h
Create shadow outline for a given array of solids. Solids passed to this
/ J$ s1 b0 I6 ^$ l" z# Mroutine must be on a selectable layer and visible. If created shadow curves
1 `. h4 m, e, Q# v" }$ |can not form loops, please use UF_CURVE_create_shadow_curves instead to get $ X; V. H0 D2 F8 q4 J7 @- \; |
shadow curves.
# L' H" b! x1 l; n2 f" M7 M3 ?& y8 G* S, A8 B- _8 ]

8 i6 Q/ U" u! l[hide]4 [/ {# h/ E$ O  c+ L+ B
7 ~  W; \: ^, E" z( @
[mw_shl_code=csharp,true] void DoIt()
, a. U( {( K8 T/ m+ q" F    {
7 u8 m5 @& b* r! ^        if (theSession.Parts.Display != theSession.Parts.Work)- g; x$ z3 d% V) w8 @$ V- X
            theSession.Parts.SetWork(theSession.Parts.Display);
5 x" \; S' k) p* s1 y# R( @& w/ c( K$ V! K2 V2 Q: m
" n8 g  ]8 J0 a: H, C
        TaggedObject[] theBodies = null;2 }, x; K1 {9 Z. R$ L" `6 V
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)5 C. k2 \! \& E" S, W' X
        {
; H( ~) q0 l% J            Echo("Selected Bodies: " + theBodies.Length.ToString());
: a, \# ]" w  z  ~6 K$ a' r0 E            Tag[] theBodyTags = new Tag[theBodies.Length];2 x2 l) z3 e8 G7 q8 I# ?  ~
            for (int ii = 0; ii < theBodies.Length; ii++); ^. K  V! a3 }/ w
                theBodyTags[ii] = theBodies[ii].Tag;
* ?1 Y: s3 A! U6 c! y+ P* D/ k* g+ q8 R. z/ X* K. n
            List<Curve> theOutlineCurves = new List<Curve>();# _+ N+ A0 {4 `( Z' M/ n
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
" ^& J+ y" s2 g2 V            int loop_count;+ {2 Y' f( `- }. A- h. e0 n
            int[] count_array;6 F3 _# {: ]$ d1 y) J
            Tag[][] curve_array = null;
* i4 |& t; r" o- Y7 G5 _; b9 ~            double[] tol = new double[2];2 b6 t! i, a  R; T  S
5 p$ @9 ~& Y+ H; P* c, ^
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);) u& `" N% s. i
            theUFSession.Modl.AskAngleTolerance(out tol[1]);% _( X* ^; V2 }$ W0 l6 A, t

# B5 v7 t& e0 P            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
2 N! c8 X: r8 J: e8 y* v                workView.Tag, out loop_count, out count_array, out curve_array, tol);" ^5 y- i7 x0 h, A. m
8 W9 V$ _8 i. m2 H# ~
            Echo("Precise Outline Loops: " + loop_count.ToString());+ i! E4 h8 M9 m' D8 P; l  x: w( [
            for (int ii = 0; ii < loop_count; ii++)5 H; O, ~+ T# |' V4 _. s
                for (int jj = 0; jj < count_array[ii]; jj++)
' s. m; I0 C0 A& i, i                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
0 ~$ r! J1 {2 X# t            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
( A( ?, c0 I. Z0 ^4 Y* I/ a/ r4 P! B/ |# _, e9 c& f5 h7 s! k
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
8 H" Y8 {% t; h. |: v            int curve_count;
/ z% \  ^& X$ G5 ?            Tag[] outline_curves = null;
: f5 D1 V$ ~: m            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
) o9 ?& ^2 @9 m% |: j  P+ ^                workView.Tag, out curve_count, out outline_curves);
: T3 y2 s: \$ D: ~, `6 n# e7 m            Echo("Precise Outline Curves: " + curve_count.ToString());; y3 f' g' [$ h
            */; [' }3 [, |2 `4 G7 w8 T
        }
# e2 X& r- L# p% {1 ?
/ \! U+ h/ a) D  H: h' i    }[/mw_shl_code]7 L! V/ G7 J/ `. n4 f
[/hide]
# W: C6 A7 J+ ]7 F$ Y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了