PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************  s/ {& p9 y, N5 b& @" H6 o2 ]" v# _
**' h2 r8 K% n9 C! ~
** creat cly.cpp
2 B6 s; T; U: V**0 K7 T9 u/ {$ `, b. S. ~+ m$ F
** Description:9 j( @. F( A; r3 {3 g) ~
**     Contains Unigraphics entry points for the application.
' w9 ?: [* F6 `' r2 `2 \' k6 R**
9 H7 @$ m) Z; k$ F( @*****************************************************************************/
; ^8 K7 s, E0 v* j+ L" j7 M
% N5 @/ }2 r/ m5 ~0 W/* Include files */, W. M3 `- C9 U/ P- T( p( V
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
7 R" S+ c" `" ?8 W' O* i#   include <strstream>5 J+ j6 B5 k0 @4 g! }- v
#   include <iostream>6 L* S5 j8 J' b( U
    using std:strstream;
. |; N1 y' d7 H- N5 N( B$ }/ e    using std::endl;   
. a) L; f0 K4 O$ `! i    using std::ends;
2 o0 N4 R- X9 d1 d$ t5 e: L    using std::cerr;8 f: i3 M) _: M: |' V3 X8 R
#else  ~1 o0 W  S! D1 o7 R, O/ e
#   include <strstream.h>
! N- B1 p$ \/ [1 t; a4 s  h- u#   include <iostream.h>
9 `$ S3 ^( M: v7 i5 C6 y#endif' v7 o% Z$ N7 r9 B  u
#include <uf.h>/ N6 f- m1 v* t9 Q" R
#include <uf_ui.h>9 s6 h9 l3 u2 R5 W1 R- K8 S/ f, I
#include <uf_exit.h>  V3 A0 a1 N9 K6 V  q, X
#include<uf_part.h>
$ j- [, C' h: K% T% H. I#include<uf_modl.h>
' Q, `, f2 i' W, G9 H#include<uf_curve.h>+ e, ^% z7 N7 s7 U$ }3 z* U: P7 R6 p5 y
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
& r; |) W7 L; v9 A1 M: j- i
/ `9 P' A! |+ Q( t6 S# _/ e! C1 U5 w9 z+ {6 {1 g0 O3 b
static int report_error( char *file, int line, char *call, int irc)
1 n9 ]0 q3 r/ S4 N9 ]# b1 ?$ x% p) w{. @2 |  z' ^* H7 b* l% j
    if (irc)& h: g4 }1 {7 Q+ U
    {. K; \) k9 Z' T0 O$ Y
        char err[133],
! G- ^* g+ [8 T# }' L5 S             msg[133];
8 u2 e) h& O* y* Z- Q9 j$ Z4 a. G/ ^* Q7 @
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",; q- ^6 g- o" \$ |
            irc, line, file);! P. s: D) e; F
        UF_get_fail_message(irc, err);
/ ~4 Q+ V, C- i$ O+ |) [
. n7 G9 F  ]8 f( ~        UF_print_syslog(msg, FALSE);' w$ H0 P  G3 S3 H, ~
        UF_print_syslog(err, FALSE);4 u9 l; h, a) {
        UF_print_syslog("\n", FALSE);# F4 g# l# z2 A- A/ A0 {
        UF_print_syslog(call, FALSE);
: R7 t; K( U9 U; ]+ T        UF_print_syslog(";\n", FALSE);1 {* y4 [4 a: r1 [# f! Z
8 z- K6 _+ }: i# f; c
        if (!UF_UI_open_listing_window())
) s! u  m9 K  C4 x* [/ O        {
- p. r/ p/ w( ~9 e            UF_UI_write_listing_window(msg);& q% ~- [- l: [$ d1 G+ L9 m3 \9 ?5 N
            UF_UI_write_listing_window(err);
4 G* j% c6 f& U# t& O- F1 z! q3 b            UF_UI_write_listing_window("\n");
: @8 U1 q! }) H( i/ V: c' r+ n8 f            UF_UI_write_listing_window(call);. L0 y6 \! D5 l  O9 v3 q% Y
            UF_UI_write_listing_window(";\n");! z0 V& K/ c7 O
        }
  G  W( p$ A; t% u; A5 f7 N6 U( a  Q    }
- H% D% X; u: F
' n% ^- k, j- M; F    return(irc);
. h8 D+ x- y/ j2 x( n4 K# R}
# m7 F! z0 g( m4 {3 R  V( D% Q" D2 l1 F! w) R
2 C# X, T9 a- H3 [. j$ [! L; k
/*****************************************************************************
. h% P# b+ c- x, Y8 m' N( B- m/ z**  Activation Methods
5 t+ N/ q2 W* P6 R, }& d" T6 }*****************************************************************************/
# @9 _$ |( q0 d; Z* E+ G- K/*  Unigraphics Startup+ ^6 Y1 y5 r3 [$ V7 y! q; ^
**      This entry point activates the application at Unigraphics startup */
' E3 c* X9 H  R0 L( g8 ^extern DllExport void ufsta( char *param, int *returnCode, int rlen )
# X4 ^/ V3 E" [& ~1 r' K& F( q* l/ r+ I2 |{
) N8 R9 O* l1 J* o    /* Initialize the API environment */
* |8 {' s7 ?" f  ^, o: l    if( UF_CALL(UF_initialize()) ) 2 t' i- X2 b5 F* v) `" f
    {8 G- |4 b" f; l7 ?7 M8 J
        /* Failed to initialize */
5 x$ ^& v* S* i9 h8 ?        return;
& v6 j' q6 @' y$ ]9 A. C    }' J+ h0 V3 J1 g% W2 J! G

, K& X0 X+ \/ Q5 ?    /* TODO: Add your application code here */* v0 C3 D& s2 F) y
        5 {* f  d; K6 P0 h7 u: g
        //new part3 w. d' A. m: A% b2 ?
, M2 j5 w" H% o9 ^
        tag_t parttag=NULL_TAG;
$ K/ g0 t! ]+ t& M
- _: h3 S% e2 t+ s1 F5 v, A        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);* c9 I1 x/ `/ n; a9 ~
$ u/ {7 k  g: z* ^
        //creat cyl
* Y3 Y3 T# \- R$ [) [- p+ l$ q6 D
  A7 g- e( D2 s& I3 ]8 m- @1 P                double origin [ 3 ]={0,0,0};
( `) ]. k% k2 s) _                char *height={"50"};6 P4 R3 B( m' f# [
                char *diam={"100"};
4 P9 h  @# t0 p! V% v                double direction1 [ 3 ] ={1,1,1};2 o+ w" y0 a: ~9 v
                double direction2 [ 3 ] ={-1,-1,-1};                , ]8 b* q( v$ T' B$ D
                tag_t cylFeatureTag=NULL_TAG;" p, T- K6 q6 X/ t9 w
8 `+ r3 I" p, b; j+ D7 A; Q/ U, `
        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));
* q! ~. M$ O2 R, o        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));) Y4 E+ j! |2 Q- a
        //creat line; L1 w+ ]' A+ k3 v4 S' [  h# J
        UF_CURVE_line_t line_coords;) M% `4 j) h. U, u* }. {
        line_coords.start_point[0]=-50.0;  W/ }5 d& m. J" k  s% c8 @7 w
        line_coords.start_point[1]=-50.0;3 Q/ v$ V+ h1 U
        line_coords.start_point[2]=-50.0;' I. ?/ T2 {. h
        line_coords.end_point[0]=50;
1 S% T/ P/ ~$ s  z2 O        line_coords.end_point[1]=50;
" n( v0 m1 b$ d' f        line_coords.end_point[2]=50;
3 ~5 Y6 U& _5 ]8 h) A% y4 d7 W* G, L        tag_t linetag=NULL_TAG;* Y8 J6 i4 u. b! V7 a6 L5 M6 ^2 t
' k- _  S& D% R" K. H9 t+ t
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));- M# s: I' G3 J: u6 D# e
        //creat point
8 N) p+ `/ W" j5 e2 i  L        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};
$ Y( q) Z8 F. @        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};, r9 Y& f" |9 `9 \5 Q" F4 p5 ]
        tag_t pointtag=NULL_TAG;+ p# A' p/ v1 y4 X  f/ T
        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
6 X/ K0 p2 s4 E                double start[3];5 p! @, d  k# _3 i
                UF_CURVE_ask_point_data(pointtag,start);
* O# h8 B& V. y        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));: u* c4 s. L7 O/ ?+ N
                double end[3];
  P3 Q. ~* h8 {                UF_CURVE_ask_point_data(pointtag,end);
8 h# R" U  W; X1 ?: h$ U& D# S        char msg1[128];
* M. N$ U7 E& e2 E( ^1 N4 R        char msg2[128];
* ]2 g& h8 w2 x& P8 c* Q        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
5 A. p* h1 m5 i3 \        uc1601(msg1,1);
* f+ v$ ^& [% }7 l, L! v( v        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);
, [) q. \2 w1 t7 M5 G        uc1601(msg2,1);
& Q: J1 e/ V4 `; v        //mapping point from abs to wcs8 {8 e& O* u0 b4 j3 r

) v$ c5 Q6 m# k+ @9 ?        UF_UI_open_listing_window();
4 g* |1 C# E* s$ R, A8 y        UF_UI_write_listing_window(msg1);  w7 z2 \3 _- w* e, k/ E# v
        UF_UI_write_listing_window(msg2);
) N& D! r$ b" i        . Y' ~' w5 ]  g% Q
        //close$ q% V: W1 o/ J8 X8 r
        UF_PART_close_all();
( H5 v' g, f1 N4 B5 ]' u! H$ ^. y8 H; `# o! N# t
    /* Terminate the API environment */
6 i3 e/ c5 ~( q$ f    UF_CALL(UF_terminate());( D# O8 Z0 a2 G% P) W) V
}
$ M3 D8 g' T: ]9 Z
$ Q, G- `  R6 d( y+ Y/*****************************************************************************
9 G+ }  u( ?8 |7 F1 p**  Utilities& p! x5 [# h0 o# j5 i) x) _
*****************************************************************************/
' O+ z; k! e/ A5 f$ x( x9 ]
% V2 E! U- g' Q. a. m/* Unload Handler  n. F* d$ i2 p
**     This function specifies when to unload your application from Unigraphics.8 o6 x" T) j9 [2 d
**     If your application registers a callback (from a MenuScript item or a* o3 D3 M) {) Q
**     User Defined Object for example), this function MUST return
# K% F/ N- Q1 L$ P' b**     "UF_UNLOAD_UG_TERMINATE". */
" f1 F8 a8 q/ k4 _extern int ufusr_ask_unload( void )
" b2 e8 J/ X. X4 r{
: b7 o* C6 c& k" g. o6 b% Z    return( UF_UNLOAD_IMMEDIATELY );
; |$ ^9 `; e- u8 _7 a}% a1 k, K7 p- W* ?  x
6 U, }, L" I! K* q& x8 W$ M
5 e4 S* v! h3 I, W4 k: @6 J
上海点团信息科技有限公司,承接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 编辑 2 j5 r2 E' v* O7 \( B1 v) t! T6 Q  m) L
( |. \  `8 u0 z5 i, ^5 f5 l, l* F
L:\1
2 i( r  W* X) n7 T( b6 ^! z
                               
登录/注册后可看大图

2 Q! b9 X( V. d$ W- N* t* y                               
登录/注册后可看大图

0 x' B: I/ k5 |) c, l  P' L                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了