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

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

[复制链接]

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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************0 G2 y% \% H6 g4 W6 ~( C
**8 U0 ?; n- v( n
** creat cly.cpp
3 k- M3 m# x- E& e5 m  Q**
9 L7 w$ P" T6 z9 M. }8 S; d9 ]' T** Description:2 S" _+ Y# K, B2 ~5 U4 s6 @
**     Contains Unigraphics entry points for the application.
4 ~+ u' ^9 @, B8 C; f0 w**
- o$ \  S9 W& R' C& G( l( ^*****************************************************************************/9 m$ W% w; d2 t- ^+ i. ~
( k/ t3 T' Z* W7 }8 a
/* Include files */: M4 o* d# p! h3 }3 S
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )+ A5 v: I' @* {% I8 m: j
#   include <strstream>
( A/ ^, ?& Z5 [/ N4 i. c( x4 N, U#   include <iostream>, v3 s# X3 E8 ~4 y7 G+ ~1 M
    using std:strstream;* R2 B/ w+ @; `/ u0 c& T6 {
    using std::endl;   
0 e% a- A0 `& |4 P* G# {: B- a* A9 n, ^    using std::ends;# \% f$ ]* c: p* R  c* i9 [
    using std::cerr;3 E( M% }7 E7 b/ J
#else
+ g. V' @' u% L4 S#   include <strstream.h>, y# k" x: i( b) R- u4 u' ^" m6 k# f
#   include <iostream.h>, v! w2 x( C0 y$ S9 k1 A, B
#endif5 D% J8 W  E0 u5 n
#include <uf.h>: t: O( M& p, |* P& q/ W
#include <uf_ui.h>
  G$ g& p+ }6 Q6 w' Q6 J#include <uf_exit.h>
5 J2 Z5 Z8 m1 @" G% K0 u: ~2 a#include<uf_part.h>. q8 e1 C6 Q3 m* F: Q$ h
#include<uf_modl.h>& g3 v1 |; Q; y9 z
#include<uf_curve.h>- G; p. z3 `& n: @6 s2 z0 h5 p
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))+ \+ ]/ a7 v3 x
+ r$ @% V. t# K' x" W
9 o  X' e$ i! Q5 H  i
static int report_error( char *file, int line, char *call, int irc)6 N  t# U# }6 E# S6 ^, ~
{
& |2 B1 O! @$ T9 Z; J    if (irc)
% ^+ P5 v% q( T8 X    {- Y: u! m% y5 q- |5 C  l, ~1 H4 B5 `
        char err[133],
9 d- U8 P2 D6 Z) H             msg[133];3 z  ?( [$ I2 v( }
5 @+ |7 D1 ~, j- x2 u
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",6 r6 Y- G  T/ `; a( |, Q
            irc, line, file);
9 t1 R/ ?6 p1 g* T2 R: c( c( ?3 @        UF_get_fail_message(irc, err);+ g, x8 m/ U7 f  H! h% T. o1 ]
0 ^* L( c) x$ X( X
        UF_print_syslog(msg, FALSE);
1 i3 p2 f* j7 {8 A6 B, Z; l        UF_print_syslog(err, FALSE);
- o) J9 ~0 M7 g0 X  b4 L: h) t, [        UF_print_syslog("\n", FALSE);
9 X& m% n% z( V& N; _5 k        UF_print_syslog(call, FALSE);
. X+ e7 f1 f% z        UF_print_syslog(";\n", FALSE);
! L6 V  X1 \4 R1 u9 f
( p0 S9 c5 u- d6 F8 M        if (!UF_UI_open_listing_window())
# V( c# M0 ^1 H5 s        {
9 n6 I# `) m( n1 G3 a            UF_UI_write_listing_window(msg);
) l% A3 W' a( ?# ~! H3 _# T; e/ F            UF_UI_write_listing_window(err);
) m4 C9 \- W- w: q  ^" O' u: S! u            UF_UI_write_listing_window("\n");
1 S7 f/ k9 u1 ]" l* r; R            UF_UI_write_listing_window(call);
/ P1 C: ]* V6 e: B1 s( ^            UF_UI_write_listing_window(";\n");
: F. F: f' c/ K- z8 d9 X        }
6 l- n5 k, ]# ?* O  {# L    }
- m8 |( `$ t0 i8 Q, F2 h; N$ I: i) R$ K0 d; y1 L) @: z
    return(irc);3 e$ P# r) n& u5 M* H% [/ T' H
}
* F9 o' i; C4 c' v
: L% q) n/ ?' A0 L! i1 s# n- ?* j$ G5 J' \: e1 K3 y3 n, x- y
/*****************************************************************************7 Z6 U$ o0 k$ u( s7 ^% W9 u2 J; ~
**  Activation Methods2 Z3 T' F/ |! Y
*****************************************************************************/6 P: c9 k3 ]0 v' V+ s8 A
/*  Unigraphics Startup" S8 Y3 S  m- c$ v$ a( J
**      This entry point activates the application at Unigraphics startup */' R& k- R: r# S' A+ T2 H
extern DllExport void ufsta( char *param, int *returnCode, int rlen )/ t0 [5 g0 r0 |' [( R" y* C$ ?1 h; R
{, m+ _2 {1 \7 R/ U7 ]: M) }- @) C
    /* Initialize the API environment */
8 J# s- ], p3 d) F  ?. `    if( UF_CALL(UF_initialize()) )
- z5 O- z0 _  Q& f    {8 S+ }+ J' e5 [3 R3 @  ~
        /* Failed to initialize *// D) b7 H* `5 n3 L; r
        return;
8 ?9 m' L* T. ~2 i! r! x    }1 Q! x# y9 z+ Y/ K* W4 |& @4 z4 s

- g$ H2 w0 C. _/ c- j5 \    /* TODO: Add your application code here */
8 ~+ A9 H7 x! Y, T$ v1 M       
* v& Y* N1 @3 h0 ~% W8 Z& F7 W        //new part( Q0 ^4 p$ ^9 l1 Y, X9 [

+ S) c8 `4 h- y( d! ^: D- j2 ^        tag_t parttag=NULL_TAG;
8 P' {$ y5 b  I- T- K- \- Z, q, f0 p% }" [
        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);# o4 V8 h. Z- _7 K' v1 v

! ]" _4 H8 F# G  V% h        //creat cyl8 u7 {/ b+ H2 b9 h+ I- M

$ ^- X3 N/ v! K9 p5 A$ z1 I% J                double origin [ 3 ]={0,0,0};& f  T9 g8 P& r1 K) F+ d' a
                char *height={"50"};
! Q# l$ m* P- ?$ I# L  [1 }                char *diam={"100"};
" _* h  s4 t0 m) k. m6 N: J                double direction1 [ 3 ] ={1,1,1};% F$ B2 L$ @( J0 H& g7 ^$ X
                double direction2 [ 3 ] ={-1,-1,-1};                , l9 O" [  n. L9 I( o" b: L
                tag_t cylFeatureTag=NULL_TAG;4 y) ^4 i5 L+ z8 G7 y$ k4 d& I0 X

, ?  k% X4 S' {/ n0 T$ T        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));0 t8 }" f2 b- n$ A, \
        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));
: T3 w4 P8 F. X5 u/ Z        //creat line
$ v% W, L1 Z% ^8 ]8 D        UF_CURVE_line_t line_coords;
* E8 z( N# `' @" w$ [& h% b        line_coords.start_point[0]=-50.0;
: P* S9 b" {- ~! @        line_coords.start_point[1]=-50.0;
4 n+ {. x( N# p9 M9 [7 B9 w! v        line_coords.start_point[2]=-50.0;
/ n  t7 {( ^( F, V        line_coords.end_point[0]=50;9 p- p& f" V, y/ T
        line_coords.end_point[1]=50;
4 Y" O7 X  s; }/ Q& |' C        line_coords.end_point[2]=50;2 m0 |. B2 w, R
        tag_t linetag=NULL_TAG;
9 N' B+ f# [$ t1 J
% z! m0 Y4 d+ d8 e4 ]- w7 F- [        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));
0 t) A) Q- Y3 n8 c- w2 _8 x6 ~+ v        //creat point% X5 O6 w$ A) n2 {- x; N
        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};
2 A2 [! d' Z5 X8 n" f, M        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};4 f2 y; ?' R  a/ h: S
        tag_t pointtag=NULL_TAG;) t  R1 e! M( @: a: T# s
        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
9 {+ p5 O7 m5 j; l                double start[3];
! l5 {9 A  C0 U( Y( d                UF_CURVE_ask_point_data(pointtag,start);
  D- R& W$ f8 @8 R& V8 h        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));
+ L+ s( q% o  ]4 E                double end[3];
+ j' Y% R9 q' ^; ?' a( U- ~7 }) B                UF_CURVE_ask_point_data(pointtag,end);
7 a3 A1 C! `: c( U        char msg1[128];
6 s. }) |8 t, c. D( [5 m# b        char msg2[128];. m, A) o3 X* l1 U- p8 w
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
( B6 P2 x% y+ X& \3 K. K! G0 Y        uc1601(msg1,1);
, c+ X  z- ~: l. J- O" `1 L        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);- F0 ]. g+ @! f! X
        uc1601(msg2,1);! W( G& Y0 s; i4 A
        //mapping point from abs to wcs
) B3 Y, p0 I; Q- f: y( a4 v  s' D/ D2 P2 F
        UF_UI_open_listing_window();8 R! H  ?. j4 C: v: J# T  ?
        UF_UI_write_listing_window(msg1);
0 W5 q0 f( l9 U4 j' }        UF_UI_write_listing_window(msg2);, a' n% ~$ W9 c. D$ \8 ~0 T+ g- I
          ?) M) n1 V9 E; j6 I& E
        //close! P8 a* v7 d( L: S" }* i
        UF_PART_close_all();
) x/ S8 n6 l4 [0 q0 J( T- H
8 \7 [  m, |% n" [    /* Terminate the API environment */
1 k4 R3 S1 D3 m    UF_CALL(UF_terminate());
7 i: @; A. o/ b' ?9 V& w}2 v/ Y: g+ \! m7 M/ d+ w: H

4 V- r# Z3 @  v# ~  {/*****************************************************************************
; {9 Z! c0 m$ ~  {/ Q**  Utilities
, U1 C' U; V) a+ L2 x9 @2 ^*****************************************************************************/
8 o- l, _% y! L$ @% ^. K; \  y5 {+ J$ d; f- U; B
/* Unload Handler
6 ]+ Z$ y! F8 m7 R& E9 |) O8 R**     This function specifies when to unload your application from Unigraphics.# ?" C9 [" g; X
**     If your application registers a callback (from a MenuScript item or a- U' P5 {$ M6 n9 d$ v5 M: U6 R
**     User Defined Object for example), this function MUST return
; X* H( x6 r0 x; Y9 c5 z**     "UF_UNLOAD_UG_TERMINATE". */
8 D3 n7 t, [: S3 D# mextern int ufusr_ask_unload( void )
/ W8 J/ i# }4 @1 T/ o  L{: I1 u& p% |4 b7 B
    return( UF_UNLOAD_IMMEDIATELY );
, ?/ Q- Q& G: X# l/ Z6 p! F}" ^+ p  E6 m, e" J) P/ Z" C  U! ?

7 k- u% Z& S3 a4 g6 x9 ?+ h5 }8 u. L4 e' S) O0 L
上海点团信息科技有限公司,承接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 编辑 # |6 G+ R" i1 O: f! D

- r! c& }' ^, ?4 }- J9 \# G2 u2 d8 I9 m( I* QL:\1
5 [7 u, U, D# o7 U- M- V
                               
登录/注册后可看大图

: g- O7 c  {% k! W5 |& L+ t                               
登录/注册后可看大图
2 j+ M$ |; k7 ^0 z$ ^0 g: d( n) |$ 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二次开发专题模块培训报名开始啦

    我知道了