PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

[二次开发源码] NX二次开发源码分享: 通过命令行的方式写外部命令的方法

[复制链接]

2020-1-27 12:00:35 1279 0

admin 发表于 2020-1-27 12:00:35 |阅读模式

admin 楼主

2020-1-27 12:00:35

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

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

x
NX二次开发源码分享: 通过命令行的方式写外部命令的方法
3 z, `# k9 a3 t% \/ o2 J" Z7 @+ d6 z" y# j6 I; l
对于批量并行运行的命令,可能需要用到调用exe的方式去处理,我们可以通过NX提供的开发函数,快速完成带有参数的命令行方式开发。
' T6 e: ]" e5 ]. g' M8 L2 Q" p9 K0 b
uc4624/uc4620 是含有名称的方式比如 , helloplmhome.exe -p=xxx -u=xxx -g=xxx- O2 R" S7 x* O/ `
uc4624/uc4621 是直接的方式,如果一个参数可以,多个的话不是太灵活,helloplmhome.ext xxx xxx xxx
2 k. k4 o0 {$ c; ~: ?. X2 ]
( [2 W& u; c* H& m  H" Z/ U$ H
[mw_shl_code=cpp,true]void ECHOUsage()0 I1 l, Q1 L6 d; x; y. c
{( T" {5 U1 W$ |- J. O1 }2 F
1 p3 p- Q" S+ \; O# }$ _/ F0 s
        ECHO("Usage: exportAssemblyUtility [-part=<part path>]\t - Specify the input part \n");5 [( p$ b# n( _) \1 x
        ECHO("[-prefix=<prefix name>]                         \t - Specify the prefix name \n");4 W  r0 l& v: b  x" K
        ECHO("[-postfix=<postfix name>]                       \t - Specify the postfix name \n");
8 ?$ n% a& E9 c$ d- ~3 n        ECHO("[-exportoption=<export option name>]            \t - Specify the output option \n");5 T! d$ y* p8 x! r. v- y
        ECHO("[-exportfolder=<output folder name>]            \t - Specify the export folder Path \n");- _2 `; P: b  H" e0 U
        ECHO("[-h=<help>]                                     \t - print the help usage \n");
9 n5 T" ~- A. E7 M        ECHO("\n");
: i6 {' Y) L. M/ _: ~2 K}& j1 ^3 [) y( F  q6 `* ~3 j$ g5 r

. r) k0 z; \  x2 [$ z! |% |int main( int argc, char *argv[] )$ L# a$ k. ~# ^; `& g
{
4 e7 S3 ^# d: p2 j) y  |/ p4 {        tag_t part;; e7 H) u7 _/ f. s; e: s3 l
        char part_name[MAX_FSPEC_SIZE+1] = {0};* E2 f+ d- O' s+ ^
        char prefix[MAX_FSPEC_SIZE+1] = {0};3 Z# X( r8 d0 s) X, S
        char postfix[MAX_FSPEC_SIZE+1] = {0};  ~' |+ `. d3 F- i
        char exportOption[133] = {0};
3 C% ?. O4 G: l        char exportPath[UF_CFI_MAX_PATH_NAME_SIZE] = {0};
" s0 C1 b* U1 l7 d8 Z        char helpStr[] = {0};  Y/ l5 e) M$ u& a1 O
        logical
, C' r2 h9 Z# f0 ?  h/ F                nxmanager_mode;
5 D$ J% E( f" P" Z. s! o        char msg[1024];
5 _! K5 b0 j% ~! n! G. L        UF_PART_load_status_t- i: A" R' z8 Y1 {
                status;5 H) W7 V) R- h  _# a
        bool ispartok,isprefixok,ispostfixok,isoptionok,isfolderok = false;7 V" @. ]. \) J' \# S( {

7 n! Z9 t+ M- w* ]) t; o        if (!UF_CALL(UF_initialize()))
1 e' `* X- [3 q" j( U$ E  u        {
% D8 a' y! g# }: ?                UF_CALL(uc4624(0, argc, argv));! a) L- X8 P7 I2 g# G3 m. D+ C" P6 o$ e
                UF_CALL(UF_TEXT_init_native_lang_support());
( U& z2 W6 e' e# e+ u3 \! _7 H                UF_CALL(UF_is_UGmanager_active(&nxmanager_mode));8 n8 W8 [) h3 V- ]) k2 f
            if (nxmanager_mode == true)
7 Q' M" m6 a) X& n' Q4 y3 P5 v9 M            {9 ?& T; [$ D4 j' {/ m; g' {
                        ECHO("*** You are in NX Integration Environment ***\n ");3 u1 E7 T- @/ h$ q  P3 ?4 U
            }& k! f; G) t' f; a  d+ H5 m
                else
2 z* b1 \4 P8 n% D; `+ Q3 A                {
6 H; U2 @4 t0 b3 m# o                        ECHO("*** You are in  Local NX Environment ***\n ");( D6 H9 U' B0 I5 M3 W/ f1 F
                }+ V) z* N; B/ I1 g1 l% T/ Y6 a  y

4 I' ?( [1 n" B8 A1 ?               
; j; b7 A8 _  _# H        /*        for (int i = 0; i<argc;i++)' Z; [% {6 c& }: C1 n6 k
                {
* k  v- j% p* v! ~- `+ F/ H                        printf("argv[%d] = %s\n",i, argv);
6 H: Q$ r" h4 v                }*/
6 T) r- M& {& {/ B7 N; ~, _                /*uc4621(prefix) == 1 is OPTIONAL */, n/ C# T; @( h0 S) }) N
: g% W2 X. h/ n' A- V

( m$ k# O$ P- m. p+ N                if (uc4620("part",part_name) == 3) ; e* \1 t" t  _( Q' d+ O
                {
' i6 d' A. @) m/ g                        ispartok = true;
2 j& B) Y; n; G9 a: Q- d                }
: ~3 I  w' q5 E. ?& }9 I: P  i                if (uc4620("prefix",prefix) == 3) $ Z. f) P3 J* V! \4 d! B7 k. x
                {! h: p" a+ Z8 |" k: ^' l
                        isprefixok = true;4 B; T+ \* _6 z) ^- z' Z- M) h+ O
                }
& r0 K* a% H( A  g# ?                if (uc4620("postfix",postfix) == 3) 5 R# d, y4 r+ _; X5 R1 x7 D
                {
. o2 _( n: V4 P& n                        ispostfixok = true;
3 ~+ S! x- Q" S0 K5 J                }5 H8 t6 i7 a4 ]0 [" P& [
                if (uc4620("exportfolder",exportPath) == 3) : \' W% ?' `0 G
                {
9 @- L* w" z0 q( H                        isfolderok = true;: {5 |5 B' c3 B) v3 _
                }8 Y1 V8 V& K+ K
                if (uc4620("exportoption",exportOption) == 3)
3 |9 J+ a1 G# s& \4 _6 K# Y: J$ a: Q                {/ O4 C8 T9 v  v" ~( C" R) V) z3 `
                        isoptionok = true;
) b  x$ A6 x" |& \                }
% C' F5 H4 s) H$ K  u$ P                if (uc4620("h",helpStr) != 0) , T9 S+ M8 C" B5 H, @4 ?
                {
4 C0 r9 ?. L. w9 u0 @! v                        ECHOUsage();
7 q$ T# _9 Q( c* S' \6 Y+ D" O! A! L                        return 0;
* D# k  ]2 s/ y" l0 X                }
1 I% w8 i; @# [$ s+ N8 V, E: a! H
8 {+ \5 c  E5 W* `* Y* S
                if ( ispartok == true )- o& x/ O# b6 U. W1 a& b* _
                {
3 v! H$ j/ f9 G5 Q- R' V: e                        ECHO("===== The part exported and renamed as belows: =====\n ");$ Z& d6 S- t+ x$ _3 s( V3 H+ o. Q. F- @
// your code
) g- l) w( t& U$ U; S3 i  f" F. _. [1 i1 a# e( X  }
}" g6 }1 [2 `. K% L4 k0 e

6 H7 {2 W1 ~3 P[/mw_shl_code]! v1 o  w7 R: V
: }& ^4 Z( E. N% Q
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了