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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************
  ~' U* j5 A$ y% R( `**% I8 ~( @6 f2 l3 X- {) I, k% F
** creat cly.cpp+ ?% ]6 }- s# [1 q- T  g
**
; n4 u- e6 g5 o( H" h** Description:% W" M$ V9 d6 H+ H8 T
**     Contains Unigraphics entry points for the application.
# b0 K( I" A: Y8 ~" M, R0 I) w3 w**7 V# D1 m+ }9 E0 q8 l; v6 s1 r
*****************************************************************************/
2 b; X  C4 Q1 N) ]! d7 U
5 U/ |! e6 L0 o& {/* Include files */! y/ [- A- V+ C0 p% ~  D! w" I
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
" ^! B$ F% q8 f- g9 T) E- g#   include <strstream>
4 z, ~7 }6 M& g; C, T+ F#   include <iostream>
2 _5 W' a1 t, s    using std:strstream;
0 W& `3 Q1 ]4 |2 f  c- v    using std::endl;   
# L1 S" R5 r9 |) W6 i    using std::ends;$ l. H$ p0 g1 ]2 t: E1 l
    using std::cerr;! {9 |7 A& h: @! Y) l
#else6 }) X6 a/ D* A/ ~1 h
#   include <strstream.h>. o$ ]+ `. q" \2 g4 s3 j( p; e6 n
#   include <iostream.h>
4 t0 Y) T6 d; X2 q9 L#endif
# h  h7 e9 Q9 z: s% ^) ]( a3 y# G" Z#include <uf.h>
) h$ E8 n+ l4 }) |#include <uf_ui.h>- \( p: L# E) m
#include <uf_exit.h>, t% e6 |" A; a2 V7 Y. g* D
#include<uf_part.h>* `  o3 k, s$ h3 Y4 @
#include<uf_modl.h>
* g8 p) L- q- ]8 O#include<uf_curve.h>
$ b! `0 p' z  B/ A8 H#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
" j1 b3 L9 g% m) Z- R) V2 d! q
) e% Q. D& P& C! ~- }: f4 x- m" ^- g4 v2 @( T
static int report_error( char *file, int line, char *call, int irc)
$ T7 y  f4 _' h& q# p% D8 }{
% D% t' M$ c" l6 z" X' W5 E3 H    if (irc)/ q) h+ Z* a& A4 A) ?$ P- m' g" V# G
    {
3 n1 ^+ D5 q  a        char err[133],
5 q2 ^9 ^- X! Y) Q: k6 V0 g! s             msg[133];! v! t6 c  ?5 ^
  }2 F; u1 H. f3 d0 v6 I6 c+ \
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
1 A  r& F# {( i9 k: `            irc, line, file);/ T5 g& V% D' ~
        UF_get_fail_message(irc, err);' V6 k% y9 t( x: t
; B3 x3 j: p( r9 W+ h
        UF_print_syslog(msg, FALSE);9 X4 i" @: ?, ~+ l) Z/ F' Y5 L. e
        UF_print_syslog(err, FALSE);, Z+ j. H6 G, ~( K
        UF_print_syslog("\n", FALSE);, R0 k9 V, H$ N# m1 {, D& v. W
        UF_print_syslog(call, FALSE);6 U; x! l& M# H7 Z% Z* K- J' r0 p* B
        UF_print_syslog(";\n", FALSE);
/ V1 l7 N3 j9 k/ [6 \5 A
3 B+ i* _( }( A& c' a        if (!UF_UI_open_listing_window())
: ]5 `4 o8 P4 }7 k; Z! S# A! C- Q        {
- T' a& g3 Z: U: G( r) y            UF_UI_write_listing_window(msg);4 N- o# m" o+ w6 \3 }5 @* ~
            UF_UI_write_listing_window(err);% E2 k3 o# t2 H, o4 E2 a
            UF_UI_write_listing_window("\n");
0 ?9 z7 N, H. \, O, }- L  r            UF_UI_write_listing_window(call);
3 w4 @. A7 b( V' c( P1 l# y3 L% }5 r            UF_UI_write_listing_window(";\n");/ V' Y" A% k, E
        }
; K9 ?" j+ p  Z* B1 z6 c( m    }" Y1 w# X8 ?7 [7 Q+ i) v( e

* B( C9 d/ I; B& |    return(irc);
9 A7 U+ I$ `9 ~7 X8 v% P}. j- p* o; i( p5 @

5 [) J! V! I4 s5 |* w( n& N4 j5 M7 }; k
/*****************************************************************************2 U1 U& [' x# D( K8 p
**  Activation Methods
$ w2 ?, Z# l. S" r" n. f*****************************************************************************/' g5 i( C* M2 t2 y2 e0 x, Z
/*  Unigraphics Startup! H( n& x  D8 o2 H
**      This entry point activates the application at Unigraphics startup */
6 X+ q4 [; i1 I" ^; p9 p3 C3 @extern DllExport void ufsta( char *param, int *returnCode, int rlen )# B, o' Q4 S- x
{8 P. }, Z4 K# C" N$ X+ v+ E6 |
    /* Initialize the API environment */9 C+ P$ i& n) W1 f
    if( UF_CALL(UF_initialize()) )
/ ^0 ]7 ~+ V! p( R7 {# X    {! K! r& X, Z- U' T
        /* Failed to initialize */
( }! r/ Z+ I1 M! N! s        return;
1 v) T, }% ], p. t2 }    }* q) q/ G8 i  d6 I
" d! ~% k9 ~. t! O
    /* TODO: Add your application code here */
# Z: p5 v. W$ ?        * A) H/ b% L% m* r1 Q
        //new part
- Y& x) v! F* e1 q* S) X9 z  W5 ]0 o' P# Y  N. o# d; |. D' S
        tag_t parttag=NULL_TAG;, S8 n1 i& A# z* A
) R5 I% j2 W/ v
        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);6 t# z% q! X3 L+ y8 R6 T# ?3 U
0 r3 b/ T; s! ~* [1 E* _' r
        //creat cyl" ^. g# m$ {& c; \. B
8 [% o" B% M: r% J  k# e9 n
                double origin [ 3 ]={0,0,0};
  w3 ~5 {; ~# g6 f; N8 z2 \                char *height={"50"};5 l$ h" S& q% C( K- A. I7 v5 X* M+ X
                char *diam={"100"};. E" s& }) a: G& l! r
                double direction1 [ 3 ] ={1,1,1};
. q3 S! x3 T0 O  A0 q' |$ R4 `                double direction2 [ 3 ] ={-1,-1,-1};                & p5 i+ Y4 g$ f7 I+ G0 V, G
                tag_t cylFeatureTag=NULL_TAG;' I( ?3 I, R4 \( w+ {# A/ j
! r: o: }0 Y) C* P5 h: s' v
        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));1 `$ L; s& t' R7 P4 f# V
        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));
2 f! Y( E0 \- \3 ?4 ^5 q! m5 s4 z        //creat line0 F; I% ]  u1 `* T3 A* m5 x4 B
        UF_CURVE_line_t line_coords;
; i: }" }4 v7 p3 _. h4 R! q) M6 V% \        line_coords.start_point[0]=-50.0;
( o+ S( f" ^1 h/ ~        line_coords.start_point[1]=-50.0;
" [$ I! f2 I5 t" P5 L        line_coords.start_point[2]=-50.0;
7 I. o- H+ X# W! d7 o7 N! u        line_coords.end_point[0]=50;
5 z- K2 A; t2 ?* ]6 L9 j! u        line_coords.end_point[1]=50;
+ F$ l; }3 ?4 y. f' p) l        line_coords.end_point[2]=50;
) H8 T$ o) r" s- t' C        tag_t linetag=NULL_TAG;
! k: v. r4 ?4 w2 l7 t* T
: M+ T0 b* K# A8 @+ ]7 _        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));
% G1 N3 e" {5 k7 g2 T5 a        //creat point" r( V2 C* G. Z8 d9 {+ k/ l' B
        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};( a' Q& ~- v% t; u) u
        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};
+ }2 ~' W/ J& a. m8 M        tag_t pointtag=NULL_TAG;5 u; L' ]6 M* ~- P/ v5 A2 w
        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
4 M; b7 Z2 x4 Q5 w2 X/ S- R/ W                double start[3];
5 E& Z3 A# u# v& b                UF_CURVE_ask_point_data(pointtag,start);# n( ?6 u5 c7 g" Z% P  D; N+ Z
        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));5 A8 B" W7 L# R' p( \3 M
                double end[3];
  S5 L  w: a8 U: q0 M' V' H                UF_CURVE_ask_point_data(pointtag,end);
! B# a3 F$ X' b$ S# {# Z3 n! N        char msg1[128];1 W0 b- R7 ~# ^5 y' ]
        char msg2[128];+ g4 L; o* |: o  _+ W% y0 H! Q
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);
3 L' f7 D& J4 M7 F% x1 h        uc1601(msg1,1);" N) B3 X: a1 ^( X4 v
        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);
+ d- W; X0 G' |. }& I6 e        uc1601(msg2,1);  i. y- ]' ~. z2 U* c4 T
        //mapping point from abs to wcs5 ~' l$ ]9 a* y1 M
! ?/ E7 ^& Q7 d6 w/ F
        UF_UI_open_listing_window();
8 ]( e# Q( T. K0 I3 K        UF_UI_write_listing_window(msg1);
& Y: w' m3 J" U  l! t, `        UF_UI_write_listing_window(msg2);
, t8 T; P/ h5 H. D: \, [3 u       
* ]; d* X/ |8 S% m* w1 @        //close
6 h3 b2 E7 |, w( |: T. u4 t  S        UF_PART_close_all();
3 C. ]6 i2 q: N5 Q2 Z( z2 P: U: B$ M* e
    /* Terminate the API environment */
1 \7 ~9 m( ?6 Z6 ]8 H$ l3 }. Z    UF_CALL(UF_terminate());
/ J. Y) e2 g4 ]" F}+ Q6 b" i. G' n- _* f0 j
& K# d: `% d' v! s  G5 ?
/*****************************************************************************
' c* C# ^/ y+ E( F, B! p**  Utilities
" n1 z& W& D7 S4 b8 n" ~- S*****************************************************************************/# V/ [$ K2 w# t
- a" t2 r4 p! q5 x7 g& p
/* Unload Handler
2 f6 t) ]+ Y$ A3 W- @  ~**     This function specifies when to unload your application from Unigraphics.) O$ y" U; k0 w6 ?, r) _2 U/ ]$ }
**     If your application registers a callback (from a MenuScript item or a
, h+ _) l3 Q( q" G5 f**     User Defined Object for example), this function MUST return
9 W+ t1 Z8 [) p0 t**     "UF_UNLOAD_UG_TERMINATE". */0 P( }7 v. D- U$ w7 Y  m. m( l# O
extern int ufusr_ask_unload( void )4 w! W  P6 t3 p  c
{
! a0 N$ ^, c  `, K    return( UF_UNLOAD_IMMEDIATELY );3 g& c# g! n- [! N9 A- ^
}6 H6 t8 K5 x8 I1 S1 l* J8 H" C

  D4 S! B( G2 X! y
- j; {% j, T% n$ \% X; 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 编辑
9 z# w; d* X8 i' g2 O" s: K* a6 j
4 l3 i' E8 e4 o1 J' yL:\1

7 b$ T" C: R- L2 g                               
登录/注册后可看大图
! e& S3 `9 n4 w$ u1 a+ r" `; V/ V1 k
                               
登录/注册后可看大图
; J4 w  S8 C$ K% 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二次开发专题模块培训报名开始啦

    我知道了