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

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

[复制链接]

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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************
. A7 Q3 `; }! t2 l**" b) K) I  o" T
** creat cly.cpp& C1 O$ S( s2 H% j1 E5 N
**
0 V) M2 G7 N( c0 Q0 [) V$ ^3 I** Description:
4 q, }5 x* u% O4 e( \* d& u**     Contains Unigraphics entry points for the application.0 W, x4 k' Y( }) H! Z
**# h; i1 t0 H6 N& N: c3 ^6 [
*****************************************************************************/
# G5 `5 a* A+ ]5 ?6 T1 a, e% X) R0 ~$ w3 U# Q- Q
/* Include files */) A0 J/ a9 M8 o, @$ h7 l
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )8 i4 V- l% z0 v$ l4 b& _
#   include <strstream>" V8 W7 J" }! D' D( l$ C' d% g8 w8 o
#   include <iostream>
% `/ `# q2 S! I& ^9 h# v- W# O    using std:strstream;
' K* K( Z/ u* d& `1 C$ @    using std::endl;   
  |0 B6 c3 u: c& \0 L/ M    using std::ends;
8 B- [( t5 O1 g0 J    using std::cerr;
/ d4 ~( Y8 M3 g#else3 Z2 |5 C' G1 R- `$ b
#   include <strstream.h>
' C# u2 z- V3 b# T) b) s, n#   include <iostream.h>8 ?, `( ~7 e- V' O! w
#endif
  [9 W& Y$ u9 p- s  |3 k, k3 Y#include <uf.h>) q4 @4 S. p$ l
#include <uf_ui.h>: p; V& I! {( ~! i5 m: J5 h
#include <uf_exit.h>
' k$ S" Z3 s9 D' p" i& ?' c$ q; o; w#include<uf_part.h>
& |3 A. n% w% V, e% }% }( Y#include<uf_modl.h>$ ~- M8 @. v/ I% P% e5 k8 j& L
#include<uf_curve.h>- C2 j- _! f& ^5 B, I" |
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
8 \2 r! d/ i* L* ?1 H! ]& b. T7 x' u. w, i7 E" o
# p1 o$ U% j5 }4 V" I- F( y6 H
static int report_error( char *file, int line, char *call, int irc), ?: Z$ Y5 D/ |) K2 L1 G
{
3 }- ^& u5 T+ I3 C" G+ l$ G  J    if (irc)
% z5 t$ b" v) k$ ^    {4 O' N' _! f5 F# U' M: f% x' k
        char err[133],
& H$ L4 X  C: u8 g* Y' ~             msg[133];
- o& n6 @2 r3 F( u
# h7 \# T( u2 j. }8 [        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
1 T) v. q4 L  B& c            irc, line, file);
5 Y% {, R3 X% e& m* e5 u0 D; M        UF_get_fail_message(irc, err);
8 z' e5 Z0 ]% A& M' w0 S6 R$ C$ F2 j
( V( H3 z- |0 I: k$ d/ J# L$ Q        UF_print_syslog(msg, FALSE);$ E: `* J, b. b3 \, N. [& H
        UF_print_syslog(err, FALSE);' ]$ a5 Q" ?0 U( o4 F% ]+ ~+ ^2 [3 U% q% W
        UF_print_syslog("\n", FALSE);
( q, }# r/ V- Y2 u! K; B% b        UF_print_syslog(call, FALSE);' u* h9 d0 j$ o9 t6 V
        UF_print_syslog(";\n", FALSE);
8 U1 g- O. }( C7 g) I6 e& ^7 Z7 r0 X$ }/ q) h, {; n" i+ J
        if (!UF_UI_open_listing_window())
" @$ x' x, A2 z+ R0 |1 D% y        {
4 R- Z1 V! V# B# p$ B            UF_UI_write_listing_window(msg);
* h: e2 z3 C6 W/ x: N            UF_UI_write_listing_window(err);! Q8 S* H3 g% ~2 X$ Y, A$ z
            UF_UI_write_listing_window("\n");
; K( C) \# z8 J            UF_UI_write_listing_window(call);
( v+ _3 H; e% s6 |            UF_UI_write_listing_window(";\n");( a& Q5 y  k, `$ c4 ]
        }
2 x' ^# {% f# G  P    }+ I3 S3 X( ?4 l! d
" {* \- T) o! q& M* z& X$ m8 u* o, ~
    return(irc);
$ ~. S5 A! y) d}2 G% I  o4 z3 ~! [" W& W9 B9 l
2 i5 y1 p4 F# c5 E0 m* f  l

+ T* E2 G9 I5 L' h$ h/*****************************************************************************
* B: v" A3 F6 G& X9 \**  Activation Methods8 o6 [( [: u% G# A4 ~& G5 n
*****************************************************************************/
) \9 g3 o) p6 I' p1 S: q/*  Unigraphics Startup# H; _4 V5 U6 V# L' d
**      This entry point activates the application at Unigraphics startup */
, [0 S/ X* C' y3 O2 f. {6 K# Nextern DllExport void ufsta( char *param, int *returnCode, int rlen )/ T; l1 {" z, c1 B
{
' d0 h0 S$ ?3 \/ ~* d' z    /* Initialize the API environment */
2 N  y+ w, r5 |& o2 \0 U1 L    if( UF_CALL(UF_initialize()) )
4 n9 h: R! s9 V! U1 s2 U    {
2 r% P' v" G, W0 a" ^5 p        /* Failed to initialize */
4 L1 D, X! Z% v        return;2 g! P  n) Q  a: r
    }
1 e( `" O- d. z& e: D3 r- C% G' x/ Q" a5 o7 d% c- A1 k1 @
    /* TODO: Add your application code here */
2 L+ P! N; _) l+ c& h4 V& J        0 c% S* R" W. U: ~3 B, E$ y
        //new part0 W+ J8 q; x  V4 r. _

* G% j; H( R7 J- ?' p$ e$ w8 A2 U        tag_t parttag=NULL_TAG;
% g+ V4 o( }; s) e# G' a2 D1 S
# _1 F/ \6 f1 S        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);" z8 b& Y& z. p! M( [

! H- ^# q/ |; |# ]4 T) l) r        //creat cyl2 e3 _7 |- U8 }: i/ I4 h
0 n! W* ^7 j4 S  r# G( w$ X5 t$ o
                double origin [ 3 ]={0,0,0};8 n; l. z& L* c: G, `3 i: }( _& I
                char *height={"50"};- b- P$ n5 `9 U& U+ _
                char *diam={"100"};
3 D8 K# x$ \1 y  \                double direction1 [ 3 ] ={1,1,1};
1 K6 W. }' Q  O; h( q! E! h* E                double direction2 [ 3 ] ={-1,-1,-1};               
" `% K/ Q) @4 d% H                tag_t cylFeatureTag=NULL_TAG;
4 t8 @5 n. [7 r! ~! a$ V) q& N) n' ?5 q/ e
        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));
- A/ i, Z4 Q2 b& H8 [  h5 g        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));/ l! J$ K# q0 B9 R7 ?; e
        //creat line9 J6 q6 A$ ?0 z
        UF_CURVE_line_t line_coords;2 X2 k, ?- S. n5 g2 O
        line_coords.start_point[0]=-50.0;. F& f; i+ k( Q; l
        line_coords.start_point[1]=-50.0;5 Q& }0 g/ V+ I* B# l2 z, l
        line_coords.start_point[2]=-50.0;: l' {! A4 \/ \
        line_coords.end_point[0]=50;" i. ^2 Z% U' [) G2 F9 v; ]7 M/ x
        line_coords.end_point[1]=50;6 h: A. W: F" o" q% f
        line_coords.end_point[2]=50;
: S: G. n5 Z! u" r- A6 p        tag_t linetag=NULL_TAG;" V. ?% Y* V2 o9 w0 V! }9 V

2 W+ d" A/ `- c2 [) V        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));) U" Q* S' a+ |. [0 F
        //creat point
+ U/ I/ x( o( Q( |. Z& ^- e        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};; B! f  g+ z4 D) W! {
        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};
& T: S+ k! F3 S# g4 f2 D' r0 y# s5 ^        tag_t pointtag=NULL_TAG;
! K# ]* W& r$ U        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
  Q2 ]" B, m3 n, J" D) _* z                double start[3];$ w9 @. B- t1 w9 j1 T5 X
                UF_CURVE_ask_point_data(pointtag,start);
6 v. ]) B5 @2 f+ t        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));3 P3 J4 }- {9 W1 ?( `# R7 |' `9 R5 i
                double end[3];. Z( s* W% p& V" j3 e; f
                UF_CURVE_ask_point_data(pointtag,end);
! E* V1 m& Y! W, l9 d9 i$ X        char msg1[128];( O" R# z- C1 V5 ?- u
        char msg2[128];
! x  r; N! }" {, ?! C- D        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
3 \0 Q4 w5 s. ~9 H! x. r$ }        uc1601(msg1,1);
7 B: ^+ n, P3 p, o5 H9 c0 [        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);0 O( R) q& M- G
        uc1601(msg2,1);. e0 e+ j! K. ]1 U' y, K3 C
        //mapping point from abs to wcs/ [, k+ \. D; W0 L* Z6 K

; A# e+ N8 p7 x5 T+ |+ Q/ v        UF_UI_open_listing_window();
4 m7 z* E5 ^" H# e  `* f% S        UF_UI_write_listing_window(msg1);) b  Y! }( \/ P
        UF_UI_write_listing_window(msg2);
  F" ?- A% q! {4 q4 s! a       
4 g+ V- R2 ~0 \7 I% |        //close
4 \  Z5 l0 G0 N8 ]. ^8 }        UF_PART_close_all();( p, p2 _0 F% V7 Y; a" {

8 g& J' @$ {/ ?    /* Terminate the API environment */  F+ o! @4 ?' O
    UF_CALL(UF_terminate());% J6 W+ ^6 r" j0 [3 O8 h! M
}
* U/ {, T& w, m3 l; [3 ~4 x
3 O# [( D. j: w8 m6 W$ A. R$ L/*****************************************************************************
7 [( S8 A: }& _5 G9 z/ {**  Utilities
+ J* z4 _7 X+ |" _' U*****************************************************************************/8 t) Q2 m  o) w

8 R& `$ f+ c& J1 x* y/* Unload Handler) y  Q! }# k+ M8 j( N* b
**     This function specifies when to unload your application from Unigraphics.' [& U, F, E6 @" Y# v) e) H
**     If your application registers a callback (from a MenuScript item or a
, H# E9 y( ?3 w  d**     User Defined Object for example), this function MUST return
! \0 G0 [0 v* ?0 x* C3 X9 v0 _**     "UF_UNLOAD_UG_TERMINATE". */
6 N. e8 l9 s/ ]9 jextern int ufusr_ask_unload( void )
* o4 O; k- @6 d, M, ^' C* i{$ @) H8 O! O, Q# K9 P, T7 `
    return( UF_UNLOAD_IMMEDIATELY );- x9 I& v# d0 n+ T8 O
}
$ u' D# }# r; F" u$ y7 b4 a5 y5 r
2 ^# M6 r/ |' I$ f2 P6 k, G2 C& @* G* y9 Z4 B  A& \  _7 ^: u( K
上海点团信息科技有限公司,承接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 编辑 % q/ u$ U- P5 N* V  K# M
. Q7 u2 j, S5 i8 b/ Z6 I
L:\1
' ?/ p4 ~. D4 E& |* B0 K5 _
                               
登录/注册后可看大图

- M6 T# [$ m; Q9 E$ A( e$ l: ^$ F                               
登录/注册后可看大图
) T, n5 D& @* `' X5 {
                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了