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

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

[复制链接]

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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************$ ^2 d* E9 {8 v
**
, v1 ^6 s# y' g7 Y7 Y** creat cly.cpp
' |( O. y7 h9 [, ^**/ G! K# x2 l; c, C2 P1 s
** Description:
7 R9 R" f2 l+ _& G5 ~**     Contains Unigraphics entry points for the application.
, B( u/ e# b% I- x2 h) m& x**9 u* L/ _& j' q' B" }
*****************************************************************************/  e  [" |1 Y8 x' w/ _+ z5 x
# T1 i3 F! _* X
/* Include files */
( w3 t3 l! c8 n$ Q#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )! d+ |$ j) X" i9 D. O- M
#   include <strstream>$ v6 Q& F+ c: }5 y- _7 C
#   include <iostream>7 q' F7 u7 ?9 D1 o8 b! Y
    using std:strstream;
0 c2 h3 z$ y2 n( e; t, A! o    using std::endl;    # a( }) y. h3 p8 H0 ^2 N: [& e& }  k
    using std::ends;
% {1 b/ O+ \8 g    using std::cerr;
6 o" x! ~+ J, f2 v# G#else4 A4 y; U: R7 i% D. @* Q" K( W& f
#   include <strstream.h>
  x- H% q3 n" M; v#   include <iostream.h>! s( B; z, C" ^& @. i' x9 T) Q
#endif
+ f) N6 i% A. C9 ?/ X#include <uf.h>
* t$ Y4 o' t3 c* Y5 ?: E: b8 z#include <uf_ui.h>
( R, }4 N! M( j: E#include <uf_exit.h>! }1 e3 D' t. s: }  p) l( S
#include<uf_part.h>
$ ^! L7 F4 P  c8 d# J* p#include<uf_modl.h>
7 k4 ^) b" K4 q9 m/ L3 ^* A+ m#include<uf_curve.h># J5 P3 Z+ f6 d3 o; k7 B3 W& A
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))% H! ]$ ^* X6 o1 C2 Y) S6 I

" y5 f6 f& Z" g! H. S" z. R+ T; c5 B: j8 T
static int report_error( char *file, int line, char *call, int irc)
! y6 B% k: e8 g/ a$ J# b8 ]9 o{
& U5 H+ J& u5 j6 e# |    if (irc)1 i8 m) P) ~: j5 D
    {3 k& D7 N/ e) `$ v; k" b; I
        char err[133],
: A! [) b" H9 n* H8 w; Q, \             msg[133];8 V. H3 k. z9 M% E

. ^% s) p: v# y) l1 _7 \9 s& o        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
- K5 l8 Z* Y; G+ {            irc, line, file);3 T: W& l( h/ x2 S+ [8 T7 I7 m
        UF_get_fail_message(irc, err);
5 Q0 |' A) t+ R% v0 Q1 D7 L6 U7 v; v
2 x( o( i& b0 |        UF_print_syslog(msg, FALSE);
, ?# ], {! L$ `3 g. U6 }2 U        UF_print_syslog(err, FALSE);
! }6 l* a) S) J5 m* g- O: V- H$ l        UF_print_syslog("\n", FALSE);! p- D# C5 u% x' v" Q
        UF_print_syslog(call, FALSE);
' Z& U' Q9 U/ t6 a) t        UF_print_syslog(";\n", FALSE);: f* S# @, x- Z& k
. i% F/ R! J) A: v  j( D& ?
        if (!UF_UI_open_listing_window())
! i! m  Q6 v0 r        {
1 |% R9 b2 m) \# A            UF_UI_write_listing_window(msg);" }8 h$ M4 K2 I7 Z+ P6 W. a
            UF_UI_write_listing_window(err);
! }; f7 S0 F3 z. N* F; c( @            UF_UI_write_listing_window("\n");
6 ]3 J- n- j  B  ^. |; D) e" }            UF_UI_write_listing_window(call);/ v  p+ l3 G' |& x' [& N( _
            UF_UI_write_listing_window(";\n");4 R  C7 D- ?. \6 l+ f
        }
, U& `0 q6 i& ^. a- X0 q9 |    }% r7 P: f, a; ~5 J$ ~- U6 x
( L) R( J- P6 y6 B% @* u$ @% ^. E
    return(irc);  o+ @: g( q2 K3 c# J
}  B2 i4 b- [4 n! C
: L; j, c9 {+ f: b: I; \) g2 _6 i

$ T/ x4 ~8 d& v2 t& a/*****************************************************************************8 l. ^; [; ~7 U) V- P
**  Activation Methods6 O/ e! Y4 ]* A( e+ {) e, z' B
*****************************************************************************/) y  J6 a  I0 H4 R2 t3 B% t
/*  Unigraphics Startup2 o/ b/ n+ l+ E1 Z2 [
**      This entry point activates the application at Unigraphics startup */
7 k$ x, p, e8 }9 t! lextern DllExport void ufsta( char *param, int *returnCode, int rlen )& }+ s  {0 p0 v) W% ~
{
  ]5 z4 O, R6 [: V    /* Initialize the API environment */
$ I/ `; k/ K3 p" j) l6 O2 K    if( UF_CALL(UF_initialize()) )
( w( q% w% b; `6 b! r) j  D    {0 h) T1 ]% e8 V8 _: `% o
        /* Failed to initialize */
% S( O9 P3 }9 J. p" k1 W/ ]' m        return;
; q$ ]! h! ]8 C, S% h; V" m2 l5 P    }
, G' P' i5 v( M6 t+ H
# ?; @& \4 a9 j, h* C& l. s    /* TODO: Add your application code here */
' @9 m; s& E& o! J; K, G3 A2 \       
9 r+ v5 {8 G. [6 N        //new part$ N* {8 A+ i9 F+ ^. O% j6 w
$ [& Y5 L2 K  E* _
        tag_t parttag=NULL_TAG;
/ {0 Q$ q) m+ {! \9 }$ D
7 x! b& D, e$ O* {/ q        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);7 [) y% m5 ~& F: E6 ^$ |
5 d5 Q" T- J* O- D
        //creat cyl" c' a3 o8 b0 `. Y# K: R9 y6 ]

/ `4 Q) T8 w5 l3 u/ `                double origin [ 3 ]={0,0,0};
; D4 N: V1 y* O9 \5 f; h$ O                char *height={"50"};
: P& Y, _2 s7 ]* X. ?! e# Z                char *diam={"100"};" t0 \, ^6 c  E8 [
                double direction1 [ 3 ] ={1,1,1};' \* l" E( Z! N5 e# Y
                double direction2 [ 3 ] ={-1,-1,-1};                6 l; r0 D$ I$ N# Q' \
                tag_t cylFeatureTag=NULL_TAG;7 r, F. \2 _  `3 q8 F! u

* F/ G7 J. L/ h0 d( q        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));
% N; C% U' N/ @. N        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));" \& N6 S" I' [
        //creat line7 j+ J. [; U  ?5 f
        UF_CURVE_line_t line_coords;
7 x4 K( ~  b  [. H# q# V) Z/ h7 S        line_coords.start_point[0]=-50.0;
+ _1 Z& a- f; C% d7 E        line_coords.start_point[1]=-50.0;
5 S# E1 ?; \4 D; q" |% n1 K+ l9 o        line_coords.start_point[2]=-50.0;
  _% ]% r4 Y0 K3 Z- d3 Z0 ?        line_coords.end_point[0]=50;( S; X( ?% p( k$ h/ S% u
        line_coords.end_point[1]=50;
$ w- ]1 G1 B6 V% n7 x        line_coords.end_point[2]=50;5 m6 u! U7 C1 y& n8 Q
        tag_t linetag=NULL_TAG;
4 y3 {* I' K0 j0 H3 i& z6 ?$ f9 g9 e' L3 F. J4 C
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));
6 i# n4 b6 t' i) T- `9 k* T2 p; ~" Z        //creat point* W3 A4 h3 z1 ~3 f; a4 A
        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};
" q9 N) S6 U) g* p* j( g        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};- u: l. c/ K: s
        tag_t pointtag=NULL_TAG;
9 Y- O- s1 ]# i7 P1 H. H        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));7 V% \6 _3 E+ J2 l
                double start[3];4 C' @* P9 H  J
                UF_CURVE_ask_point_data(pointtag,start);
7 A. Q) a: o; m$ L% p7 V        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));  i! |5 p4 R0 V3 l% g
                double end[3];7 c6 r4 p  ~" T) G; K' J; U
                UF_CURVE_ask_point_data(pointtag,end);
  l. u$ N8 j5 e! f+ a' Q. v! d        char msg1[128];! z  o! X/ w4 ^1 h5 V4 n" {  p- h
        char msg2[128];+ b2 s/ I: q4 ]  J, W
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);; ]+ a; y3 Q4 O- B
        uc1601(msg1,1);. ?5 _' V8 n  b8 E5 n. o' V
        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);% l5 w& b4 y. r% v) n1 h3 B2 @
        uc1601(msg2,1);
; z8 O" h2 K+ L( X) q  A        //mapping point from abs to wcs
& h9 J3 Y& b* K9 [( J
; g% o/ _" m+ O/ q+ }3 {        UF_UI_open_listing_window();. |% V) x; g; `8 Y  h: q; K  {
        UF_UI_write_listing_window(msg1);$ i$ `! i% N9 t9 f/ q2 D# X
        UF_UI_write_listing_window(msg2);' p1 W5 G) a7 Y5 g& w
       
4 h- X$ R! Y% G        //close# m$ W; V" W' ]) u9 f
        UF_PART_close_all();
+ @8 s& o9 @$ O/ K, u3 V
$ w! d: F! _- a9 c' }4 @" h. O    /* Terminate the API environment */
: ?) ?& x+ E: C+ S- r- l7 X9 H    UF_CALL(UF_terminate());
; A2 a9 g$ G( e4 z1 s7 W) D7 x+ |}' |  D: [# v5 [5 Q

, O7 e+ L# @! E% H0 B) o" M/*****************************************************************************
. G) G0 O& y  K( I. r**  Utilities& |/ Y  G; o% J4 U+ p0 a
*****************************************************************************/
8 y( C! L7 b0 Z. i. e/ I8 |0 A' H+ F3 ?4 }6 K& @
/* Unload Handler  o, f/ D6 v% n. F* Y, B4 x1 D% H
**     This function specifies when to unload your application from Unigraphics.
% H% `, S  C& ^4 b**     If your application registers a callback (from a MenuScript item or a1 g; Z! {9 J: b1 B
**     User Defined Object for example), this function MUST return# D% h5 _; h  L
**     "UF_UNLOAD_UG_TERMINATE". */
* F. I: X) L& _% P  h. Uextern int ufusr_ask_unload( void )0 N6 }+ H# I& X) z' X9 `
{
( k) A  `+ C7 z3 d0 Q- `    return( UF_UNLOAD_IMMEDIATELY );  |2 _( V0 \* W3 G0 u+ u) g) {! j
}0 s/ x: e4 T# X
9 r. h9 r  r% m  i& n# W
4 }! \3 }/ R+ {5 y
上海点团信息科技有限公司,承接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 编辑 $ t9 R! b- _& y4 K

" K; z" M$ A# T4 }- e  G0 L* X. @L:\1

: g$ C; g- A  p8 P  V                               
登录/注册后可看大图

5 j7 i+ U; M  b% G                               
登录/注册后可看大图
. d8 V6 M, a% q% b$ G1 _: G* `7 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二次开发专题模块培训报名开始啦

    我知道了