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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************
7 Y& ~# x# }$ i; \/ q**' P+ W- H* r( M' o) u1 L5 x
** creat cly.cpp
4 W5 R" ?4 j1 L) m+ m**
. e  Z% m/ D0 d, R' g1 h& ?** Description:
6 B7 }. x9 ?" K**     Contains Unigraphics entry points for the application.
2 J( e. R  b# c7 ^  n8 i+ e( D**$ k* D7 v" L. s
*****************************************************************************/
' A2 @1 u) M/ b7 E  |( D
! J# \1 L" G; t/* Include files */9 L% N# A& {2 ]% H2 O9 t1 r
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
- O8 s3 T/ P) }9 ?#   include <strstream>2 A2 u* q2 Q* h$ T. |
#   include <iostream>
8 _. U4 Y" m+ Z8 H( S: v# p0 U6 ]    using std:strstream;
3 O. Z8 o0 q/ u    using std::endl;   
$ a7 m* q9 e& }+ x- `% Q- Q    using std::ends;
2 x% R$ o- x3 I" z    using std::cerr;
& D3 x) K4 f5 B* C3 J9 e, c#else' [% |2 D: r1 \( A, \/ K6 Y
#   include <strstream.h>% q% D% P+ h6 i
#   include <iostream.h>
$ k) U. [5 O$ |( o* {: t7 Q& W1 A#endif; g$ K; F1 x% s" Q) N7 m7 x3 g4 r- J
#include <uf.h>
/ `* k) T* }. Y7 f6 e+ F* f#include <uf_ui.h>' a" `  Q, E- c3 w* k
#include <uf_exit.h>7 ~4 k' l$ p9 ?, V
#include<uf_part.h>1 z# q' h) Q& O
#include<uf_modl.h>
4 z0 c5 d  `( z2 g1 M( @1 \#include<uf_curve.h>
8 y4 L% |, w$ K. k3 a9 U2 o#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))1 N  T$ c& r& M- k

5 z6 b: R# L6 H8 b! q# K: [4 ]- R5 G- p
% {6 E' k$ N5 E2 L9 B) D# X& Estatic int report_error( char *file, int line, char *call, int irc)
, ?; w% g1 G* x{
- G/ M8 U( p% ^    if (irc)" |6 ]" T1 b/ B& E
    {' n( Y) J+ J0 E; J4 Y% [+ f( N) q
        char err[133],
( I) u% Z6 T, P  y             msg[133];
( a$ X; }+ F, A
# d" l4 E; w  Z' B7 P        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",& D# f8 A- @; m6 S% r- j2 C9 d9 R
            irc, line, file);
  d7 J/ R( H  {; E* |/ [; Z% V        UF_get_fail_message(irc, err);
7 w1 L/ f) y8 Q& R! }0 t
; P9 B2 f* g, _1 \        UF_print_syslog(msg, FALSE);
7 I% Y6 l3 H  V1 P. }        UF_print_syslog(err, FALSE);0 C$ M* r& p; ^: W2 G! k' l1 v. f
        UF_print_syslog("\n", FALSE);
3 Z6 i& V4 O# t, x        UF_print_syslog(call, FALSE);
+ r# P& |  R+ o" p        UF_print_syslog(";\n", FALSE);- O! G0 l3 o: i" X& z5 r3 b

+ c- S( [9 @% r/ F7 }        if (!UF_UI_open_listing_window()): u5 A# k9 L$ u$ F% X% P
        {
9 j8 h& A. a2 K3 i( V! u            UF_UI_write_listing_window(msg);
6 T3 Q6 q0 D7 _            UF_UI_write_listing_window(err);
. v9 G9 u8 z; i7 Z3 z1 S            UF_UI_write_listing_window("\n");- N. {  X" B4 V* y- p4 ?
            UF_UI_write_listing_window(call);) M! g, w* h4 a, E
            UF_UI_write_listing_window(";\n");. v; }( Z( F. S& C
        }6 h+ G0 Y  l+ `: I' t
    }
& R) T& F! N4 D5 s7 W7 W
4 \) w6 s, B( o% T  `2 e    return(irc);# G/ c$ ^# Y( Z
}4 g. S! x, T- V% T

! z* W) b4 G' E: n. A* ]$ n8 X" X0 B. t# j6 p! E. [6 K9 l
/*****************************************************************************
4 S# w+ k' J' V  `: L* y**  Activation Methods
- y; H! s: D/ ]9 h% |( z6 @/ z*****************************************************************************/- W! x' u/ P) s* L1 y  ?' X0 H- ]
/*  Unigraphics Startup
9 c. o  C6 a& e3 ^) D**      This entry point activates the application at Unigraphics startup */7 ^8 C  {) ^8 q4 G8 U$ h% O
extern DllExport void ufsta( char *param, int *returnCode, int rlen )
, B6 v6 ^; u& ?. h7 k, N{
# V. Y; T4 a9 J1 F    /* Initialize the API environment */* N5 w. y% N& q/ [+ Y1 H& o
    if( UF_CALL(UF_initialize()) ) ; d4 G8 J' B( G% {- c6 X
    {: P  E6 z( {- G6 O9 u6 k
        /* Failed to initialize */
" M" u6 T- {2 x! R- g5 e; j        return;2 {; p) [1 q/ y1 `+ F
    }3 m, k- ~% U* {9 F9 G

* I9 L- W  T2 c% g4 \. w    /* TODO: Add your application code here */% a9 l3 p* j" r1 y
       
/ n7 @) ]1 U- E4 A  a+ d        //new part
& U. U+ z- m; @* G2 X; T3 i( Q# @/ V$ ]. ^9 j7 ]
        tag_t parttag=NULL_TAG;
( Z  `) n. J# w+ U! R. i1 E
( \* h- ^7 x8 m& F8 o1 H5 {        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);. r/ l/ u( H- Z6 a

4 |) o4 z1 w) s9 ^        //creat cyl. P; }' B. |. s

* N- _7 ^7 Z( ]/ T2 D0 O; `                double origin [ 3 ]={0,0,0};/ ~7 X7 [7 [5 Q! s% r7 X
                char *height={"50"};
# ?! Z/ A( ]% ^4 o# B2 ~                char *diam={"100"};2 ?9 W2 g7 D* x+ c
                double direction1 [ 3 ] ={1,1,1};
& ~5 l3 V& L  G  _                double direction2 [ 3 ] ={-1,-1,-1};               
( X+ Z, H: z" Z4 |: q! D                tag_t cylFeatureTag=NULL_TAG;  U/ L6 s8 C1 [: v7 Q6 [" Z0 ^: T
2 S* a8 e4 s: g. b3 j/ ?- ]; q  i
        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));- u; @) E# n. J/ o; c- A: y; b
        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));
, ~7 U+ y9 A+ x2 ]( S( y        //creat line
% H. C( i) ?7 u        UF_CURVE_line_t line_coords;  l2 l" f2 \3 g5 ?; p; f4 ]# y8 I
        line_coords.start_point[0]=-50.0;
% f* [% Q9 M8 z/ P1 E        line_coords.start_point[1]=-50.0;2 Z+ y" z* X" K' K1 s! B, v( j: _- n
        line_coords.start_point[2]=-50.0;
( _: ^" t$ M) m3 M& j/ `1 Z6 P        line_coords.end_point[0]=50;# A  F4 u. z6 }! e: F9 _6 O
        line_coords.end_point[1]=50;2 ^: G" N- \+ d
        line_coords.end_point[2]=50;0 ?4 [" p% n! _4 v
        tag_t linetag=NULL_TAG;
* K8 s# ]" P3 a0 W# T, {$ c8 Z
' x  j7 m6 h1 `! J- K        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));* z3 E- {6 l: D6 w* q# C2 P: s6 y' c
        //creat point
' L$ ^% n' \8 ]* Z+ Q1 X, Q+ Y        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};
! V8 u5 V5 d5 n: M, }: N2 i# @        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};
( C3 J3 d" M( ~; ~7 P1 `) G5 |        tag_t pointtag=NULL_TAG;
6 F+ S! z6 q+ M        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
( ]: M% H7 b7 P2 y4 G) t                double start[3];
, W! u& ]+ Z/ |& ]                UF_CURVE_ask_point_data(pointtag,start);- O' m  T9 _; _; H- i
        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));
* z9 W1 K! `+ N! j                double end[3];
' ^& l3 ?" ^' C5 [( V                UF_CURVE_ask_point_data(pointtag,end);
$ h. K1 L) n" K, M7 [8 K        char msg1[128];
) E/ ^# Y! s" Q9 j: h        char msg2[128];
6 @" A6 M2 t$ d/ `. D0 [        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
% T' d# h" x- |, O) Q8 N, @        uc1601(msg1,1);' u: q' q/ Q/ M
        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);; v. z  z) g# v% W0 g) Y. y: Q
        uc1601(msg2,1);
/ v# g6 q& x. `3 s$ G' B5 l        //mapping point from abs to wcs
1 Q( K9 f  B! T$ B1 b2 ^6 L  B6 d" z& G$ z' g
        UF_UI_open_listing_window();
' k- l; \+ u  ~% `3 g        UF_UI_write_listing_window(msg1);# m; L* h! Q6 S8 `; R# ^4 I
        UF_UI_write_listing_window(msg2);
" C: @& s; e+ y2 p* J; G$ Q1 W       
2 P; |9 ^* c. ~& E/ {( I8 d7 ]        //close
3 {* J% ~& R  p# w$ z$ Q# S$ O, y        UF_PART_close_all();1 S4 C/ N" \8 d5 t* b: f7 @

$ F" p4 T# v0 J, M: ^; |, \: }% c    /* Terminate the API environment */
! N' u" D' w5 F7 |1 B2 a    UF_CALL(UF_terminate());
+ k$ \9 i0 H1 H" p}, e4 h( m* Z1 j4 u" F' ?' c
1 z& X8 v" t2 v+ i
/*****************************************************************************% a+ E- E5 K' a0 C+ L+ m: ^7 x/ N
**  Utilities
  G5 B0 z; I& K0 U*****************************************************************************/
! d3 e( L9 Q' d) X$ y  J+ X5 R1 C8 ^% {, u$ |7 c
/* Unload Handler; k8 c: h6 _$ M# G) p; f  \8 a% i
**     This function specifies when to unload your application from Unigraphics.
( g& `" T% F& i# @**     If your application registers a callback (from a MenuScript item or a3 \1 G) E+ g; P' \4 f
**     User Defined Object for example), this function MUST return# N1 p% G6 r) f; t& y
**     "UF_UNLOAD_UG_TERMINATE". */+ A; j: z$ x" Q1 w# W- ^- ^) `1 E
extern int ufusr_ask_unload( void )1 @5 h$ \. B% z7 R. O
{
0 n# i3 Z: B9 `    return( UF_UNLOAD_IMMEDIATELY );
2 C/ D% o% g" v" c}. V' N6 Y0 L% ?; ]; ?

- V( e  O7 b* U" B0 u" D2 w# c5 C+ M1 H% H5 W
上海点团信息科技有限公司,承接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 编辑 % D9 R3 T& N( ~% k5 }

7 Y$ {/ H1 _8 V1 Z4 xL:\1
2 T9 W# P, t0 Q  u& L
                               
登录/注册后可看大图

/ T9 r, \: L' w                               
登录/注册后可看大图

4 ?' u( [6 t$ ]7 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二次开发专题模块培训报名开始啦

    我知道了