PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

[交作业] 20160320 lesson 2 2圆柱求和+手工输入中心线+点信息

[复制链接]

2016-3-20 19:27:35 3075 1

gsmfxsmy 发表于 2016-3-20 19:15:41 |阅读模式

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************
, R5 J% h2 U7 V8 n  j  J**
* e4 _; ]  ?& [9 E( L( {** creat cly.cpp
, f, w. L) Z$ l  Q8 R**3 ?/ B: a1 ^# j# o
** Description:) _* I& c. I5 V2 W* m
**     Contains Unigraphics entry points for the application.
3 i7 I% z. m; }2 g8 B, Z**
2 R% ~$ \7 N3 ]# o" q*****************************************************************************/
1 d3 a7 d( ^1 o6 @8 @  k) ~, C
0 D4 _9 m( W7 Z* N2 [  o/* Include files */& M0 F+ d7 w" b
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )! B2 N9 ~$ Y, V* b3 E, C' x" y- c# f
#   include <strstream>2 K) q8 z/ d- n& N, O0 S* K9 [
#   include <iostream>
& z5 I6 e% W( C( n/ a    using std:strstream;
: O8 O* ?  ^  l2 s  @    using std::endl;   
7 s5 o$ g; b# m/ n7 l; _    using std::ends;
, \3 E! K/ i" L    using std::cerr;
" F; f% z% z% W, x! k' F#else; k# L  M/ ]0 U% ^6 ^& j& L  n
#   include <strstream.h>2 }  \1 \& W+ W, u
#   include <iostream.h>* {8 T& H( H2 ^5 Q
#endif
3 I; X8 P+ Y# F7 P0 k#include <uf.h>
$ ^$ _  D8 M% ~! W# P) u8 a; ^! Y8 l( d#include <uf_ui.h>
; D) C- t: L8 z; t( b" n) \#include <uf_exit.h>: H" a* G8 _3 s6 s' O& j9 [
#include<uf_part.h>
" [" x+ V; V8 }$ L) p#include<uf_modl.h>
  t/ K) j" D( i8 E& |#include<uf_curve.h>
2 t* O8 |. M  N6 ?1 G. A; t- d#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))0 Q# p( x( k: b" F/ P5 X, j

6 O, k' v1 r0 z! h3 N0 @8 a6 N- P4 Y. a! `1 s9 f( N( D
static int report_error( char *file, int line, char *call, int irc)
1 E0 F0 }& c; U1 k) _{; J. [1 r* n/ h9 v, H! T; |; l2 s
    if (irc)7 n* h* P  z  z8 T- V
    {  X* Z' m3 X- E9 M6 H+ X! ^' w, {0 T
        char err[133],) B* }5 i$ [' F# J, c& D
             msg[133];
1 U: y+ n' m# j6 d
) Z2 M* \4 w* _, c9 ~        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
9 g! {7 p0 m% W" a+ r+ y0 U* `/ b: L4 t            irc, line, file);
; F1 d, x4 P% ]0 k3 I% |% d/ D        UF_get_fail_message(irc, err);
0 f4 ]8 c* M' O1 l5 D* v2 n5 w
* _% \) m8 g$ t, s" i: [# [* j        UF_print_syslog(msg, FALSE);& x& \# @$ L) \% x0 l6 J
        UF_print_syslog(err, FALSE);0 |. d! e7 K' F. N
        UF_print_syslog("\n", FALSE);
- G! F. ]: s8 e# D1 B- S, j        UF_print_syslog(call, FALSE);1 V' a9 H# s! W: s& Y7 ?
        UF_print_syslog(";\n", FALSE);: B2 ~4 K- Q, d
8 u' z4 q/ F+ B2 g6 c5 R3 }
        if (!UF_UI_open_listing_window())
- M, I5 z/ x0 T: f) n        {
" \7 [" R, ~5 @            UF_UI_write_listing_window(msg);9 v# T( H, _# y4 ?) ]
            UF_UI_write_listing_window(err);2 o$ m( V3 k9 {6 M8 H
            UF_UI_write_listing_window("\n");5 }  c  {9 J# Q
            UF_UI_write_listing_window(call);
) X/ Z8 I% x% ?9 h            UF_UI_write_listing_window(";\n");. u6 h" x) r" D. v: Y1 p! Q- Z
        }* P4 S! S6 A6 ?% Z" o' o$ i
    }
: |% [, a. U* {6 K  P1 d: W. y' x. u( Y
    return(irc);
* c5 k$ {& J" d# p1 o) @}5 Z9 |$ d. B7 ]) p) h; a3 a- X
; H# N0 ~8 B. g: r1 A( @2 [" G
/ l4 P3 k( C: T
/*****************************************************************************3 |% F- m5 N; J! a" Q
**  Activation Methods+ W/ T2 n- ?: N1 C8 C
*****************************************************************************/
# C: {$ }4 U; j2 E+ R; _. K9 J# w/*  Unigraphics Startup
6 v/ T% n5 o" o0 Y0 e5 K* a**      This entry point activates the application at Unigraphics startup */
) r: X  }1 D! L2 S* @: w" M$ O! i7 eextern DllExport void ufsta( char *param, int *returnCode, int rlen )
  C- W3 R2 [5 J3 [! _* v3 P0 F{
( e  @# e+ _2 C: L3 G6 i    /* Initialize the API environment */
  h6 e% l9 m: g    if( UF_CALL(UF_initialize()) ) 4 Y+ V8 s. v( f: ?  |1 s
    {6 K7 l# r$ e6 u1 U) @4 Q
        /* Failed to initialize */
+ Q: h' ~2 Y3 }( ?        return;' g! Z/ X/ K' }0 t. G, w
    }
. c. F6 V9 t* Z1 a6 z8 `$ O/ d7 q" D
2 R8 U# g: M- R0 `6 X    /* TODO: Add your application code here */
8 O: Y% z2 S# A7 Y+ `. V9 t       
* g- E+ z0 j: p, d8 V$ l        //new part  U# _8 P, g& }/ B# U0 Y
8 _; G1 g" |& {- Q! J& x* {
        tag_t parttag=NULL_TAG;
0 O  S5 H, m8 L$ i" i2 c
# E( [3 \2 `4 x0 j" v        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);7 \6 k9 X( H$ b6 c

  q9 V9 x8 u" B8 ?" I        //creat cyl
, Q4 }1 v4 A$ ^. C9 j: e% {
. t  d* m) ~7 G5 L                double origin [ 3 ]={0,0,0};. E# _: c! C- B) E( H; _! i
                char *height={"50"};
8 \6 _4 n( V1 W                char *diam={"100"};
% k! u+ M! H& W7 B" s, i, k                double direction1 [ 3 ] ={1,1,1};' s# e' A/ p9 }% |0 {: J) y- j% ]) ]: s
                double direction2 [ 3 ] ={-1,-1,-1};                  p4 }; j5 N3 `
                tag_t cylFeatureTag=NULL_TAG;# u% U' u: G4 {7 ^

; t- [* c9 P( L" a/ N9 F) |' q        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));
5 L( |1 b' A" k; m1 d; \        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));
; |# R1 U. |1 d. d        //creat line
8 ?4 a5 r2 U. f) v/ t& u% F        UF_CURVE_line_t line_coords;4 A' w- ]' [  a5 f; K; z/ f9 g
        line_coords.start_point[0]=-50.0;4 N4 e9 r8 L; \+ h0 @2 D
        line_coords.start_point[1]=-50.0;
& o4 |- d: L3 s: Q3 \, ]- m        line_coords.start_point[2]=-50.0;3 `) H: P( s2 r3 b
        line_coords.end_point[0]=50;' p! X. _- ~" X' l0 S
        line_coords.end_point[1]=50;$ n& `, ]/ d  [7 W7 n1 |; D4 \
        line_coords.end_point[2]=50;
2 E" Y: u2 u/ ~0 Q& k        tag_t linetag=NULL_TAG;3 u* Q+ Z$ G3 Z3 Y7 m: K- p
+ r5 g( M6 g6 v( f8 C% y. p6 U
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));
$ I8 m/ f& A" z! h$ w# X! S        //creat point( K* q* }) Z. r8 b
        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};7 c( W/ [. K' |) a2 B
        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};
9 g, [4 {, U. _" }' B( ~        tag_t pointtag=NULL_TAG;; {  _* z' z4 |0 b: {2 O- J" x
        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
% [4 ~0 k, {1 K* j7 S% G9 G% O8 \                double start[3];( i2 B$ G0 N5 @0 U0 W2 X
                UF_CURVE_ask_point_data(pointtag,start);" O' y2 C* K. w) G( e5 i7 n
        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));0 E& \/ G' G% y; {* N/ v# I& R( d
                double end[3];) v; f( F8 x2 a  b- l! T
                UF_CURVE_ask_point_data(pointtag,end);3 ~& o8 H1 L' G  }8 N
        char msg1[128];8 J3 M. Q- Q" r, R+ ?. \! L2 N
        char msg2[128];- J/ W( g# z& V& q" o
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
2 b  `8 t0 h. \" ^, c        uc1601(msg1,1);
! Z! }1 s9 j- v- h/ f9 b        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);
2 _1 c1 g1 p8 V+ `6 m        uc1601(msg2,1);
* Y  F! M, m  |+ f. }8 {6 a        //mapping point from abs to wcs
+ _6 _$ G+ a# w& {6 M2 ?) u  @4 L4 Z+ g  L3 i2 ^% [
        UF_UI_open_listing_window();
$ G9 }% d* G6 U4 R/ z+ D" Z/ M/ D        UF_UI_write_listing_window(msg1);
5 t; \. [. a: M8 k. U  e8 H( ~        UF_UI_write_listing_window(msg2);# E; F* c* h* M  [, E6 u
       
" Q: b, y: U( r* `% [        //close
# [& H1 X/ V, z. y        UF_PART_close_all();
- L6 `: W0 X' q( m" l' c( f
* d2 P, I9 n' T0 d    /* Terminate the API environment */; K9 v4 T% h& B3 U5 G
    UF_CALL(UF_terminate());
5 n* {. p7 E0 J. @' M) @}1 W: o/ h" Q/ [" d: ~; i, A

( l0 ]" d( a% T/*****************************************************************************1 H8 u2 U# T* }1 j1 i( L
**  Utilities
3 C8 N$ a. x/ Y' N*****************************************************************************/2 x  h- O& r% w7 q
) J7 l/ g9 u4 U9 J# r7 F
/* Unload Handler: A; v: A! y0 T
**     This function specifies when to unload your application from Unigraphics.
! c' c6 o. A  J6 N**     If your application registers a callback (from a MenuScript item or a+ M! A2 ~$ C5 i' [; j3 A
**     User Defined Object for example), this function MUST return
, s( ?0 [6 m: ^' ?4 D**     "UF_UNLOAD_UG_TERMINATE". */7 ^" x" t, |8 D; B/ \; r
extern int ufusr_ask_unload( void ); B7 }0 I7 o9 u+ L& A
{
5 @; h/ ^, u; \. C    return( UF_UNLOAD_IMMEDIATELY );+ m7 U9 z( F7 S. }
}
& ?& D* I# {; Q! ]/ K" N: `3 F6 M6 N
9 ~+ [: X1 _: t. N& T
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复1

gsmfxsmy 发表于 2016-3-20 19:27:35

gsmfxsmy 沙发

2016-3-20 19:27:35

本帖最后由 gsmfxsmy 于 2016-3-20 19:29 编辑 % A5 O2 ?: Q6 B- D2 G: w9 o  e- r$ ^2 l* V
9 k# w! f+ z" E) @) c. v! C
L:\1
; z8 K1 H  }. r' n
                               
登录/注册后可看大图

+ K) l$ r8 _+ x- Y7 H: t                               
登录/注册后可看大图
7 z' J/ n+ x) D
                               
登录/注册后可看大图
3.jpg
2.jpg
1.jpg
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了