PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

[交作业] 20160320 lesson 2 2圆柱求和+手工输入中心线+点信息

[复制链接]

2016-3-20 19:27:35 3074 1

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************8 ~! M( q5 P" U) W0 ^2 X9 D
**; p" b/ @0 d7 _6 U" s. Y. k8 y
** creat cly.cpp
: `$ u6 v4 }% k4 E**  C7 e' K- D0 Y  F/ v1 i, G6 v! U
** Description:
0 Q# \# `/ k1 U+ K**     Contains Unigraphics entry points for the application.  \" C  M3 ?8 ?) R% I/ l5 G( w
**% e$ t+ O7 A0 q8 W8 v5 @
*****************************************************************************/1 j  R7 k% h) a2 |( c
* i+ d/ a/ F' p( p& j1 u- `9 `4 [; Q# v$ i
/* Include files */0 c3 p  Q. N1 j. o
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
& D* K# y/ Y* G# c  _+ y5 ]9 l#   include <strstream>
0 C; B% O* ~% Q1 z3 [4 h, C#   include <iostream>; ?& r) `( ^$ @
    using std:strstream;/ H9 s- M4 m0 S- [7 g0 [; Z
    using std::endl;   
0 G) z5 p" S* o' {8 ]8 e    using std::ends;& X7 n; r/ O1 Y3 a
    using std::cerr;
! |+ X. @' \% r0 F/ r* v#else
$ s' |" }/ |3 ~1 l#   include <strstream.h>1 B2 L/ Q; [7 }, b3 z# n& l7 w
#   include <iostream.h>9 [. `; w4 A! C' v5 m
#endif
- P1 A$ i" _1 O0 y3 b7 D#include <uf.h>
4 X' G# g% v+ ]( `6 S2 o#include <uf_ui.h>
$ s2 a6 ?' p6 z0 Z1 d#include <uf_exit.h>
6 `) P# {& S3 x* m, h4 y#include<uf_part.h>: M. g, u/ Q5 \5 D. }( h
#include<uf_modl.h>
. ~* {2 B! |4 z1 E% r8 Y& d#include<uf_curve.h>
6 E& N) o' ]" n6 Y0 [" W; P0 o#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
$ ]7 i. z, j5 S7 s# R) X
* K6 U+ W" C* ^1 X. ^9 S4 D% L% c3 I3 E% ~' C7 B
static int report_error( char *file, int line, char *call, int irc)
6 @7 Z' H9 |4 D$ K7 w{
4 M, o# s/ P' Q    if (irc)! @6 A8 ]0 `* n  h3 z, K' H
    {
0 e1 N: l! A0 i! @, D, M        char err[133],
! E- k- ?1 R" G$ d2 @' }) v0 ^             msg[133];, ?+ s9 a6 ?  w4 i! J

1 e8 A- c9 y" F4 F# P        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",& i% l  |7 a2 o0 L7 L' k
            irc, line, file);8 U, R  W5 Y4 Y6 |9 L
        UF_get_fail_message(irc, err);+ e" E2 A0 ]$ x3 A

5 l2 G! u) h5 d6 d7 K: ?/ G0 Z        UF_print_syslog(msg, FALSE);! M' u3 V2 E" B
        UF_print_syslog(err, FALSE);; M2 d) J4 |- l7 v
        UF_print_syslog("\n", FALSE);
6 o  y  u( ?  V! f  q% q2 v! m        UF_print_syslog(call, FALSE);
/ g% z' G7 L$ |1 m: e" c1 u        UF_print_syslog(";\n", FALSE);# k1 I8 s- _' [$ j( y7 t
; V3 ~: F: `: s, k( p/ I3 `
        if (!UF_UI_open_listing_window())* a8 q" v8 i3 Z% a$ m7 }: e$ `
        {
% u0 V/ S/ H9 V$ _            UF_UI_write_listing_window(msg);  `2 h( A' T. ?
            UF_UI_write_listing_window(err);
! B" a2 ]/ @/ ~) c            UF_UI_write_listing_window("\n");4 y& V, B0 ?( J' E
            UF_UI_write_listing_window(call);- o& T9 z# x3 C$ t) B, w% [
            UF_UI_write_listing_window(";\n");
6 _* ~; \3 @" ~        }' O9 }; s# }& |$ s: a
    }
9 j" u% \3 Q6 g5 e" a6 D! l1 ?& F/ _! r' k/ j5 \8 d- K
    return(irc);3 a$ i+ e+ W% Y  f5 b0 T
}& ~4 t6 b" M% U. [3 q

' M5 o/ h7 L$ p4 H% Y+ `5 `& a% U! _+ N: ]  w) v+ f+ m7 Y
/*****************************************************************************
$ g* x, T+ o; i# `  t**  Activation Methods! v# _- h6 C* D& ?
*****************************************************************************/% O! D% c8 N% W
/*  Unigraphics Startup- V% a5 N2 U1 A2 b  j& L- `, r
**      This entry point activates the application at Unigraphics startup */
8 r! F# J4 ?* O0 ]extern DllExport void ufsta( char *param, int *returnCode, int rlen )
0 b: u5 C* \1 S& d+ l) a{9 F' g! m# |/ P5 p/ i, {
    /* Initialize the API environment */
! l  m/ ~3 l' ~. I- B    if( UF_CALL(UF_initialize()) ) . u1 o/ v; e/ F6 B+ P+ u. G& w
    {# d* y8 W# p, X7 p/ z/ j
        /* Failed to initialize */% i+ r1 S" m! m8 B/ ~5 T
        return;( k% |* j# E" e$ |" C8 m# M/ @
    }
7 y4 `- m3 v! J9 t8 Q7 m  K2 [) Y4 z* J0 |7 e
    /* TODO: Add your application code here */6 r  F$ g  |: [2 F8 R6 Z) w- I
       
5 v  H" h2 C8 E7 `/ G' C. k( k" _        //new part# }2 z2 ?' o" X0 t
1 ]3 s- j. \- ^: @, m" [! e4 U3 v
        tag_t parttag=NULL_TAG;
" x1 [. O5 A- A' h& {! O5 y- \( n' q# d; i& E8 J8 M
        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);1 c6 g! l' b, ^& ?9 z. w" k

8 |. h/ w0 ^/ b3 {        //creat cyl
" V/ V4 C5 ], G! y8 G% ^) ?0 H/ \
( R8 Y$ O0 E+ M/ `1 p6 J' Y1 b                double origin [ 3 ]={0,0,0};& \' ?1 T  m0 ?! [  _
                char *height={"50"};# R6 B5 i* z, r5 w
                char *diam={"100"};
7 c6 U) K0 t$ _$ ]! K0 y                double direction1 [ 3 ] ={1,1,1};
4 v! H/ Z5 V3 U, ]3 G& g8 s1 |6 h                double direction2 [ 3 ] ={-1,-1,-1};               
8 `3 [* m3 i+ `3 i: w$ c  H                tag_t cylFeatureTag=NULL_TAG;
7 J& [5 k7 F( r$ f
$ z6 p$ e- q) e5 J2 h        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));; e, k: j( i2 I5 f; t4 u
        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));% @- `* ?& ~  \: [2 i6 i
        //creat line
2 R; T* q3 r8 C, Y6 T3 e! C        UF_CURVE_line_t line_coords;
) h- q& F. q: E# |/ {3 F8 Q        line_coords.start_point[0]=-50.0;: Q4 }4 t7 x0 H  |, o4 A* }2 S. Q
        line_coords.start_point[1]=-50.0;; p0 d$ P& u& L1 u2 D
        line_coords.start_point[2]=-50.0;
0 [8 Y1 ]$ g' Q; E8 o5 T+ j+ K. q        line_coords.end_point[0]=50;6 W9 Z8 D- A" p! n2 I4 y1 S" d: Z
        line_coords.end_point[1]=50;
0 `. f! f- a+ {' ?8 s, k( i        line_coords.end_point[2]=50;4 o9 ]4 l' d; X" U" U8 ?
        tag_t linetag=NULL_TAG;3 [8 C' x! e% y- c$ v6 \% V1 c8 ^; {
/ e5 M1 E1 s1 b4 o. R
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));0 o) @% ^2 a# z# W; R4 K
        //creat point
4 a! c$ B. u$ Z2 j; e7 g6 ~        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};7 D( T6 e% W3 @" S& p
        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};* ]3 |: _& E9 l
        tag_t pointtag=NULL_TAG;. k# T& G  G6 H- W
        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
" K5 S& E" c: k                double start[3];
& X4 S# [; `$ h: ~5 [; i                UF_CURVE_ask_point_data(pointtag,start);( }: O0 J" r# H( G8 y8 Q  t/ S
        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));- e7 X; t4 e3 D- m0 Y
                double end[3];
+ r9 R& x6 ]; d* ]/ n. L- |                UF_CURVE_ask_point_data(pointtag,end);
7 S8 J% z% v3 L0 l: [        char msg1[128];
1 H3 n5 [, B; V" t5 l        char msg2[128];$ f5 G% U6 ~4 s  x8 f% a
        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);: A% H! @& y* ]% s
        uc1601(msg1,1);% D2 u3 R7 p4 [5 P
        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);  ^9 m3 Z) G' s( G# Q) U
        uc1601(msg2,1);
2 d2 O* G  ]/ b2 d- W1 g; P        //mapping point from abs to wcs
& M$ p( C" G: h1 o8 u% k2 _5 P3 Q  f5 [8 E5 h# Z
        UF_UI_open_listing_window();
2 c8 E9 R) F' T- g        UF_UI_write_listing_window(msg1);
* D3 R; R$ `" B! Q$ v0 C        UF_UI_write_listing_window(msg2);: m2 m6 p" @1 p
        % p% N' _8 \) ~* W" R
        //close2 U& _" E/ N3 Q
        UF_PART_close_all();
% U) ?$ D8 ^) y% A* S, _* R  w* F) L% q) u
    /* Terminate the API environment */1 z" i# K1 m  {( O
    UF_CALL(UF_terminate());9 Q; H& T2 g" D. g' {
}
5 A5 x2 x7 [6 E: o% x8 p* C1 c) e/ @- r# k" p3 M0 M
/*****************************************************************************& q5 O' D5 X' J8 M
**  Utilities
; B- R- s& j/ W1 s6 n) b*****************************************************************************/
$ L4 j# \6 V0 h! i) H& Y7 {, h% V+ s
/* Unload Handler. I' Y6 l# j: s$ V
**     This function specifies when to unload your application from Unigraphics.
# W7 H9 _0 Q, ]* T6 q# \. h**     If your application registers a callback (from a MenuScript item or a3 S4 m: e" W0 }; y& A: q( F
**     User Defined Object for example), this function MUST return/ Q5 u, N  m4 @% M
**     "UF_UNLOAD_UG_TERMINATE". */- F6 `! J' r, ?7 `( D3 t! [: d
extern int ufusr_ask_unload( void )
5 s7 k/ x$ s. R4 k8 ]{5 U9 C/ E$ |0 C# V
    return( UF_UNLOAD_IMMEDIATELY );9 b: S: X" h  F: j
}5 @# O6 z) g. Y! X4 P. x
1 f- }1 j3 J5 c

  _" ~0 A. S) q% R
上海点团信息科技有限公司,承接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 编辑
$ g; ]* P; o! O+ y  X4 m6 C9 [
. ]- i6 @' X4 P% \* z: H- xL:\1
5 g8 p0 S4 V5 |9 j- p( J9 }+ F
                               
登录/注册后可看大图

3 C- ^+ ~) G0 j4 L7 p( n0 M) H                               
登录/注册后可看大图
$ c3 b9 S- B+ k/ n  J" n6 m
                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了