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

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

[复制链接]

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

13

主题

13

回帖

275

积分

培训VIP会员

积分
275
发表于 2016-3-20 19:15:41 | 显示全部楼层 |阅读模式

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

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

x
/*****************************************************************************2 e6 B$ E/ U3 S6 |& k, h
*** F0 A% ~9 F; ?. {/ D* F! c0 H
** creat cly.cpp
% s% V+ u  k) U6 W: Z**
- r  O+ q; n! u* y: R; N** Description:
8 ~& y) N+ d- r( Y**     Contains Unigraphics entry points for the application.5 e1 }- @& a3 ~
**
! N$ n1 Y% J' R8 I- M* I: G( y*****************************************************************************/
( K4 h) U* K  P# `5 x' g9 \- G3 Y0 u- X6 Y! L- c3 m7 W9 ~& m
/* Include files */
- [7 H4 g) T8 T1 x  ^. ^9 o#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
# F- g( J8 e# z* r, h- z#   include <strstream>, p) ^$ i6 M2 K& r. v+ D; M
#   include <iostream>
- B" f9 Z8 Y9 ^9 w( x6 A    using std:strstream;, z% r( s/ ~8 I& h! E- Q
    using std::endl;   
0 |6 K5 O2 k) |0 c* m% n    using std::ends;4 X6 x; c& L7 k' |, s4 j. j
    using std::cerr;  C* |* X. x/ A+ q8 d; S
#else  k# }9 @5 @8 Y. v0 ~( P
#   include <strstream.h>
6 O6 e# C0 Q) p: \# B7 }; X#   include <iostream.h>  U/ Z$ v( D, P: D  _
#endif6 E# h) e8 l  o
#include <uf.h>
4 x+ B8 ^; ~& s5 _  G7 m#include <uf_ui.h>" ^0 ^' ]7 {" n# b
#include <uf_exit.h>+ P; a3 a; k8 U! b. b& M! T+ i
#include<uf_part.h>) |3 a4 A. U2 C" b& Z! l
#include<uf_modl.h>) D8 L* O, {+ V2 F9 x# U8 V
#include<uf_curve.h>7 f; G9 I% _3 ?: c7 a4 m
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))2 X% q. L5 i5 M7 Z
. @- W* E- o* p& j) p: \' I5 V

9 i6 v( G5 `; b! {8 a6 d. C- @7 u2 Hstatic int report_error( char *file, int line, char *call, int irc)
" |1 n- G, X& ?3 c{
5 ]; u5 Q( Y* s; t  c    if (irc)- ~) c3 D! p" Y- O
    {6 M& H$ R* e, [: D9 R" d0 G4 v1 A" J. ^
        char err[133],( d6 J. [8 c( {
             msg[133];
+ A$ w/ P* N" C/ ?, z3 L# W1 `7 c6 x3 ]! a8 I3 t& I6 i" }2 r+ M/ N  Q
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",4 q% I  u/ Q/ n  n8 v1 w7 m9 h* E
            irc, line, file);
) j6 p( y2 X" G        UF_get_fail_message(irc, err);
$ {% s) `9 ]% ~2 f( F) `( j$ `1 d0 O7 z3 F6 I
        UF_print_syslog(msg, FALSE);
4 |# c' R3 G$ {/ U: z$ k        UF_print_syslog(err, FALSE);
0 d8 x, B1 Q$ G* a* Q0 A        UF_print_syslog("\n", FALSE);
) @& s9 {' Q( h+ c' i% g- V        UF_print_syslog(call, FALSE);
% s% b: L" T! ]        UF_print_syslog(";\n", FALSE);: N% P" K& G* m# F% z9 [

- C# ~$ |5 h# p        if (!UF_UI_open_listing_window())& |0 `- E, V- z; Y0 k( j+ W
        {
1 R) F1 @: |; }1 H3 u; _! Y            UF_UI_write_listing_window(msg);& u) g! R7 P1 a. A
            UF_UI_write_listing_window(err);6 X* }7 E0 C3 f
            UF_UI_write_listing_window("\n");. e- e8 p' M6 s7 X
            UF_UI_write_listing_window(call);2 }- p3 t. N5 A$ z8 {; [
            UF_UI_write_listing_window(";\n");, b. m9 @) ^. o$ S
        }7 k; \8 f1 `2 v+ A2 A
    }
4 u" N5 `! s2 _6 O9 V! E- }# H7 {& b( ?$ y& A* b6 Q$ z$ M: U
    return(irc);
3 P% f  b+ \) q}
8 L% c6 {- k0 _  x9 ^# }
$ v" ]4 X1 L7 Y4 I1 p+ h
% n% a! n! D  I0 ?8 f; ?/*****************************************************************************5 V# u  B( h/ l- _+ `2 ?
**  Activation Methods* y& `$ Z" G" s% v! S9 L( ~/ X
*****************************************************************************/( H7 e9 Q7 i* @$ }4 V# A1 t4 m( ?
/*  Unigraphics Startup* e7 P5 d! P) {$ s
**      This entry point activates the application at Unigraphics startup */
2 l- X; q7 e9 cextern DllExport void ufsta( char *param, int *returnCode, int rlen ), d+ ]' r0 x, L8 s/ G1 Z
{$ e9 ]  d/ A- V
    /* Initialize the API environment */; p" H2 q- @" F& M2 i/ M
    if( UF_CALL(UF_initialize()) )
2 V, c7 e; }2 Z% ?    {
; A* u7 Y6 T2 W' L; \0 W2 K        /* Failed to initialize */1 R7 i  d- [8 }) B! s( ?  B
        return;! G" [0 B" D; F1 o$ A# ~# F/ q, V
    }
6 e) I9 i4 i8 w# \
! Y- n. r, B* o6 f4 W3 w; i    /* TODO: Add your application code here *// a" t' t/ I7 z3 k9 G
       
$ R" G5 B- \4 g+ |0 M% `        //new part
' w( h: ~4 t, l$ p( p% @5 h+ h
9 t7 \* f  V" x4 ^/ [  i- S6 ~        tag_t parttag=NULL_TAG;
/ [/ D4 ~* l; ~) W2 b! m, e  P! T* A: q+ p6 ^
        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);
9 G) M' `2 J! P6 J: M+ x
$ p. B% h# W+ O. N! k( G& g  e        //creat cyl
0 [" x7 \+ r7 W& x* Y3 W1 r
/ ~  s/ R+ Y$ g0 V0 I' w, ~5 u                double origin [ 3 ]={0,0,0};+ f$ e% J# C' N
                char *height={"50"};% A# {" y/ ]+ Y$ {% i
                char *diam={"100"};
' ]& f% z4 [  q4 z$ D' `                double direction1 [ 3 ] ={1,1,1};
6 N( a1 f( A$ w- v: m8 }+ A                double direction2 [ 3 ] ={-1,-1,-1};                . }$ S/ N1 B4 u$ c- j5 c2 z
                tag_t cylFeatureTag=NULL_TAG;
2 q5 Z$ }$ h9 E+ ?( S7 `% B6 L* x1 Q" y1 N
        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));
! j) @: h3 z: J        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));0 d1 K5 }! |* s) J- B$ V' m$ O% r0 d
        //creat line1 x/ c% V: s5 G1 i3 G  b" u  b6 S( n6 e
        UF_CURVE_line_t line_coords;
" b5 K& ]5 f! t! [- S- q( F        line_coords.start_point[0]=-50.0;
, Q1 y; l& x/ X& V! U        line_coords.start_point[1]=-50.0;
+ d4 ^* u& J" [9 q  t7 B/ a        line_coords.start_point[2]=-50.0;6 u! n/ P. i9 w# J9 A* O2 p! g
        line_coords.end_point[0]=50;8 l+ n( j# P% q& t" y( J
        line_coords.end_point[1]=50;
$ T- z! Q7 g- Z% f, U; j. w7 x        line_coords.end_point[2]=50;
; m0 H3 E' |% R! R% Q% ]. Z        tag_t linetag=NULL_TAG;
/ d, ]4 |: n: t0 o) T* e" r! n9 p2 J8 t
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));
4 o0 i% r0 b8 h1 f5 R( Y) g- _: ^        //creat point8 l+ H) K* g% @5 }
        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};
5 x/ @7 I; o: y8 P        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};
& W; p7 P! ~3 s' V8 r/ V        tag_t pointtag=NULL_TAG;
8 ]" n& B( {+ e5 P+ ^6 u1 n9 f+ Y        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
$ M" w% d" ]- R% {$ q) L8 e$ }                double start[3];: a& u. Z% A1 }
                UF_CURVE_ask_point_data(pointtag,start);
/ ]! {" B. L4 x! ?1 Q$ F        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));
# F$ {7 W& n9 X! u$ f# Q                double end[3];
7 M& Y" P- I; g3 ^% U. r                UF_CURVE_ask_point_data(pointtag,end);
2 p, ^6 f8 Z0 K        char msg1[128];; G  R, S2 ^# i+ q/ m
        char msg2[128];/ X0 A( Z4 V: O. R9 l6 ?. ]
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
2 N2 j% _# e* q        uc1601(msg1,1);& P1 J+ i* c* ]. D& P5 q
        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);5 N9 j6 _9 z0 k0 F2 O
        uc1601(msg2,1);
' X2 f+ Y, M8 R, k( r; k        //mapping point from abs to wcs
* ?7 f) g; h$ \$ ]- L* I. q, A
7 [+ r' K! l2 g4 A3 I2 g        UF_UI_open_listing_window();
0 M! k3 t+ B2 Y& k3 v* B! ~        UF_UI_write_listing_window(msg1);
. ^" x: ^% V1 [, w. u' h5 [! [        UF_UI_write_listing_window(msg2);! G0 Y6 k' ?& B7 _+ d# e
        5 |* x% y, D# z$ z8 [
        //close
: I4 W% ^: V5 J8 G6 z$ ~        UF_PART_close_all();& ^$ o% x# x; H

, ?$ T5 @, y, W    /* Terminate the API environment */
/ c% R* h% E2 B% s, z    UF_CALL(UF_terminate());
9 N: E) K: ]' r- c& k}$ \3 G" Z# D2 _2 D7 O5 i9 N
& C# ~, s+ F/ f4 X' s0 ?
/*****************************************************************************
1 ^6 L! S! O6 Y8 \) y6 T**  Utilities) j4 E+ n4 U! I4 u& {# v! b
*****************************************************************************/: B% n9 a/ Y: f$ k3 _/ {5 x+ z

8 O: a! M/ A. f) `/* Unload Handler
- n2 O4 h2 @6 ^2 s# P0 @**     This function specifies when to unload your application from Unigraphics.
' o  s! Y0 @1 O( o! S' a**     If your application registers a callback (from a MenuScript item or a( N$ g, Q' L, R8 ]' K2 H
**     User Defined Object for example), this function MUST return
8 a5 v" _+ d( t0 G**     "UF_UNLOAD_UG_TERMINATE". */
) K" c7 s1 w7 y, ~' r3 Gextern int ufusr_ask_unload( void ); G- m1 D8 v7 s( \/ [+ s7 _
{
+ a3 J; u0 y1 [    return( UF_UNLOAD_IMMEDIATELY );
% Y, _' a  H0 A1 N: R, Y. n}1 v& l3 `8 g, P; K2 K! n$ A. M
5 P# G* `- }0 Y/ `
6 y3 F- }7 Z$ j. ~$ i5 H
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

全部回复1

13

主题

13

回帖

275

积分

培训VIP会员

积分
275
 楼主| 发表于 2016-3-20 19:27:35 | 显示全部楼层
本帖最后由 gsmfxsmy 于 2016-3-20 19:29 编辑 6 I3 Q4 ?/ v3 H9 j
% \# b4 Q. q) f0 d, W/ B
L:\1

$ O% a! Q( m* O9 M! x3 c. E                               
登录/注册后可看大图
& n! s6 c8 f) t3 I1 Q" e
                               
登录/注册后可看大图

0 M7 h  }& h9 b, ]                               
登录/注册后可看大图
1.jpg
2.jpg
3.jpg
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了