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 3002 1

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************
  L' K& {5 k* s: L**6 U) Y4 A) Y  E/ m3 s
** creat cly.cpp
( j) ~" B0 t; E1 p# J' |**5 k# x, U0 s: @& j0 P9 f* v9 q
** Description:2 Z" ?& z' f9 Q* [% z( N* V1 c
**     Contains Unigraphics entry points for the application.
  ]/ K" K# }7 c**
$ @  D" O+ n* Y. [" z. M8 R*****************************************************************************/
8 l. k5 Y4 F0 q& u( O! W
+ g9 b- v6 x$ o* o3 y. C. u/* Include files */
- [5 E/ L' O3 A, ~/ Y#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )# }) [7 S7 F7 b$ A% X- u5 k8 \  E
#   include <strstream>8 I" q; [% R+ p' {# ?' [5 s
#   include <iostream>" u, d4 N: ^+ _8 n
    using std:strstream;9 }- g6 _! A1 A8 o& ~2 D
    using std::endl;    ! f6 X% k6 M  Q
    using std::ends;
+ p8 b- m2 p& Z4 l' e- M, H; U) Z    using std::cerr;0 f8 Y/ {, u, `
#else
$ Y1 @% h3 E) `* g' N#   include <strstream.h>
( J+ c+ H4 A# k0 a5 Y- j1 x#   include <iostream.h>) ]/ g# `; I2 F
#endif
: m+ L$ V+ q# j& `8 _6 g$ B#include <uf.h>1 s/ M0 }& w* P2 s& ]
#include <uf_ui.h>) ]3 r4 \( z: w/ H
#include <uf_exit.h>
" {, U: w. c/ c6 g2 L8 k* I#include<uf_part.h>
9 D3 g3 P6 A; B4 q( n. ?7 C#include<uf_modl.h>
) }. Q4 r0 }7 Q+ ?: o( g#include<uf_curve.h>
  t) y/ s( e1 ~, T) z#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
. K( M3 X  B8 G- f& v) V
9 [4 A; e2 G+ `4 n5 q
7 a) _8 S% H, E' s! Y4 n  Ystatic int report_error( char *file, int line, char *call, int irc)
; `. l4 c# |* H$ K+ r{6 V3 W' y' d$ J
    if (irc)
% N0 C9 Z) D, V8 h    {
) L' S* A( C: q5 i        char err[133],
4 f# z6 c* E" m$ U, Z" j3 E             msg[133];
% v, |5 a# M8 x1 p
* x/ F4 x, ~& B& g/ C( Q  p+ j        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",% v7 h/ B* ?( x! \  y+ Y# N6 S
            irc, line, file);
. F* W5 W: f! m. ^. \        UF_get_fail_message(irc, err);
8 a( x1 O! v( P' g/ X/ i
1 s; b, x) y7 k8 M9 t# i        UF_print_syslog(msg, FALSE);
1 r& G$ i: R9 P" Z  U        UF_print_syslog(err, FALSE);8 p0 r, r7 q6 l8 S, D8 p
        UF_print_syslog("\n", FALSE);. {9 l" n) X7 {" J: W4 p# H
        UF_print_syslog(call, FALSE);
% b% |/ ?2 e4 ^+ |        UF_print_syslog(";\n", FALSE);
9 p* k; X( O: g* j
' D. _1 s8 ?1 o# b% @$ H9 J+ b2 b        if (!UF_UI_open_listing_window())7 t- x, u$ {7 s- U0 v
        {0 E+ P( G2 K7 {# P
            UF_UI_write_listing_window(msg);1 R; z3 q# R, m/ `% ~
            UF_UI_write_listing_window(err);
- g4 D; z2 H, I8 ^1 T            UF_UI_write_listing_window("\n");
1 c$ ~1 Y( n1 c            UF_UI_write_listing_window(call);. V3 V' K5 V, p" z" J; O5 E
            UF_UI_write_listing_window(";\n");
5 ~6 l! n, `1 z* _# s9 }+ ?  N; X        }
4 {, f; E1 D/ x: n% r6 S    }: G$ N8 s! V: [

* |1 Q/ D5 B6 J3 m' A    return(irc);
3 }. c) o. O8 |3 V- B}" D3 y3 A2 H7 n

" o/ X  V- i" ^/ [
6 E" i5 @1 d' u3 O" o/*****************************************************************************6 w$ L+ M6 m% x: |2 n
**  Activation Methods* c: L* L' v3 \, @
*****************************************************************************/8 X: M# m6 _, Y8 v
/*  Unigraphics Startup
8 H* k5 s  [0 g6 I3 u**      This entry point activates the application at Unigraphics startup */
5 b) ^5 R  _+ G6 w: K( oextern DllExport void ufsta( char *param, int *returnCode, int rlen )
7 P/ S. d+ r. K1 n  A{3 V& _9 r" |3 z! i1 W, T1 @* `
    /* Initialize the API environment */  e6 p7 x2 _0 Y" ^1 J  r
    if( UF_CALL(UF_initialize()) ) 3 d: B; c/ i& c) d% T
    {' r* {' x$ Y, _4 f4 K
        /* Failed to initialize */
' k; E4 Q' d+ G- f' l        return;$ v# V8 F1 h- T5 j, i; z
    }0 G- X/ Z7 F7 _: P" V5 y' N# Z! y
) b; A$ h# K9 O9 n$ G5 \
    /* TODO: Add your application code here */# Q+ t. W3 N) O
       
1 W7 A" _) n, Z. ~" A        //new part
* W" K4 {# r4 P& \! ?
$ w- [$ l2 N6 p- z3 P" O        tag_t parttag=NULL_TAG;9 `5 G2 q2 n% P& g0 a5 w8 W/ T6 ~

  Y! |6 t' A0 D8 X  _7 f' E- [        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);0 [, j9 ?2 k, @# m" E
0 t( ?: B& g* q  a- e1 ~! I) D
        //creat cyl
: _- [" r- K9 _/ q7 f/ G3 l0 q8 q; v& O% B* y6 t9 j. U1 G" H
                double origin [ 3 ]={0,0,0};9 ?* T1 ~! g) r: }8 Y
                char *height={"50"};
! c  z, z/ g! V3 U, s                char *diam={"100"};
8 o/ Z0 B, o) a( x. j3 t- c! m                double direction1 [ 3 ] ={1,1,1};, c9 c' A2 l. B' p
                double direction2 [ 3 ] ={-1,-1,-1};                8 A( o2 N0 k/ Q( x( m- h
                tag_t cylFeatureTag=NULL_TAG;
! h3 P" }5 I* ^" v6 X8 d# ]
) a7 h( m4 ?% d% F$ M" T3 ]; n        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));
! D5 g" l( {/ r" T) D2 I2 |4 K& X2 @        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));0 Z" @3 ~5 e8 ^
        //creat line
) P7 t8 r& S. j" \0 Q' t3 g8 d( G        UF_CURVE_line_t line_coords;
' @3 l) R$ k# P0 Y3 k( M. w( N. C        line_coords.start_point[0]=-50.0;
- l1 T8 f1 |( p. O3 _$ Y9 R5 t" d# c        line_coords.start_point[1]=-50.0;
  |+ t3 l8 r2 z        line_coords.start_point[2]=-50.0;
/ _. T7 l) W& H: U        line_coords.end_point[0]=50;
6 w" k) Z  _  N% x        line_coords.end_point[1]=50;
& H: F0 ?$ p4 a( N; E# D        line_coords.end_point[2]=50;" P  i/ v8 h" {* W; _& y
        tag_t linetag=NULL_TAG;
) ^0 t5 D$ L* P7 n- y  U
' l# @+ D! C- h        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));
0 }! y/ t' ~0 `; R  n        //creat point
3 ~7 W6 e7 n; {6 S5 b        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};) \2 h2 Y" B7 a" V- f' W: V. ^
        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};
( M' p4 C3 ?# L        tag_t pointtag=NULL_TAG;
9 A- J8 n" p4 h; l' o" }. d        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
- s# T# N; r) }3 i, e9 g! m3 E% {+ U                double start[3];; k: S" O& l- x, L# [
                UF_CURVE_ask_point_data(pointtag,start);
1 J/ I4 I. a# `' k        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));) I) h# N+ M7 d7 p' q0 T
                double end[3];0 r: l; x! _/ O" u2 ^/ b6 [
                UF_CURVE_ask_point_data(pointtag,end);
/ l3 @! _; w4 g$ i3 X        char msg1[128];) R! F! H; s+ v# o# j: L% ^9 r# \
        char msg2[128];% b" S- B( s7 H+ Y# ~2 z
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
4 \8 r. ?% r; \/ ]2 C  G: }7 q        uc1601(msg1,1);
2 c# ~& F8 f6 D5 m6 Q        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);; B- b- }1 P* C' o# D" N
        uc1601(msg2,1);
! _* r4 N* r$ h1 t! z8 B        //mapping point from abs to wcs& b  R4 c8 {+ e, `+ f  K

* |( ?8 _; ?7 h% l( b  y        UF_UI_open_listing_window();
+ U6 s6 y2 r5 l4 K! C" P        UF_UI_write_listing_window(msg1);- ^: v* ^+ M. K9 ^; l9 G! p
        UF_UI_write_listing_window(msg2);
8 \! y+ M9 g/ Y7 x8 c2 P( A& u       
' T( Z+ r$ H& H: v4 c7 d6 G+ m  D- I        //close$ Z/ n' x, S/ H$ e- o: O! C
        UF_PART_close_all();
* o5 P5 g3 I! V6 R1 ~5 D& ~1 b' d* o) [% U; r
    /* Terminate the API environment */
' ^3 U) O, U0 m+ J0 S6 h) U    UF_CALL(UF_terminate());, N1 T' l8 p+ V( S6 j
}* ^4 N+ I" L( K9 @: a

8 \: W  }) W& O' C  Z3 q0 z9 G! }/*****************************************************************************
# L! I7 j6 L2 F2 X" O**  Utilities$ u$ [1 o# d; ]$ c9 C& f+ q, I
*****************************************************************************/
  u" \! z) i# V- m, B7 R3 W  n# B
( L1 x2 l* h4 Z& [% i, j: H1 U/* Unload Handler4 u% V( v( w5 n$ a4 q# X
**     This function specifies when to unload your application from Unigraphics.
  b& X5 F# ^0 f/ d- p3 p2 h( x**     If your application registers a callback (from a MenuScript item or a% w8 J! n& v% l( N9 `5 L
**     User Defined Object for example), this function MUST return
1 L: z+ A. i7 L; L7 v2 `# I, h**     "UF_UNLOAD_UG_TERMINATE". */1 d# `3 M! Z/ `% W0 i
extern int ufusr_ask_unload( void )
( b6 U. T* S9 v2 \3 R{2 Q" a% T- K  Q. W9 s
    return( UF_UNLOAD_IMMEDIATELY );% `' T1 n  D( e# A( M8 j+ |
}
1 R% O$ _, E8 X  `6 c- Q- U) l+ n5 A% b5 w& p6 k" j
; O* `$ O5 T1 w* K$ m1 V
上海点团信息科技有限公司,承接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 编辑
- Z# f' b6 G1 g! k- b9 ?
: e( r' g0 m1 I2 _. wL:\1

, X5 v& F0 G2 U                               
登录/注册后可看大图
2 T/ ^( w7 ?" k
                               
登录/注册后可看大图

) W; r4 v# {' \  R: P  V3 ]; E2 p1 Y                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了