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

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

[复制链接]

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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************
! y% x6 B- ]6 q7 d; o1 s: t5 ]6 D**
1 V, K, H6 `9 Y  R+ X! c1 H. P** creat cly.cpp
. Q: ]- o: S: R9 J/ s**3 y# m# Z4 P8 h* L( k. U+ b
** Description:
( m: a# I6 c& k; `" T$ t4 W**     Contains Unigraphics entry points for the application.+ i" s; d) T$ C  [# u% ]
**4 x" _" m& y/ j" W! q
*****************************************************************************/6 o8 I9 m& L* M( ~% u/ E: P

+ Q7 D2 `) }; S$ a9 s- y" c/* Include files */  k6 X( u0 G/ ^6 }! N# z5 N$ K5 s, {
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )/ g5 W  w/ s3 e" ~% e! v7 m) L4 J, T
#   include <strstream>
$ ?/ a( ~5 o2 r, n7 T#   include <iostream>
) X2 R0 m" `& s1 M; o4 g) K1 Y3 v    using std:strstream;
2 R* W" ^2 \9 f! v    using std::endl;   
1 P& ]  J! N5 k+ {( I% Q; n1 k! a    using std::ends;
+ B7 ]3 Y' ?9 X* @9 d    using std::cerr;
; M2 E, l$ h. A  `#else
1 n; U) n- k  L, o. Z9 s#   include <strstream.h>7 g: x. i8 u3 c$ i& z+ T5 k
#   include <iostream.h>
8 G4 g% c# `1 [#endif' Z, N0 ]9 |3 U# s
#include <uf.h>
- y) n% S6 R$ P, Y' D$ t# ~1 }  @#include <uf_ui.h>2 M$ M2 x0 F( y; s" b
#include <uf_exit.h>2 }4 G5 \, `) N  \( d7 p
#include<uf_part.h>/ _2 A2 b- e1 o' C( m" o) ^
#include<uf_modl.h>, k4 K# M' U! E( F
#include<uf_curve.h>- m& i3 P1 k9 _, E
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))9 R! f4 W% D- q- J
) m. r  L* Y. i9 a$ D6 o. P! D) @0 R

- {5 g" g. F0 W8 D, g$ {static int report_error( char *file, int line, char *call, int irc)
4 G: b- R4 x( ?+ }{; s' B. @8 Z& e  Q3 ~' `. e9 P
    if (irc)
5 R) h4 g& A8 V* O0 q    {
& H0 ~2 l1 R! c! L3 ]9 _        char err[133],, n0 e, H2 Q% r( r; Q
             msg[133];
! n! E( O6 R1 D4 E- }
* ?" [- `, I3 L        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ "," |, y% }% b3 Z4 I9 R
            irc, line, file);$ v! `8 a8 u0 G+ c6 N: o2 d
        UF_get_fail_message(irc, err);# e- Q/ Q3 y# U

% N9 S) P0 ]6 |" K9 p7 O+ E        UF_print_syslog(msg, FALSE);. {( Z  F% M/ t4 w% a
        UF_print_syslog(err, FALSE);
) r: c2 o5 ^+ _1 u$ b; E) D. S        UF_print_syslog("\n", FALSE);8 x7 @. E, H$ T7 j, P2 D
        UF_print_syslog(call, FALSE);4 e) Z6 b6 h( v  R* f; Y
        UF_print_syslog(";\n", FALSE);5 u4 y: t' q9 p$ l  H

+ L: P) R. o7 x        if (!UF_UI_open_listing_window())/ }+ ~1 g8 b' R* v9 k4 |
        {
- P* ~# u2 }* U' m            UF_UI_write_listing_window(msg);
2 W. ~  E! a/ s' u& O            UF_UI_write_listing_window(err);9 C' T- x' L0 O" X
            UF_UI_write_listing_window("\n");
( y! X/ G; e, C% [9 q* L            UF_UI_write_listing_window(call);
1 @7 L- Y5 Q# e' `            UF_UI_write_listing_window(";\n");9 {- E8 p3 P2 I6 P, D: t/ d
        }
+ U2 ^6 n: p  @0 X5 r- m    }% c" h3 y5 l, b

+ L8 J7 C. F8 c7 K" n0 ^    return(irc);' J& [6 R5 C0 w, h" M4 U
}
" ?( n% z) ?1 ~8 B% L8 h2 [& {" \" [
! T, S. }4 {  x2 w# s) g
/*****************************************************************************7 c- w  x0 T5 F. ^# r/ ]9 l
**  Activation Methods
7 ]$ m% Z* h) S5 @*****************************************************************************/
* i/ M% g) v0 Y$ ~+ r/*  Unigraphics Startup- ]8 B' x, J7 Y, ?
**      This entry point activates the application at Unigraphics startup */
( u) I3 N# @* u8 Bextern DllExport void ufsta( char *param, int *returnCode, int rlen )7 }3 E  X; ]+ G! c- }$ g
{
" T/ h* k. N* j' v    /* Initialize the API environment */
0 \7 v6 E, E+ n) W; m+ ^    if( UF_CALL(UF_initialize()) ) 9 Y0 Y) K, q0 E+ t! M  |
    {
9 p( b6 M+ v4 N8 S* v, W        /* Failed to initialize */  V7 P. }7 f- `2 c+ I/ k4 i
        return;6 H$ C8 K6 t6 }( r( K' H
    }
8 o. {! g" j* Y! d  R
! P7 N2 D* r/ j( A7 m% g/ [    /* TODO: Add your application code here */6 J0 N$ Z1 A& @' h( P! U; O5 ^
       
$ b  P3 O/ P& G3 u' c        //new part
5 z4 [2 L  C+ I
% m- u: @, }9 y: a  R        tag_t parttag=NULL_TAG;
! n! Y4 ]8 J6 B4 E6 S% q3 w
3 J6 X7 s/ {3 b8 Y( Y        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);
0 }: ]4 i# L( a$ f& z' U  G8 J1 s9 F1 I: ]
        //creat cyl/ a1 N/ o7 ~7 o2 W, O% X+ L3 J! O

4 C1 p+ U3 P+ F3 a2 f8 e                double origin [ 3 ]={0,0,0};0 q7 Q& b  d, B  g
                char *height={"50"};
5 T$ p, o* K1 M  P2 O                char *diam={"100"};# u  ^, b- N% [5 l
                double direction1 [ 3 ] ={1,1,1};! e# W$ E' H! D% z5 p& P
                double direction2 [ 3 ] ={-1,-1,-1};               
2 x% i( Z9 Z5 K: `. X3 u9 W                tag_t cylFeatureTag=NULL_TAG;8 P6 w2 h. e- b& o( ?9 \

4 R) ?/ z3 [4 \3 U        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));
7 [8 |- g* R0 H4 N7 C        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));+ B) ]% |) o* I' S/ B! O! K. T  l
        //creat line
% n- k% `5 R% e, H- X- b$ a        UF_CURVE_line_t line_coords;( x1 ~+ ^- f, |" |
        line_coords.start_point[0]=-50.0;
$ o9 l1 s$ j) F* u( E        line_coords.start_point[1]=-50.0;3 g5 p- j# q: A; l; M* Y! S$ l% e
        line_coords.start_point[2]=-50.0;( n6 ?' J8 y7 X% P
        line_coords.end_point[0]=50;
# c0 Q" P# B6 \1 G% M/ v4 T        line_coords.end_point[1]=50;$ ?/ D( S6 s3 H- Z
        line_coords.end_point[2]=50;+ S$ i: P5 ]/ n- D/ p* x
        tag_t linetag=NULL_TAG;/ \% _9 V* g' q0 g- O
  |" @0 p$ B7 `3 w
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));
2 {: }& ?( ]$ o0 W. t9 v0 b2 ]        //creat point
# {$ r+ r% q5 H( X! J: N        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};
7 q- n5 _9 U  k) Z4 ?/ j        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};
* U$ ]! v% O, \1 w        tag_t pointtag=NULL_TAG;
1 M. s- ~" j: [8 l& Y/ i! C6 s        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));9 Q: P4 ]! O/ g
                double start[3];1 M$ n8 t9 O/ ^8 K2 Q- _5 J; W* s& y
                UF_CURVE_ask_point_data(pointtag,start);$ ]6 R. M0 E; E% |
        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));: q7 U# A- B( V8 q: V: R' c
                double end[3];% V$ j4 Q  M0 S3 g
                UF_CURVE_ask_point_data(pointtag,end);
7 c: s! u6 N8 p. d, ^        char msg1[128];: V" [9 n$ \' N8 I7 t$ w
        char msg2[128];# z% R+ ^- E$ t6 E* m
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);( U. x4 F& i. L, ^- G& s
        uc1601(msg1,1);% ?7 i* g: A2 T: g3 _0 D
        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);9 k# m, ~  f* t6 c& Z
        uc1601(msg2,1);
( M; g; P7 d3 S; c8 t3 |        //mapping point from abs to wcs
+ Y6 J) L) c: _7 ]' D$ H! v( A" Y. R8 G, D. R2 q9 Y4 E
        UF_UI_open_listing_window();
4 z- s5 _+ i/ [0 ]2 s        UF_UI_write_listing_window(msg1);5 A: F/ U3 r6 ^& b
        UF_UI_write_listing_window(msg2);
2 a; {" y. S' \       
8 }6 j4 p5 h' F+ J        //close3 b# a# v1 N9 d
        UF_PART_close_all();) i. U5 b4 M. f8 }8 F! ]

& b: n, f  Y+ w8 O    /* Terminate the API environment */# ]9 l5 s3 w" s
    UF_CALL(UF_terminate());
" X: u$ j; y" J4 M}
; i+ A7 R9 L7 d! @) b
% j. V& M/ T/ g8 t5 _; c/*****************************************************************************
2 ^0 @+ }# D0 {6 v6 Z8 U; V) `9 J**  Utilities2 q6 }; o/ N) b: ~' W; @
*****************************************************************************/
7 q7 Q# Q) ]" y4 q! p2 i! Q# D# ~; K$ q: [
/* Unload Handler
0 U/ I' A- ]" F) V**     This function specifies when to unload your application from Unigraphics.
. g6 A4 l6 U$ P. E1 _8 [' T  I**     If your application registers a callback (from a MenuScript item or a' |3 i# f( i& R; J
**     User Defined Object for example), this function MUST return
% D$ {+ ?( E8 z8 P7 M# I**     "UF_UNLOAD_UG_TERMINATE". */
: s5 c- _5 t. F3 k6 Y9 Hextern int ufusr_ask_unload( void )
) a- ]& z/ [; d' j( J{" `; A) I6 n+ A6 E. ^) l) j; k) O$ G
    return( UF_UNLOAD_IMMEDIATELY );9 @! x  M: a' S) B/ y4 m' @
}) a7 e) b4 K. A- ?
$ @4 y3 ]( i& z$ x% `& E

. }7 A3 B& W0 P+ z
上海点团信息科技有限公司,承接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 编辑 # C! v! S1 P0 |9 e7 m

5 {' z7 z: @) W+ aL:\1
" H$ Q! i% Y, a# Q7 Q! ^- \
                               
登录/注册后可看大图
, z, h6 i. j) f9 D; F: i' Z
                               
登录/注册后可看大图
& z# p0 f- _" w
                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了