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

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

[复制链接]

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

13

主题

13

回帖

275

积分

培训VIP会员

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

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

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

x
/*****************************************************************************
2 }2 C; _4 ~0 o9 ]% w! K. M**& w) @' i! n0 o( q9 M3 D0 L2 p* T; A, k2 }
** creat cly.cpp  o$ p" X6 x1 Q- E2 c
**
8 z% {8 Q/ c6 i0 n6 O7 T6 C** Description:, Y8 E" T4 Z4 c* Q% q" h
**     Contains Unigraphics entry points for the application.  W0 j: _0 w' Y* X- V
**
5 b7 {0 y, ^" G7 N! E' r2 b& n! M*****************************************************************************/
+ B$ |0 |: y5 Y+ c& j/ j3 t1 b, o# i- ?9 C8 H
/* Include files */- p& }) ]3 n" b; e) J
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
, U) n6 I6 H( i3 F  m' Q. M0 ^# B#   include <strstream>3 @8 B7 i3 D& U
#   include <iostream>( j6 h& t0 Y3 u/ l' c6 {
    using std:strstream;8 e5 t& c' ?+ k
    using std::endl;   
- V1 z7 `  `8 _* |+ f    using std::ends;
5 j8 J6 ?  ~3 K: f: q: j2 o9 q1 Z    using std::cerr;
6 M3 w, x, ~0 O#else2 M* e; }3 \: @# u8 s8 f, C- ]
#   include <strstream.h>
% O/ }$ u# d/ {' j2 V2 e5 I#   include <iostream.h>" y. A- S' @: Z; o
#endif
! |/ _6 H, |+ X7 v( T& i#include <uf.h>
7 S/ ]# e+ S# H$ R#include <uf_ui.h>
9 Y% @+ z5 N3 [#include <uf_exit.h>
/ _0 \9 P; U5 V; M( B% n#include<uf_part.h>1 [0 t9 h! r- ]/ a& \! c/ v
#include<uf_modl.h>+ F0 b# n: O7 k& n( }
#include<uf_curve.h>! {6 g9 @7 h, D7 t& F8 e7 I
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
2 t; y, b1 Z$ V6 h, |$ e8 ~8 q. ~+ _2 P  L3 [' m0 Q

* h* n4 p5 t3 y9 d" ]; T. _' v& L% Kstatic int report_error( char *file, int line, char *call, int irc)
9 \/ |  N  e! V7 K{3 ?: y, Z0 S: ^/ s0 k8 L
    if (irc)
8 |2 E# J& h& G0 v0 d+ M% T    {% r, j1 |5 `. W0 p6 J
        char err[133],
* v2 H* s# i4 ^' h             msg[133];) T' Z- O2 ~% y6 F/ l; [( h
, T9 L, O' `6 D, r
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
! v, X: ]4 V' }" w! r- o            irc, line, file);
% ~" Y+ J# Q. n+ ~) H1 s- R- N        UF_get_fail_message(irc, err);) E5 ]  G0 p) j  k* h8 H
( L* ?  k) {1 `$ V
        UF_print_syslog(msg, FALSE);
: u. q) M$ R% S" K        UF_print_syslog(err, FALSE);
! M. _( R2 q" I8 ^* U* b        UF_print_syslog("\n", FALSE);1 A4 L: H) h# c4 g2 |
        UF_print_syslog(call, FALSE);
& p8 D  T$ R. a4 {% q2 z& D* z        UF_print_syslog(";\n", FALSE);
. y8 b# e5 S% B, D, ^* n% ]3 q* K9 O# P' W
        if (!UF_UI_open_listing_window())
6 O6 h- H# [2 W' u5 U        {' p" n% |! j# a3 ?
            UF_UI_write_listing_window(msg);
2 ?% H8 z6 k; F4 b9 U            UF_UI_write_listing_window(err);
% u8 A7 P4 J! e+ K' D& G            UF_UI_write_listing_window("\n");- g% B& A9 X+ f5 ~4 f5 j
            UF_UI_write_listing_window(call);6 X6 M9 G( {7 k
            UF_UI_write_listing_window(";\n");
9 p5 g/ g  P7 A        }2 F+ g. G- ?8 j+ M8 M0 M: W. X
    }. P2 b  w5 y& g: i- |

- }# N/ t$ V- k8 E    return(irc);
4 ~# d6 T" g# z1 I/ Z; |" A}
: p+ i6 O) b: ]8 \# f# d. c; O

, T& f4 @! c+ L+ T/*****************************************************************************
5 t* G: P& l0 X+ q**  Activation Methods
/ r# R  ?' J! S( u! i" y" F*****************************************************************************/# l: [9 L# Q) \2 c& z
/*  Unigraphics Startup: `8 M3 A5 F$ ?7 v: T, F
**      This entry point activates the application at Unigraphics startup */
/ H+ S8 m: E: wextern DllExport void ufsta( char *param, int *returnCode, int rlen )
' x9 Q+ u9 X# L( O# ]{
$ p7 |* T: }8 I+ k3 D) B" H) [    /* Initialize the API environment */
- `3 \# ~$ U) x4 J" a) t    if( UF_CALL(UF_initialize()) )
, \0 I- ?( J, g% t1 b/ Z    {
+ d' v/ V, G7 i' G        /* Failed to initialize */
1 v" h% ?2 j% g        return;
  I4 V) k( e7 `7 q) p    }2 s9 |" [- V3 N( H8 E
0 L- H6 w( J1 h2 a
    /* TODO: Add your application code here */4 T/ u" S4 M+ J6 z
        6 l8 S- _! r) ]! R; c" o
        //new part' [6 K6 S$ i* `6 U/ E+ C& r  n3 x
  ?/ B* T) `+ g2 i
        tag_t parttag=NULL_TAG;9 k% L* G* R# Y  @  H

3 \: @3 R5 x1 j, k& K* B" I% H6 b        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);
0 i: F  o8 J" V6 R* D' T: W  |, ~  Z9 Q! A& U1 b. g6 [
        //creat cyl
# R5 }1 l4 B: G& H) ?* {
. L- O7 b  L8 W8 k' S; P" r                double origin [ 3 ]={0,0,0};
, E* r3 M& ^* v                char *height={"50"};
$ G8 P; X5 M- I, x# R; P: z1 E                char *diam={"100"};
0 D+ v6 o0 z" t6 v                double direction1 [ 3 ] ={1,1,1};4 H6 ~) j: ^6 Q, G6 {- r
                double direction2 [ 3 ] ={-1,-1,-1};                0 `4 N% {1 {) q7 o: {
                tag_t cylFeatureTag=NULL_TAG;
) v1 ~+ j/ [; `9 T* _1 ^. r9 Q3 k! ^2 ]5 H" y3 w6 ~
        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));& y" s" ?0 s' ]5 Y1 T
        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));& d% l8 a( r- t% O
        //creat line* s6 k) s0 s" g5 H
        UF_CURVE_line_t line_coords;/ m6 N7 l+ S- m! i) @2 c4 S; t
        line_coords.start_point[0]=-50.0;" v$ t% _( u' f& L: F. z
        line_coords.start_point[1]=-50.0;7 [3 w! U5 R6 y. _- }5 ^7 o
        line_coords.start_point[2]=-50.0;/ d/ V4 G" P0 B5 }+ q3 p
        line_coords.end_point[0]=50;* M. y2 q- f5 |9 k" g
        line_coords.end_point[1]=50;
( I5 ]6 I9 L1 q        line_coords.end_point[2]=50;, T5 g- C, h1 u2 a6 g
        tag_t linetag=NULL_TAG;' n: X5 c1 v; N! ~) g
1 d8 @  @+ _; V
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));
/ m6 C! [: x7 k+ _2 ^2 D% B        //creat point
5 q9 Q* A( [  @% v* f* H2 G        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};4 G( g! u; T7 e( K4 s
        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};" u( P# F9 ]7 h! q% E
        tag_t pointtag=NULL_TAG;7 C$ t7 Q7 L. }/ r) ?- f0 P+ I
        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
8 d3 ^/ A! _' `5 ?+ C  {9 H/ n                double start[3];9 }- R4 _$ m4 p1 ^' J( _
                UF_CURVE_ask_point_data(pointtag,start);
3 [" V) m' s! s2 Z* G! I        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));7 c1 r9 [; ~: |: H- g; e8 e6 K: V
                double end[3];8 S) ^8 A) O- p7 K- y
                UF_CURVE_ask_point_data(pointtag,end);
- }! @3 l3 U! Z6 r; x+ \# M        char msg1[128];
4 G+ C8 n5 Q  K: H        char msg2[128];% Z4 c, V) m' |* {
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
  `% l' N5 T. L        uc1601(msg1,1);6 t* l# X/ a2 a! U3 S! }/ v/ \
        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);
6 m% A# P( |) [        uc1601(msg2,1);
5 C" r: Z1 p$ z9 a7 b        //mapping point from abs to wcs# \3 \: W; d& n" }9 R( m
) z% D0 y" {- n- T
        UF_UI_open_listing_window();
4 l2 O% d. L1 ^. O        UF_UI_write_listing_window(msg1);& l- s: O- i- R0 m& F- `# W
        UF_UI_write_listing_window(msg2);8 ?" a) e3 a. `1 l5 Y" P
        , m  g: q# j- K! g
        //close
" x+ w( g9 u5 Z2 r" o0 |. w        UF_PART_close_all();$ N! |( |* _8 u# @# S* O

. R# |3 F4 K8 V/ X% j5 j! [    /* Terminate the API environment */5 M7 {$ M( \. N! l
    UF_CALL(UF_terminate());. v% r( @1 y6 m) l
}! G9 G0 e2 E/ r7 H* i

5 b6 S) s' R# r9 u9 e# u: q/*****************************************************************************
. |6 ]+ p0 \1 O3 B**  Utilities) i, o6 `9 _2 [; ]+ d/ }+ S# j
*****************************************************************************/
9 ~9 {( k0 z+ E/ H  Q: J6 W7 A, _% w% E
/* Unload Handler& [! f* q6 x, j
**     This function specifies when to unload your application from Unigraphics.
2 N6 c5 M. F; {: p  L& e**     If your application registers a callback (from a MenuScript item or a
9 C" ^+ q) X$ t) l( E( n**     User Defined Object for example), this function MUST return' A! G( I3 g! B  t5 \& S. S& N9 b! v
**     "UF_UNLOAD_UG_TERMINATE". */
0 M6 \# M$ R' u6 Z; textern int ufusr_ask_unload( void )
+ E- s6 q; b8 I4 E{
& w7 v7 e1 ^6 p% e. ?# F7 x# N    return( UF_UNLOAD_IMMEDIATELY );$ U2 d5 D& k# v' y) g, Z
}
* v% X5 n8 E( E# [1 I3 m+ T1 Z' `; Y) Q& E) y8 C- R, `6 F" @

1 ~, {1 Q4 q$ C5 p9 G
上海点团信息科技有限公司,承接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 编辑
) u, x* ~  W; h, q
3 s4 L2 o' n" ~" SL:\1
: O4 N" Z; y% Z" ^
                               
登录/注册后可看大图
. O' A+ a/ e3 r+ i, b
                               
登录/注册后可看大图

6 c# H# }& H  _3 y- x                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了