PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

[复制链接]

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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************. e" q4 [$ Q3 j4 O$ J8 b6 w
**/ o' Z( q# }3 V7 s# ^3 c
** creat cly.cpp  H1 R! |2 x' A2 T# C2 V* I
**, H' A( v) a$ q3 [4 V7 A, Z
** Description:
! P9 J2 G( n# i**     Contains Unigraphics entry points for the application.
7 m6 f  ^7 \- p' ~% V**3 P- {) ?/ p6 |: e% t: v6 ?! a
*****************************************************************************/' W1 _: ^3 p% `/ s  z3 \  `/ v* P6 s( m

( @0 w! n, p7 E' t& @: u/* Include files */) B: q( z& v& E- Q9 a
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
4 |  P, ~5 u3 t#   include <strstream>6 w+ }& k/ S: [& A  N- R# N
#   include <iostream>
% c) [2 c$ Y9 w4 h- v1 @    using std:strstream;8 P' r; ]' E! q* K
    using std::endl;    * x* [/ c$ G9 U3 t
    using std::ends;9 {* @% N" X$ B# F- j
    using std::cerr;
# D* t4 E' N' J6 h- w" f- b#else
8 ?$ A3 p. u1 P#   include <strstream.h>2 \( Q; M: g; E; q6 n
#   include <iostream.h>1 r4 W9 y7 ~' U1 G1 n, l
#endif0 F7 c6 e3 @2 l1 d' p
#include <uf.h>( D. o, u+ }9 t% ?
#include <uf_ui.h>% ?9 N: e* A. [
#include <uf_exit.h>
% b0 i& b/ I& ~#include<uf_part.h>
" B0 D" M; \' N7 f/ ~#include<uf_modl.h>6 J! }/ b" X3 P" F; k2 Q
#include<uf_curve.h>
7 C1 S( k) C. z% J& ^3 J& N- u#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
, K2 X2 G* g. P% q, m  V$ q
; J( f1 {3 F) m  u) r, ], C; q. H" d, R- H+ e# L* u
static int report_error( char *file, int line, char *call, int irc)
6 m0 [5 c3 g) Q' s/ n# x+ j; w5 h% G{
' d8 z' S7 p' \6 _    if (irc)! p7 T! |: M- N  R' G
    {! u9 p7 Z6 l6 j& e2 k  v
        char err[133],
0 x, J# |. H9 G3 I$ K             msg[133];# V: C' p- K8 R
, H( T" ?5 Q( t
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ "," Z; L3 x$ _$ C
            irc, line, file);* T6 y  ^+ E+ c6 m4 T! u
        UF_get_fail_message(irc, err);: v2 C8 r7 @, {, j/ r* n. c

& S+ {; e, R1 ]% {        UF_print_syslog(msg, FALSE);5 x# U6 I8 J7 ^4 y; f: M: M
        UF_print_syslog(err, FALSE);- c8 x" f, Z8 \! ^- d
        UF_print_syslog("\n", FALSE);
6 p& U6 D" o% K7 M- X% w: ~- O        UF_print_syslog(call, FALSE);. x7 k$ `7 z, [
        UF_print_syslog(";\n", FALSE);
; F8 `; M9 l+ c' m$ m6 j# F9 w& ^- O' `5 P2 M: J) x* v3 h" j
        if (!UF_UI_open_listing_window())
$ ]% X2 a& f- C8 n) _1 h        {- R) Q1 d; @2 W3 z; g# R* L% J
            UF_UI_write_listing_window(msg);
7 Z! q! a5 F& l7 _! ~/ x            UF_UI_write_listing_window(err);; `8 @$ O# g0 x# _
            UF_UI_write_listing_window("\n");
& a0 o1 H: _7 W5 U0 {5 v3 _2 \            UF_UI_write_listing_window(call);
+ Y, ?6 l) t7 C$ N1 i3 Z            UF_UI_write_listing_window(";\n");
) I4 O8 h8 ?( o, w5 D/ ~7 d. y6 c( s        }
$ x- F( Z% d+ U7 p3 O" m' r5 Z7 k    }
/ y8 U7 J+ `0 m8 E0 l8 e0 a/ P  t, d( q! f+ B
    return(irc);! z$ Y+ e8 B5 {. y, w0 b
}
# u; Z+ h. i5 U9 |% ]" L: L" N$ o6 a7 \+ U3 f
. x% L; F+ Q, _8 g
/*****************************************************************************5 O5 J& t4 n0 I* o, ^/ o
**  Activation Methods
: b; ]. P' c1 y+ S) n& M; E*****************************************************************************/9 B3 B$ p$ E& B9 T- N) k
/*  Unigraphics Startup
' u1 k) j+ Y. |8 e7 C# B3 ?**      This entry point activates the application at Unigraphics startup */
9 I2 `0 O/ k0 U3 Jextern DllExport void ufsta( char *param, int *returnCode, int rlen )
8 l5 i3 ~/ I5 }4 \% I* p) ]  y{# ^* q$ j( x9 q: e
    /* Initialize the API environment */6 C' W- o, Q9 d
    if( UF_CALL(UF_initialize()) )
0 w4 A2 U, Q8 F5 V    {" E; L% v9 ]( b* B/ v
        /* Failed to initialize */3 u# \$ e2 U$ q0 Z- Y6 n2 h
        return;# |6 _0 v1 D  \  U: j9 n
    }( P3 y, X" {8 \

6 F) G, a# H" L) R5 q% W    /* TODO: Add your application code here */. S" T2 n$ V# \' u, M3 I, w( [0 j
        4 ]- x2 i( I* l' ?1 C- X# q7 q6 s
        //new part7 v9 J% F; c& R# L

  K; ~+ f0 [. I: H" {3 n        tag_t parttag=NULL_TAG;
  u* X& T2 {9 E  ]4 s! Y
2 P1 h& t/ t1 Z7 `8 ^        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);
" E" H4 [4 [' v) |& ?' a0 |9 k0 H& O% e
        //creat cyl- G2 `/ F1 T8 X& T

9 Z' P4 u# \( t                double origin [ 3 ]={0,0,0};* w2 j; Z2 W( {% I" m- [
                char *height={"50"};
3 `) Q! _* ^. f3 q. M* p                char *diam={"100"};4 H) I- d) k0 x! b
                double direction1 [ 3 ] ={1,1,1};/ W3 l: w$ e6 ]
                double direction2 [ 3 ] ={-1,-1,-1};                ; R( _  Y, p- ]  x$ x9 }  h' I& Y
                tag_t cylFeatureTag=NULL_TAG;' Y6 n1 U% n. {

& n/ ^  L( k' H        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));) r3 b6 C% s  }; b4 P
        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));+ {0 S! A  H6 d+ T# U1 z$ L8 L% h
        //creat line! R: a% O* @& q, j1 |+ F0 }, E& d
        UF_CURVE_line_t line_coords;' d8 }# R% T" S/ ?+ X! Z" L
        line_coords.start_point[0]=-50.0;; A2 s0 t) M1 `6 N! ?4 P
        line_coords.start_point[1]=-50.0;( t6 c0 W8 J0 C1 J% q( r4 h
        line_coords.start_point[2]=-50.0;
- O& V: Y/ w5 R: Z! D: ]5 M        line_coords.end_point[0]=50;
- r) Q1 L" H* O0 X/ z        line_coords.end_point[1]=50;9 w8 W" G- k) Y+ e6 g- P" c
        line_coords.end_point[2]=50;% n$ i. t& I8 D' Z
        tag_t linetag=NULL_TAG;! p8 p/ {5 S5 U' d' Q! Z
4 G- [8 _. F0 U" c+ V
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));
; b. g1 l) T) @- \- Q' X        //creat point1 K2 x: R7 e! q8 K+ ?
        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};
' j& }2 N. H) m# @/ |" k        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};
, {7 u8 N, j7 d. t        tag_t pointtag=NULL_TAG;' E: `$ o0 R% {; V  Y
        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));1 q9 q( x: h6 n) H
                double start[3];2 R+ r, L, v  o
                UF_CURVE_ask_point_data(pointtag,start);* Z- B7 @( W" l+ Y
        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));
8 @/ L- C& p" h; [: o* [( s                double end[3];/ m& d: d) h" |) ^/ o$ j) T
                UF_CURVE_ask_point_data(pointtag,end);
+ Q4 G7 j- T7 P* B: p& n( b+ f1 m        char msg1[128];
9 C8 w+ ~; _( A8 D        char msg2[128];( W3 Z; w. K' o( T; H- c
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);9 v8 Z  l+ v2 F+ S1 s
        uc1601(msg1,1);
. w+ n3 G0 Y$ `4 n  K/ n1 o        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);
( s/ e- w* i$ j        uc1601(msg2,1);
% X. e7 @+ P  R& J        //mapping point from abs to wcs- D, p7 c% J$ N$ g5 y/ m9 M
* b+ _/ H6 A. x
        UF_UI_open_listing_window();
) T1 M" a0 \: T" z+ n4 Z        UF_UI_write_listing_window(msg1);
3 S; s2 A( o9 h9 C- c0 a2 f$ E" T        UF_UI_write_listing_window(msg2);
6 B5 ?1 U: e% ?( I1 A$ f) p$ L8 s        , i8 _7 F! ]3 s$ N* e: b
        //close
& x, T# A1 j* m        UF_PART_close_all();3 v, H+ L1 B2 V! _, _- Z

" R( G7 L( Q: V( M2 Z+ h- s    /* Terminate the API environment */
6 a! E" e2 A1 \' B& l    UF_CALL(UF_terminate());
, v6 y. Q' z# d}
: F/ {" r$ Y5 ]! R: ?' d
% ~7 p& u9 Q5 S) P: H) {6 D& M+ h/*****************************************************************************" V2 Q/ v. N- L2 Y
**  Utilities
. P# H" \# K3 j1 A*****************************************************************************/6 N' E' a0 |0 p
4 r( L8 A5 g0 P5 E  Z' }# A
/* Unload Handler
) q* b- e' g7 ~' i* u: W+ Z**     This function specifies when to unload your application from Unigraphics.
; Z, X5 m2 a/ ?- F2 {**     If your application registers a callback (from a MenuScript item or a
0 U) c& g% C  H+ G+ k$ `# ~**     User Defined Object for example), this function MUST return
9 R8 K. x0 u' H4 a# p# |" j1 `**     "UF_UNLOAD_UG_TERMINATE". */
: [2 A' X7 `+ l& N; iextern int ufusr_ask_unload( void )+ z& a/ x& M% Q& H4 L. k
{# X0 l% j4 `8 V5 D8 e1 M
    return( UF_UNLOAD_IMMEDIATELY );
: i2 s: I3 L+ |2 A) b, \$ x}$ i4 \$ I! m/ O1 i' x& d4 Z
( P4 C6 C4 u! D# [8 a/ Y: s# J
0 n6 i! a5 D7 r
上海点团信息科技有限公司,承接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 编辑
# Q5 q% F/ @' u6 X1 u& x
$ `" u' C6 t2 c% h  yL:\1
/ m- f; p% O3 z. W8 b- w% [# X
                               
登录/注册后可看大图
: o$ Y8 Z- S) N
                               
登录/注册后可看大图

. N# z! y0 f4 x                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了