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

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

[复制链接]

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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************: z  T4 q+ W# {. p# w. I* J& |" R
**
, \1 y, Q* ?9 P9 b** creat cly.cpp
6 R- ~" j5 J6 i3 d2 a' e**
- W# l, D6 ]' E7 }** Description:
+ E$ u% `; I# z6 K* ~  ]( j**     Contains Unigraphics entry points for the application.
) S# v0 W! Q1 l) _**
8 w# T; W9 t  D/ z/ J' B*****************************************************************************/1 h+ q5 s4 U" K9 E3 e0 A
. Z4 q$ F  \  q6 E6 N% }0 N
/* Include files */
/ {# v5 ^8 c. _6 Z#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
: g7 _- V9 _* _) g* D#   include <strstream>
% d: Z2 x: }  v- q$ r# g#   include <iostream>$ U$ O0 c) Z; P' u
    using std:strstream;
1 y. D: o/ |$ R; i; O) \    using std::endl;   
* m2 a2 z4 c6 D# q: k    using std::ends;7 U4 @0 a: q1 b% J  n8 v' u
    using std::cerr;
. K2 d$ I$ s9 o  Y8 k#else
# W- @0 s6 q3 B#   include <strstream.h>0 H+ T/ i( u2 O  D7 i: c, q3 q: p# J; F4 d; b
#   include <iostream.h>
+ D3 |" m# D0 m4 v7 H#endif
% i. p( X! z' _" l#include <uf.h>
* i+ Z! B4 s- {0 k& p0 n& @7 u#include <uf_ui.h>
- o: ?1 N" x" j& T& j#include <uf_exit.h>* n0 o9 m: O% P9 P
#include<uf_part.h>$ s7 ]2 Y6 X% I7 p# l+ g
#include<uf_modl.h>
# i/ V* g! U# ~% n#include<uf_curve.h>
) U5 U# K% y. _, a#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))& ]6 o8 p3 i) }; [0 C5 D
* s: ]- M; J. ^  y
. ~' O% M0 G5 ~$ K& Y3 D4 T: M4 \
static int report_error( char *file, int line, char *call, int irc)2 q/ w9 ]3 J5 Y  R+ G+ x" I5 f
{+ `% {* j5 y6 L" S3 f- [$ R" g
    if (irc)
1 E3 E$ p* P0 {) W    {  o; I2 Q; I' }$ [0 H# U' A
        char err[133],) C8 J* P& O* U* u; k0 y6 E+ Y) x  e
             msg[133];
' F5 A, v% v. P& l8 u4 S3 r+ G- {9 z7 Q  v% W; t' L) M$ V
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",4 Z4 M2 @1 u- t5 W& T2 H6 ?
            irc, line, file);6 G1 R% d: x9 z' Q  L, q# B- g
        UF_get_fail_message(irc, err);
+ b" Z  [: r  q% U' t1 F; T
- t& d8 l" \4 B7 _        UF_print_syslog(msg, FALSE);4 h6 D& ^0 Y; E1 T6 S
        UF_print_syslog(err, FALSE);
: j# }; S' u. ?1 j        UF_print_syslog("\n", FALSE);
4 [; R% ~" l: i. u        UF_print_syslog(call, FALSE);& a' @& b2 F$ g' ?- T' A# F5 J
        UF_print_syslog(";\n", FALSE);
7 ]( A9 b& E0 ^9 l6 r) ]( V) Q/ h5 `/ A( u
        if (!UF_UI_open_listing_window())6 O, m/ o# _4 o' X* I
        {
9 a! c: X1 M( ~            UF_UI_write_listing_window(msg);* Z" f$ y: m. o5 D' M$ ]
            UF_UI_write_listing_window(err);
6 q/ b9 @- d, {' g) Z2 _6 E            UF_UI_write_listing_window("\n");
+ q6 l/ Y2 g% O/ n# V            UF_UI_write_listing_window(call);- e2 _3 k- a, d4 }% S
            UF_UI_write_listing_window(";\n");4 F5 }* ?! A- {9 d0 V
        }
0 k; k1 [5 Q$ u/ v6 d    }
8 I# r) y9 F, B9 g8 n0 w' q3 j# D
  J7 `4 w# o8 x1 j% m    return(irc);
$ a  D4 k) z4 M7 y}
' I$ G) S0 `% o6 Y- [
% k+ b7 }+ ?6 Q7 W, ~( U% s4 Q7 B4 s4 G0 m: N
/*****************************************************************************
; _$ k9 ~  B! k# A5 e( I**  Activation Methods* h* y3 X6 B; M: |! k0 x, @
*****************************************************************************/  v7 _! N' K# a
/*  Unigraphics Startup  s3 ?8 _, D9 h+ w2 @9 M% T+ u6 s
**      This entry point activates the application at Unigraphics startup */
) b4 k4 F) I, G* i% \, j: }2 Mextern DllExport void ufsta( char *param, int *returnCode, int rlen )
( D- G& G! \& r& x1 x{
+ l  I9 N/ |" K( c    /* Initialize the API environment */
# v  {: H; ]: _5 A! [    if( UF_CALL(UF_initialize()) )
; b/ ]6 W& t# O8 I    {; z+ K0 ?% i1 @; f' D2 l- ^
        /* Failed to initialize */! K% ?; X6 M4 m9 w+ V& ^
        return;
# e1 q' |' U8 a    }+ q7 s( W# w1 A  H! F9 r( n
# P( k- Y# n# f
    /* TODO: Add your application code here */0 g, |5 x9 o0 G0 x' h# _$ K! z1 i' w
        4 x; S' p6 \' n3 V
        //new part
! O$ P+ Y* `7 \( @7 u) J& x) U' ^4 b, ^- H
        tag_t parttag=NULL_TAG;
' s; W0 y! ]3 D: D8 N* t* y! N% E) o+ o! G# g$ i7 X' q
        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);
- M! @* m# U1 _  R
7 k& [( P$ s9 [% S* |        //creat cyl9 w+ o8 D2 ^# x5 P- Y' {" e6 ~

/ ]' _# |% a/ I: W# b9 m                double origin [ 3 ]={0,0,0};
0 ^- n1 [; U3 F                char *height={"50"};
4 ~# F8 h) }; x# J                char *diam={"100"};6 F2 Q" s2 j$ \6 S5 T1 ^& a  B
                double direction1 [ 3 ] ={1,1,1};
) ]- y3 d. p! z% G5 ^$ J                double direction2 [ 3 ] ={-1,-1,-1};               
" K/ R+ r$ n6 [2 c9 S- w& `                tag_t cylFeatureTag=NULL_TAG;
( [7 j/ f# E; M
1 C; e, G* R) U" ~+ e  B+ L& y        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));& E8 @9 g+ ~7 |, A  H
        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));. d& U, z" ?! U' K2 I, V
        //creat line
/ M5 m5 ~' C0 R. @        UF_CURVE_line_t line_coords;
( O) Q& h7 o, K" Q/ g3 y( e; m. ?        line_coords.start_point[0]=-50.0;
/ Z; S  e# `( C0 v        line_coords.start_point[1]=-50.0;
0 v' I  P8 Y/ K4 p        line_coords.start_point[2]=-50.0;
* }; F; y) U! G( F  g        line_coords.end_point[0]=50;' W$ h. |# [* V' e& p- B' `7 T$ C
        line_coords.end_point[1]=50;
) ?* V. @9 I0 Z        line_coords.end_point[2]=50;& I0 x: e  D) {8 Q8 H
        tag_t linetag=NULL_TAG;6 P9 Z9 K# k2 T* v
! A  z8 {1 n' H
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));
1 V! v/ y% \7 h$ k        //creat point
2 n. y9 U) t) }* x% f        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};
( F% t4 g5 A1 r0 |. [" E        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};& m6 e( M( p( O
        tag_t pointtag=NULL_TAG;
- x2 R) K% L2 `7 S  U4 b        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
) I- S( y  {, v  q0 h  ^, p                double start[3];
8 [+ z0 [3 j/ e( a, f: w7 c                UF_CURVE_ask_point_data(pointtag,start);( |; H  Q- @# D0 h
        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));2 X& r) `6 U( a( v% C1 A- B5 }$ u
                double end[3];0 E* U9 c) j* B6 K; N" v. Q: b4 b
                UF_CURVE_ask_point_data(pointtag,end);
. j+ u( f2 Z. r' M        char msg1[128];
) D& A1 G2 e9 P- G( c7 n4 @; i' l- l; s        char msg2[128];$ s4 q6 c/ n5 z; H/ O+ x' Y
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
9 e( x7 Q  S' w3 q. Z) s! c        uc1601(msg1,1);
7 |$ |; j9 U1 H4 p9 z$ X3 u- P+ U        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);
# m% [9 E! p+ N. H  l  W        uc1601(msg2,1);
1 f  p; u# h  \0 H0 u* [8 s& p        //mapping point from abs to wcs
5 R/ s0 B2 R/ z
8 ~9 h0 ?( g9 F- Q3 a        UF_UI_open_listing_window();
( [9 ?9 y  V& u: ^( q9 V% i        UF_UI_write_listing_window(msg1);4 r8 z3 D  G/ v: e/ T
        UF_UI_write_listing_window(msg2);
% |" Y4 l! Z3 r+ t/ i; [- c        ) y' ]- I3 K- Z5 M' Z0 M3 R
        //close& U; J' P0 _* `) M" N8 z
        UF_PART_close_all();; B& X5 T6 ?/ Q( P3 d4 Z! U

7 \2 w7 M  J( Q5 @    /* Terminate the API environment */
1 R0 y5 ~$ Q6 @# F    UF_CALL(UF_terminate());) @* N" j9 Z  e) z- i. x
}
2 ^0 x' Z7 U0 X9 T9 U0 {  ]$ F/ i0 a: Z; ]5 ?, e
/*****************************************************************************
9 }0 N2 N8 ~7 ^6 ?/ g- ?2 H**  Utilities2 Z9 @. T2 I+ @% K
*****************************************************************************/# E4 z! C! x. a" X+ ]0 [

3 \% b9 I8 Q' j: H" Q/* Unload Handler
1 z1 }: i6 j- L6 @9 Y**     This function specifies when to unload your application from Unigraphics.. J- L$ Q: t  Z: [" E. p* q
**     If your application registers a callback (from a MenuScript item or a
; Q. F$ m( r8 d1 R( J, Z/ b, g**     User Defined Object for example), this function MUST return7 g4 i; e# I# O6 L$ R! C
**     "UF_UNLOAD_UG_TERMINATE". */: Q" h  [5 l  N* N
extern int ufusr_ask_unload( void )8 `' j( {9 _7 E. f8 A) U8 }) Q+ @" I1 Z
{6 p! e6 d. X  W. I8 D6 Z) O
    return( UF_UNLOAD_IMMEDIATELY );6 L  u$ h( P3 o  ~% t* k1 M
}# L5 Y5 g( w- v0 B! r5 S& T6 D) X

7 }; y4 Q6 N+ l* \- b4 l5 x8 D5 n. W% [
上海点团信息科技有限公司,承接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 编辑 ) O: ?" P  S2 g' g2 i* G1 S

& M3 H# }- m5 JL:\1
# [0 S5 X2 a# J0 d6 R5 w  c
                               
登录/注册后可看大图

% d& f/ @" g  G7 m; ~                               
登录/注册后可看大图

4 u% Q0 w! s4 K5 O0 E4 \! ^! R                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了