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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************2 Q* q+ B+ j8 l2 {5 K
**
$ c: V+ @9 @4 T** creat cly.cpp
- N% f' F7 l3 {; ]! R**' q2 R1 Q& [* ]
** Description:! s: g4 }7 y) F
**     Contains Unigraphics entry points for the application.6 ?# L  C2 N6 F% j6 p1 J
**
0 h# j. S" L" [# r6 G9 c6 o0 _9 p) Q*****************************************************************************/
. B! H, Z/ s3 Z5 G1 U/ x+ B6 R% w- }( U% s7 [! P3 y! ^, a
/* Include files */
: o& v) q$ p5 n0 ?#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )2 [! @! S- q" ]& N" g, N. F5 C* q
#   include <strstream>
" I' f7 n8 U; q5 |; q#   include <iostream>6 d% n0 |/ F! z; h* l
    using std:strstream;9 b' U& F" I4 C* B( F
    using std::endl;    ' r5 G3 I: o  j+ A; n& }- ]) v
    using std::ends;0 R* o8 I, ]. {5 P+ N9 g$ r
    using std::cerr;; T( I9 [2 w& h' Q4 h
#else3 x! R% Y6 y2 A: b' l
#   include <strstream.h>! [+ a. v" F. K' [
#   include <iostream.h>! ]- q, H! d3 K  o3 w% J7 A) s
#endif* A& Z# T' U+ U% ~- n
#include <uf.h>% l0 V! i) K" m
#include <uf_ui.h>
6 Q; L9 Z% m, O* E% F#include <uf_exit.h>' T2 G* e2 \' g$ d- l
#include<uf_part.h>- s0 u# `, ~# b$ _# }
#include<uf_modl.h>) |" L  F# m9 w* T4 ?6 ^0 y; b
#include<uf_curve.h>
# N& o- h; z3 n#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))1 Y" c# p4 h3 [4 @7 _* b) J

% M  z! H. i9 Y% [+ O3 V
) I( @' [. U& A. q( mstatic int report_error( char *file, int line, char *call, int irc)3 ~. ?. i* i0 |& d1 q6 L" G
{4 c/ U9 O# Q: {4 D( J( c
    if (irc)1 W3 n2 Y# v; a/ B' }0 n
    {
0 V+ M$ r/ K7 _2 V) Z0 v        char err[133],
+ M! z8 K* p  w& b. p/ }             msg[133];
8 _  J8 K5 c9 d3 d4 m" S! c6 Y: F+ B! G9 m" Q! q2 G! e- H; J& |! L4 s. J6 \
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
4 K, x' M& n5 h, Q$ x# o            irc, line, file);
" J. H5 }, J  d! y- y        UF_get_fail_message(irc, err);
8 q# \/ L1 O4 {2 \- ]; H/ b
6 G9 h# Q$ |8 M# I1 _2 L. p        UF_print_syslog(msg, FALSE);% x8 c4 h; p2 @* \* p3 n
        UF_print_syslog(err, FALSE);
0 I1 H0 S7 P$ e6 z' g        UF_print_syslog("\n", FALSE);& t4 _: {& O9 n& \! a
        UF_print_syslog(call, FALSE);2 [: b/ K. G4 ^, H% i
        UF_print_syslog(";\n", FALSE);8 B& K0 U. q5 J, F
3 w/ l& g4 V, h: A& [
        if (!UF_UI_open_listing_window())
  [5 r! w5 e4 k' j( s6 ]4 P        {% m) _! ~; ^2 p4 I* y( B, `
            UF_UI_write_listing_window(msg);3 E) r6 l7 N. I  k3 s! l; g
            UF_UI_write_listing_window(err);
7 e# R8 v) `8 v$ }0 }4 D  ~            UF_UI_write_listing_window("\n");
% m2 R1 ]2 M/ j2 I            UF_UI_write_listing_window(call);
) l: F3 o2 g; q0 E$ J5 d            UF_UI_write_listing_window(";\n");
3 Z, [5 c5 T1 L1 ]. a        }4 `' L" D% ~* n. ~; W# Z
    }% a7 K; j; w2 _& j& w. o
- R; t. ~/ W) o/ z9 c6 X
    return(irc);
2 u- ~5 F. |' \8 n2 p1 d- H. V% y}
, Y6 f2 V/ d/ E2 W0 h5 I
4 c4 D' @3 l9 ?' {( m7 @" O& V( e0 x) n! z& S& H% x7 d
/*****************************************************************************
! E7 T/ D5 @9 c$ h0 D' H**  Activation Methods: v) s7 G3 e: j) d
*****************************************************************************/0 X' X: ~9 @! D& ?2 J/ s
/*  Unigraphics Startup
' c5 v3 I; n  R4 Y**      This entry point activates the application at Unigraphics startup */
- E% X0 P) E; |: g4 h" aextern DllExport void ufsta( char *param, int *returnCode, int rlen )( S8 e2 @- x$ T2 a& c. B
{7 b2 ~  H! L& {( Z" g
    /* Initialize the API environment */
0 O& R; c8 B( q& x0 L+ i) l    if( UF_CALL(UF_initialize()) ) ( n; s: G6 F3 T# V
    {
8 f: L* S% S- E3 z( M& F        /* Failed to initialize */+ ?* p# P; ^' N" F, R' A, B
        return;
$ i, `- x$ l  A! r) `- k6 n" Q    }, J/ L+ s4 q- o5 }4 f
. E1 l( |2 l( ]3 {7 k9 a
    /* TODO: Add your application code here */3 z1 }! w* ^- G( u# Y: [! Z$ }2 ~/ }) T
        / `  j+ Q: q  _7 f* R: T
        //new part0 D; m' `  O3 I" F
8 k" j9 h2 j9 Q  n( i( e6 \1 q$ j
        tag_t parttag=NULL_TAG;
4 g6 S. o2 m! i# z* @; n( G, f$ M. z1 t4 V: m2 I/ s
        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);
' o8 G! ~$ k# a& ]
2 E* h2 E. l1 ~5 _; l& y        //creat cyl$ N2 d( L- }. r
0 x1 q8 S, F" |
                double origin [ 3 ]={0,0,0};
( ]9 M- ^* S7 \3 v  U' z                char *height={"50"};5 E+ f) h% `5 _5 X1 v. b/ i) r, e
                char *diam={"100"};9 ?0 O) P: @7 a% D( i7 S5 O
                double direction1 [ 3 ] ={1,1,1};5 k5 F) Q1 o, y+ @$ a; {  u& L6 |
                double direction2 [ 3 ] ={-1,-1,-1};               
! O. F1 p; }' b, a+ H& j( S5 z* ]                tag_t cylFeatureTag=NULL_TAG;
8 j; L! ~/ h8 Y, V8 g# |
3 w% @- \, _3 T1 L: w& B3 Z+ u        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));6 H2 |5 e$ f% B0 B, \0 f3 Y
        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));' N/ {8 [) Z9 l2 l0 [
        //creat line% E; W" f( D" V* q/ D2 M$ u
        UF_CURVE_line_t line_coords;. @% E' a: M% |2 s) U
        line_coords.start_point[0]=-50.0;) X' }2 F+ l, A9 `, f
        line_coords.start_point[1]=-50.0;/ l' G5 Z& f# B  i5 v$ s
        line_coords.start_point[2]=-50.0;
! t; h3 x5 i+ d. h5 @. H: P6 L        line_coords.end_point[0]=50;. F. N# i! T6 b+ ]
        line_coords.end_point[1]=50;7 E. r  f9 ~' q6 X3 z. \5 K% D2 P
        line_coords.end_point[2]=50;" e# u3 y( S, Y6 B( c- [; C
        tag_t linetag=NULL_TAG;8 W+ i1 v8 r# x; f5 e
' a6 k/ {+ u1 Y7 e; |% R
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));; H/ W. c' m, r2 y, V/ }/ o8 l, G& R
        //creat point
4 P. F7 s  U: L9 K9 _1 q! z        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};- k9 t! T6 K2 U9 g4 z
        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};
7 [( C6 G5 L4 O0 @/ O" G0 V( O        tag_t pointtag=NULL_TAG;; i5 G- _5 h, f& |& m' v& b0 ]5 f
        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
4 o' v8 f+ d) }/ U  C                double start[3];
! B' l- I# L5 u$ \# N, t; u                UF_CURVE_ask_point_data(pointtag,start);) _" b, `( v) r
        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));
8 E( I9 ?7 k- g& d6 m                double end[3];
* M' |  [, O  o8 E9 q1 A                UF_CURVE_ask_point_data(pointtag,end);) Z5 p: u, U0 I
        char msg1[128];
9 b: `3 p  d1 i- x3 N. f        char msg2[128];
- M, |2 P; a$ O) b" k/ l        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);0 j6 M$ \+ C, K+ I# k. u8 P& r9 e
        uc1601(msg1,1);8 a) K4 q, J4 J) e9 i
        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);
5 x/ f% q$ T0 u" U( O' j( S; J        uc1601(msg2,1);
' Z6 X9 H& q* q- b        //mapping point from abs to wcs
+ r( P" n" G! S2 v# }! Z0 \
% @# b* g, M4 K9 W* E        UF_UI_open_listing_window();
; G) b3 q5 {6 ^2 Q        UF_UI_write_listing_window(msg1);
; A- d& R7 S) e" v* z# P2 m2 S  V' O        UF_UI_write_listing_window(msg2);
2 R5 U) G# c( h1 u2 W1 T6 e        - g) F8 ~$ Q5 n' I. \- O/ u
        //close
* }4 ~- t! @) v  R        UF_PART_close_all();
% h- t: y4 ?2 X. N9 J* s' x6 X3 B, Y) Y
    /* Terminate the API environment */! B: \7 \$ P: i* M
    UF_CALL(UF_terminate());
) B, c+ m2 \5 V/ r- e0 ^* A}
2 g4 s; _5 F- l! H) g- g& }5 I6 b) I' q
/*****************************************************************************3 [8 O( T' d4 c& a9 [6 M
**  Utilities  j5 O% e8 i) ^% M
*****************************************************************************/* `# _1 ^( n" A* X- Q

% ^1 x$ M$ I5 _/* Unload Handler2 X$ e5 q4 P/ D" Q. {7 T0 p
**     This function specifies when to unload your application from Unigraphics.
# u3 Q" _7 ?% Q+ {9 Z( |* t**     If your application registers a callback (from a MenuScript item or a$ [; W* z; R( p% R  E
**     User Defined Object for example), this function MUST return
& B, m5 c9 J" n**     "UF_UNLOAD_UG_TERMINATE". */! r8 }7 s& x$ v
extern int ufusr_ask_unload( void )
  Z2 x) o0 U, w" s- r7 m{. h% B1 d; D7 @$ e- Y/ X
    return( UF_UNLOAD_IMMEDIATELY );# e& V8 i9 }' S- L
}8 V1 r7 W7 _7 L$ B6 a0 a0 y6 p

$ B" T; H' r, n2 _- c7 Q6 S4 o2 |: ]
上海点团信息科技有限公司,承接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 编辑 / ^7 G. e/ ?  G; J- \
& f) A8 G1 `% W4 J$ B5 @
L:\1

* C; V  q  Z9 U3 D0 V( a3 `7 d; w                               
登录/注册后可看大图
/ T' C: e+ B# I
                               
登录/注册后可看大图
8 B- i8 |, T: m8 _
                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了