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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************/ y7 W/ C* e% j3 o2 X6 f+ E, w( e$ |& m
**( n, j3 u7 b( b( [7 p
** creat cly.cpp/ g# k  p+ x9 v+ {$ M. {" b
**! _. F" h7 U# h$ O" C; [; L
** Description:  }( e) h! R* a; V3 k2 [, F
**     Contains Unigraphics entry points for the application.
5 a. _; F: ]: ?' J' D0 G) S**4 e# V4 Z3 N: q' {- x- G* n! T
*****************************************************************************/; n9 l9 B/ S* L( C

: I; d7 R+ A( g+ _! N. ~4 w/* Include files */
# K' C" w+ @2 I5 x& \! u#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
0 j# e% b8 M! n3 k  w; L% Y#   include <strstream>
0 O0 e1 U8 W$ X. H. B#   include <iostream>$ {5 _2 n$ I( q+ I: Z4 f( I3 A' S
    using std:strstream;+ F; g! B0 J6 C
    using std::endl;   
; Q; v! U5 U) |9 R# p7 ^6 O    using std::ends;
- r! G6 l. X& r( o' u) w: q' A    using std::cerr;2 n$ t" y. X6 z$ }2 U
#else  Z* k( S+ C4 r
#   include <strstream.h>+ ]* \. s# J, X7 d
#   include <iostream.h>
5 Y; Z- O. @, `+ O#endif0 F$ K- t+ V" @* N
#include <uf.h>( X! ~* x; g4 a: Z
#include <uf_ui.h>, K0 _4 j/ P# g0 y
#include <uf_exit.h>. f- G# J# x& N- V1 T
#include<uf_part.h>
0 T5 n$ P2 m% \0 y' n5 u% v3 K#include<uf_modl.h>. b8 d$ u# i* u* F8 C. h
#include<uf_curve.h>
, D# u* K9 X# a1 h3 D: M1 T, {#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))3 ^, p& O8 x; E$ u6 n: A3 J/ {

  ?) Y4 N6 J$ {; H2 d; X
' l6 f" c: S: wstatic int report_error( char *file, int line, char *call, int irc)
) G7 C. f4 ?% U  I/ B) O{+ ]; u( p& [$ H8 g* x# M
    if (irc)* Y/ p4 j$ z' q3 _) K
    {7 s2 q1 N) @. u  ^
        char err[133],: O: p% J8 a/ i, o. b6 J* W
             msg[133];4 y' q  q8 c: e; o3 k0 e. l' f

1 d( M( H$ A# V* S- W        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",! S& M' P. f$ |. Z3 a
            irc, line, file);6 t6 c7 N( v- {6 i: S- g
        UF_get_fail_message(irc, err);
0 ^- v$ k  N% O* n1 M3 [: x1 i# P  i, L
        UF_print_syslog(msg, FALSE);& R$ J) k: m; v$ B# g/ P9 k5 Z' Y
        UF_print_syslog(err, FALSE);1 ^4 ~' U1 A: m6 W
        UF_print_syslog("\n", FALSE);
! r+ F( d; o, z6 Z) L, ~        UF_print_syslog(call, FALSE);: F# a+ o5 E. x% a( |
        UF_print_syslog(";\n", FALSE);
  Y* ]* e9 ~9 `; p& S0 X/ n: w3 I7 d1 ^1 C* p- S! e' S
        if (!UF_UI_open_listing_window())
# n/ q8 o8 m; @! C" Q4 M        {
4 l, A) w) P. y: h            UF_UI_write_listing_window(msg);
0 z: E5 s; C2 m3 W3 x( ]0 X            UF_UI_write_listing_window(err);/ \7 a9 Z/ `* q1 m# V: |
            UF_UI_write_listing_window("\n");, [. p: ?" E1 ~- G4 \. [
            UF_UI_write_listing_window(call);
9 d% V9 l( t6 _( o" C4 x; u% `2 W" g            UF_UI_write_listing_window(";\n");5 U. R/ u/ g$ H; x  m# Y9 E
        }( }7 f2 S0 |' ^0 ]# z1 z
    }
" a, M; Z) c, n3 F% F: }
7 T4 d" i$ J# c0 ~: v* J; j4 o    return(irc);) h2 b, A, ~+ K6 \, c
}
  P5 U: e  S. d7 I6 r4 U9 o
4 r( r7 p8 n+ s7 X' C: Q+ a3 Q/ I' |2 m+ K( h% |6 d, f* G( _
/*****************************************************************************5 ?: s( ]- H2 i' L5 P) l/ W
**  Activation Methods* F/ Y0 G# s  _: U) N/ f5 L6 E! }
*****************************************************************************/
. G6 N- `/ B* t$ z. _% L6 Y/*  Unigraphics Startup  @7 D$ [1 C3 i8 l/ x/ w
**      This entry point activates the application at Unigraphics startup */
. `9 h# o3 S' K) uextern DllExport void ufsta( char *param, int *returnCode, int rlen )1 B% X4 Z; p2 x( u7 ]* R8 b
{
/ [" X; U4 _3 S- @; o/ j    /* Initialize the API environment */
- F, \) k! ^) o0 d8 n5 d1 Y9 P    if( UF_CALL(UF_initialize()) ) - d! [1 v8 N1 {4 y9 R  ~
    {
  _% C) G% |) ?        /* Failed to initialize */1 O+ e) s' ]& p  d3 O# A7 T
        return;
, V. Z3 B! G& z* B3 V; S8 y" A    }
/ b2 u! g- m, ^
2 l' g! l0 q3 }+ x, T6 O    /* TODO: Add your application code here */
3 ^8 W6 g# Z5 A. L        * ?% b& t3 o0 o
        //new part
$ ?+ \; g3 {9 W2 P* I2 Z
+ y8 r) N. v* a- m7 g/ z6 P        tag_t parttag=NULL_TAG;
& m, r( _0 g* H& d5 w+ [: o( X) P% f4 K& _" ?, K: J
        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);( |( w( b! V' q% B( B& O( K  s0 J1 P

  r4 X* W( M7 n+ [2 ]* B) j0 ?        //creat cyl$ Y2 M* f6 C$ E9 J, T6 M
3 m* [' `, M' a
                double origin [ 3 ]={0,0,0};1 D" x* G! X3 [% ^; G5 @6 z, V
                char *height={"50"};
/ J. ]8 A/ Q& o- ^+ k7 c9 ]                char *diam={"100"};$ |) @' n; m  A" n+ w
                double direction1 [ 3 ] ={1,1,1};
- `! s& F2 ~% X$ y% G3 D  s. t                double direction2 [ 3 ] ={-1,-1,-1};               
% N% q8 X- s( \, a! a                tag_t cylFeatureTag=NULL_TAG;
, I$ J+ F# ]. b5 t4 o1 K
! Z: H8 I) l9 T6 l2 e        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));5 Y- W, n/ s6 X6 c' d$ ^; J: X+ q
        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));
& d$ `& Q% V" ~" T( }  u# V1 h        //creat line3 O4 l# X  a8 ~2 x
        UF_CURVE_line_t line_coords;3 M. o3 ]- o1 }- M) V
        line_coords.start_point[0]=-50.0;
8 l  i3 K' Y/ Z. G# B        line_coords.start_point[1]=-50.0;: J% O0 w+ J& V. @1 d; H' I
        line_coords.start_point[2]=-50.0;) r+ i- F6 S# Y# c4 G
        line_coords.end_point[0]=50;8 a4 q% x/ o8 f+ u9 z; t
        line_coords.end_point[1]=50;2 {* H  X+ ]* Y' b) N
        line_coords.end_point[2]=50;3 k0 q1 Z0 k4 W' S
        tag_t linetag=NULL_TAG;
! ?/ T4 O' o6 S. K* f1 O. A2 r+ a8 h  h# P( B
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));( }- y* U( w8 Y- N+ B$ T" s
        //creat point2 q8 B0 _+ ?( ^
        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};
  d, w- n1 v4 g. p; m# |        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};1 }/ ~) j; K3 [+ h7 D, V" `( d3 D
        tag_t pointtag=NULL_TAG;: a; r% ?: M! H  c# P4 u+ D) f* G
        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));: c% |' h+ q6 Z% N3 e8 {0 F& ~
                double start[3];; z6 a) y3 @4 g. Q  w1 Q$ E! P
                UF_CURVE_ask_point_data(pointtag,start);
! q! H# D# G2 @& ~  u        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));
. x3 s. k% O; V                double end[3];
: [6 h/ j/ x' R5 q6 m1 ?3 z                UF_CURVE_ask_point_data(pointtag,end);# i5 S% g7 {; K5 q
        char msg1[128];
! ]2 K, v3 l) K& `! k        char msg2[128];$ f4 z' q3 g. C7 @* a/ ~5 G
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
# `8 _: [$ \/ z6 C        uc1601(msg1,1);. @; g3 B8 g7 v$ X4 N
        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);
& |% Q7 Q1 q. Q5 [        uc1601(msg2,1);
' N0 q: Q+ [) L, s        //mapping point from abs to wcs
: T& M5 D" Z% r* B1 @) X
8 O% [1 |0 \% a# M- J% ]        UF_UI_open_listing_window();
4 {2 B, v6 n1 a! r' F8 [' V        UF_UI_write_listing_window(msg1);
4 o, h* n, h: P; x" E        UF_UI_write_listing_window(msg2);
1 z3 G% u9 c9 k% M. ~* P: V       
- j1 V# N0 @; K        //close
2 Q% u$ v/ T' M, v1 U0 D        UF_PART_close_all();
0 C! i% Z0 M# Y7 G  O# X4 u3 t4 z9 K5 ]1 [) W) \2 l/ }$ N
    /* Terminate the API environment */6 \1 H/ I! N; k9 H. d; J
    UF_CALL(UF_terminate());, r( |+ S. T* a. }, T) b1 z6 e
}
+ U5 A$ `0 ~+ @0 u6 g% N* N
! v- X- w5 K7 |/*****************************************************************************7 j6 i6 T. `$ V: {+ ^
**  Utilities2 K1 `0 s- T! S( ]& o* Z1 t% H
*****************************************************************************/
& O8 T1 K/ w. |% j6 ?/ F; r: q1 j5 ?" d* S$ _6 o0 R9 [; c
/* Unload Handler  I+ o; G' J% L. F) p/ a5 W
**     This function specifies when to unload your application from Unigraphics.
/ U' ~$ z' \$ ~- O% I& P: ^**     If your application registers a callback (from a MenuScript item or a
  n( D7 F: Q$ ^* s2 d) T**     User Defined Object for example), this function MUST return
: t. u4 p' \) W7 Q1 A  W% K**     "UF_UNLOAD_UG_TERMINATE". */3 K& I0 R8 H$ `/ B9 ^" B
extern int ufusr_ask_unload( void )- E* J% j+ x" M+ j1 P3 [8 f9 T* y! o
{3 r' Z( x! Z; g3 w% z
    return( UF_UNLOAD_IMMEDIATELY );
$ |8 b3 S% @3 K2 L1 ]+ w- _6 R}5 d) Q; u. ~+ w# ?* N! ^/ m
4 f+ o9 _' D' z
4 E# i  |/ @  a9 W4 Y6 P
上海点团信息科技有限公司,承接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 编辑 . U1 u0 Y) r0 ^" v$ ^
0 A6 n, j. p1 j' u5 Z! h
L:\1
: ^! r( K2 k3 O; i" [9 P# V
                               
登录/注册后可看大图

% X1 V$ E, t; @- z% }' ~" K" k" g                               
登录/注册后可看大图

) k% x" @; F/ w) w; f& V                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了