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

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

[复制链接]

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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************: a- r& y/ o7 _/ g/ B+ L
**
: ^( ~, H& F# i** creat cly.cpp0 N  J- K' [4 h8 S
**9 I/ Q% e7 b/ P! [; P7 u
** Description:- v$ l/ k% O2 h* A
**     Contains Unigraphics entry points for the application.
  z+ M: z7 z3 ^9 p! B5 k! g*** q+ m) p; R3 t1 V, v7 K
*****************************************************************************/, k& A4 z; f$ v: [( q' C5 e8 I

* [/ B. Q4 N) V, E* u/* Include files */
3 e( ~6 O! _* [/ {  j: B#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )' h6 u+ S5 z# U: s
#   include <strstream>) H* k1 p/ g6 W4 ~# M6 D
#   include <iostream>
$ t/ G4 C. z4 P0 y# `    using std:strstream;' z8 W* a7 ^1 P& X* x( j
    using std::endl;    8 |4 O5 a4 F" L9 a2 O; ^
    using std::ends;
7 d8 Z1 F- V+ |% }2 V$ Y, j    using std::cerr;' _5 t# B/ Y: F5 _: C
#else
4 P  [9 _+ g* ?. a1 H5 h2 I#   include <strstream.h>' Q' x! ]2 o, O& J+ `
#   include <iostream.h>
2 p  _# D. `6 A, U- _" z0 q#endif' K* d; q6 E' J  P* z8 f5 V7 N
#include <uf.h>* R! V- r* A, n$ H- R, a* f
#include <uf_ui.h>
4 d5 s' k7 h5 y$ f#include <uf_exit.h>
& ]% m; y/ q) \' i#include<uf_part.h>
* p4 k. N* w" l/ K. q#include<uf_modl.h>
- L- ?3 n2 {  l# z# |9 k0 B0 Q/ }#include<uf_curve.h>; O- o$ d# S3 _3 R/ d
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))% |3 e7 W' H9 l; [( p7 L4 f

& g7 e9 I$ }1 l7 g) S( w' `) K! V: I% E; U  Y6 Y0 R2 X) @
static int report_error( char *file, int line, char *call, int irc)) {& V/ }! C1 M2 `) R: t, K: p
{
+ r; u! a# t$ X; d8 a5 e    if (irc)8 S. p4 i% Q# w! s: ]0 M8 s
    {
, i: U9 ?/ m+ C        char err[133],+ g& w: E6 o! C; D+ |
             msg[133];; X6 Z  V1 i1 Y  U$ t: w! c

5 @+ F* N( C1 D8 ?6 h& A        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",! s$ w% e0 u+ p" g: A1 E4 R3 R
            irc, line, file);  C" ^. g# _1 K: o( }
        UF_get_fail_message(irc, err);
" F: F; G  l) o7 Y, R$ F6 h
$ s' Q2 [" s% p7 \        UF_print_syslog(msg, FALSE);. W1 U9 _% J) i) |4 M" J
        UF_print_syslog(err, FALSE);
* b0 |; |; R) g8 `2 R! I        UF_print_syslog("\n", FALSE);
/ ~3 ?* c  V+ X# U# L( t( @: G; N( b        UF_print_syslog(call, FALSE);
1 X. |: N4 m& D: @6 A        UF_print_syslog(";\n", FALSE);
) V7 f% I$ j( J4 O8 Y; `! h  P
2 L* o# v/ O6 o0 S" t, _& ~7 y        if (!UF_UI_open_listing_window())
3 W! D& m3 t4 H) [4 ?/ O. W        {( l4 n/ S2 Y! R2 q
            UF_UI_write_listing_window(msg);
8 ]9 `1 T- u: F% @* [! p+ r            UF_UI_write_listing_window(err);
( U6 b! r8 J) K, K* X            UF_UI_write_listing_window("\n");
5 L$ W2 f* D. e( t: O2 r1 x            UF_UI_write_listing_window(call);
2 ?/ o" ~1 k' e2 L1 R            UF_UI_write_listing_window(";\n");6 N, ]( M. G0 o7 A7 g) O, N: n
        }
7 z" F3 v" p7 F7 k    }# T$ T/ ]# ~+ m8 U# u# d4 h

0 R' ]0 ]: O' r% W5 m$ ?    return(irc);6 i. Y/ v' }( @0 E
}6 I; Q) B/ ?4 l( L) B6 @8 }2 ~  A5 `

$ b6 |6 s# `; F  h' `! X9 V, Z! i
/*****************************************************************************
/ B3 e& N( [: T' _  a9 Q4 b8 V3 n**  Activation Methods/ y! {) l/ Y/ ^' T
*****************************************************************************/2 m& j  v# Z7 ?$ v& s! X
/*  Unigraphics Startup
! y+ X4 Y1 N  q) K: e**      This entry point activates the application at Unigraphics startup */* n' w; _. [) e0 [! _8 M' r
extern DllExport void ufsta( char *param, int *returnCode, int rlen )
" S! @1 Z8 J; z5 w( H- x6 _{
9 j% V' s0 [) y7 @    /* Initialize the API environment */# |7 Z. g1 q+ |$ h
    if( UF_CALL(UF_initialize()) ) 7 [( b4 J& b3 l# r! R8 u. P# \
    {% t6 U, J" Q. v2 K
        /* Failed to initialize */
; ]/ ]3 C+ T  T0 H( G+ p        return;- q" l$ C+ ?0 Z4 W6 d* Q0 ^1 f- n* E
    }1 }) I+ N0 |+ m. F8 q- D+ c

: P: O% j1 ]' `0 S: c7 N+ _. c    /* TODO: Add your application code here */- W; |7 P8 E: A4 O5 H2 P
        ! k5 D8 F) i9 m
        //new part
" j" f6 {  _* n+ y% g# I- e+ B0 P
* k7 @$ }6 p# j5 I        tag_t parttag=NULL_TAG;
( X: f: v3 q- H4 h8 D- ]7 g+ i" b& r) W, R" w% m0 P
        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);3 H" R7 p8 s& J& Z3 U/ g2 q9 h
( w9 M, L- M3 U9 x
        //creat cyl
/ q/ o' I3 V# A) `! y' \$ |& N5 `# q  M9 D9 d. ]+ N
                double origin [ 3 ]={0,0,0};
3 [% j: @) {0 l0 |4 ]. t3 O2 e                char *height={"50"};( u7 r% G& e/ R1 Y7 t) s& {* j
                char *diam={"100"};/ X/ \7 K  Y8 J0 E# V( t9 G
                double direction1 [ 3 ] ={1,1,1};
; B$ H/ L% U# P% u$ H7 J6 C* O- n8 ^                double direction2 [ 3 ] ={-1,-1,-1};                - {6 W0 X, R- U
                tag_t cylFeatureTag=NULL_TAG;
: H' z& R5 d- ?3 s3 P
* |: o7 @% ]. ~5 ]( B) {) A        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));
6 B5 q% ^0 L: [/ p$ ]# b; G        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));
5 x  E- \0 O5 e  D1 G        //creat line4 v- v; S. Q' B$ L$ L  Z, j! w6 |+ J
        UF_CURVE_line_t line_coords;
4 P4 K! ?# ?% V* v        line_coords.start_point[0]=-50.0;3 w5 x- Y) G- I, |) L* o
        line_coords.start_point[1]=-50.0;+ U# G% l  n( x( ~2 J% Z
        line_coords.start_point[2]=-50.0;
  ~. Z" C- W: S( s$ j4 ~        line_coords.end_point[0]=50;& A/ V6 }" i/ M  _9 \/ \; h) q
        line_coords.end_point[1]=50;
4 }# d, ]9 H' x& d) @' Q# p, P+ |% Z        line_coords.end_point[2]=50;
$ D3 _! e  I4 p! m6 I7 O+ {; P        tag_t linetag=NULL_TAG;
# {6 J0 A$ |4 G: ?2 S8 ^$ G: J7 D& i2 i6 G+ d! z4 C. K+ a) @
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));
4 V6 d' i2 \/ l8 W# }. E3 l        //creat point! [8 \8 z4 d( l" d/ s
        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};
. ~, x$ n" u0 v        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};  ~4 L$ B$ x, w0 c) n  Q
        tag_t pointtag=NULL_TAG;
7 ]* T/ F6 d) n3 F2 `% k        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));! u6 y# t* r6 C6 k9 j; k! l
                double start[3];; {. Q5 Q* @( \( g$ K% A$ F
                UF_CURVE_ask_point_data(pointtag,start);' t9 e+ x1 a% z# ]
        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));
! w" o) N6 x3 T' a# P# p                double end[3];9 M8 C* J& v$ f4 Y
                UF_CURVE_ask_point_data(pointtag,end);
2 s0 F0 Z1 r7 `0 M        char msg1[128];/ k- ^$ r* {% q( k& Z# U
        char msg2[128];
8 j( {5 [, ~3 E! f) o6 u$ ~9 m- b        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
# [; v2 @- V: R6 d9 }3 Y; U) S        uc1601(msg1,1);
. _: r0 X/ Z8 ~9 Q. h        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);
3 N4 i* T" P' L8 _+ G9 w        uc1601(msg2,1);
5 G! J2 A+ Q% p: N3 p6 p        //mapping point from abs to wcs2 G4 j4 X9 E4 F

4 b+ Q+ U' Y4 f* f/ ~        UF_UI_open_listing_window();
4 I* D) ?, T+ Q: F; Q/ p/ h        UF_UI_write_listing_window(msg1);  J. @' f( J! e
        UF_UI_write_listing_window(msg2);+ j' O6 q" W8 {& c: ^
       
6 [6 G1 K( P; O& H. \/ H9 w  q        //close
6 I! r* y  q! a        UF_PART_close_all();: _9 X5 @# b9 O6 V0 E3 r) I; f
$ L; ^4 ?/ D% T* Y0 a
    /* Terminate the API environment */
# L( T! `/ R. X" \6 d    UF_CALL(UF_terminate());
8 n/ ]$ P% I7 j" l! d5 j}
4 ?" k( E' z3 R/ M. m7 k$ r, a
/ y4 s) m. @5 J/ f) P6 G+ \/*****************************************************************************1 f: A: t+ c; ^! V/ l
**  Utilities
% t. {6 p9 S, Z1 C) s; U0 M*****************************************************************************/1 O1 Y2 q3 n6 S! o" l! N
: J: _- B1 O4 }8 S
/* Unload Handler' d) z6 t' _. [* s+ g
**     This function specifies when to unload your application from Unigraphics.8 v" @- t2 Z: G: }* y4 T
**     If your application registers a callback (from a MenuScript item or a! z5 c0 u9 B" X% d' g
**     User Defined Object for example), this function MUST return
' C# H; h' Y- h! e+ y# E**     "UF_UNLOAD_UG_TERMINATE". */
- O& T2 X; Q, S9 bextern int ufusr_ask_unload( void )
, N: {4 G1 v! c8 R. z0 P1 q, u{
( G/ g) g6 U5 p    return( UF_UNLOAD_IMMEDIATELY );
' K7 Z: {: D3 c  ~- X}- m6 {; v0 E- i$ d, g& l" [" t  s
" x' k4 E2 j! v4 C
) E. N7 w$ f$ y# V( I$ Q, ^
上海点团信息科技有限公司,承接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 编辑 3 E! H9 b! z/ ]$ A4 {

" U: d# P6 @9 L8 ^: qL:\1

; A1 o3 S$ T# d  G" x& T: J                               
登录/注册后可看大图
- E# K# C1 d% P8 W4 y% k0 L: ]
                               
登录/注册后可看大图
* G/ \. S2 b# m* Q0 O
                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了