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

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

gsmfxsmy 楼主

2016-3-20 19:15:41

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

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

x
/*****************************************************************************
" `8 u3 }' w# J) L' i**4 V- q: p9 s( r$ Q$ j
** creat cly.cpp4 q" S( f- U  d  e- @# M& ^: s
**
" ^% M% D& J2 D) e( S** Description:
' a5 e6 J( C' }**     Contains Unigraphics entry points for the application.
8 G% B9 W0 U: j) y$ u**
9 w  X' G: V7 c6 c7 b*****************************************************************************/  p- p/ a0 N+ Z$ e" B2 `
  ?7 H, _9 o5 _# x
/* Include files */
1 y! Y* H% u3 `3 U#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
4 T4 n* O1 T6 K4 m. K1 {: |' L#   include <strstream>
5 I9 N' N; K& j#   include <iostream>
2 \3 y+ k- _8 A& G    using std:strstream;. Y# `" j$ n1 D# v
    using std::endl;   
/ l2 W% ~6 S% w9 H# h' w1 V    using std::ends;
+ A% N/ o- |7 r: D    using std::cerr;0 X# U" L6 H* x1 T& O3 F
#else
  _, O5 d" q2 o: H( ?8 x#   include <strstream.h>
  O  k8 E8 u2 u* P) s9 D3 q#   include <iostream.h>2 V! T1 n3 _3 w& w) s# j
#endif2 q8 k1 D2 B# r6 k/ T
#include <uf.h>
" X7 D& z  H7 N5 L" y#include <uf_ui.h>/ l" f7 Y# X1 `; I
#include <uf_exit.h>( n; G+ V6 l3 N
#include<uf_part.h>9 G( v# Q5 P; [5 h
#include<uf_modl.h># z. W' `' \% O
#include<uf_curve.h>
7 V- W* o9 G! x9 ?+ W% w( A0 }#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X))). s7 ]2 u; n7 u" \: Z

0 e  f2 {3 ]7 O3 A' d" e& l. [5 G
; p. I; b) I, Ustatic int report_error( char *file, int line, char *call, int irc)
' q0 ~: _+ Y9 C+ @, e2 G{
# |" x4 ?/ ^2 m/ N/ _    if (irc)" ]9 k- y& u2 z
    {  x' o- s5 D" Z! W/ Y: f4 e
        char err[133],
! f2 ^/ W/ X- V' L             msg[133];/ C, c9 x8 z( H: j
1 Y; X7 O% a! X2 O
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
. J" @& I$ w7 A            irc, line, file);$ [# f) [8 P' |4 ~: W' p! \
        UF_get_fail_message(irc, err);; L6 S" s( U$ U9 k. h) Q
! V7 ?# h$ s$ M) k
        UF_print_syslog(msg, FALSE);- p2 M* R& s; I
        UF_print_syslog(err, FALSE);' _% z' B. m* N/ u- B& c
        UF_print_syslog("\n", FALSE);8 X2 o: P- h) U+ K1 z$ C& U% E  y& ^8 J
        UF_print_syslog(call, FALSE);
2 S- v" @/ S" C        UF_print_syslog(";\n", FALSE);
. h& ?* l( I4 m; c' v# L
0 H1 H$ S0 c  }7 q4 L        if (!UF_UI_open_listing_window())8 O; k3 z3 r5 n0 B; D% s
        {' j2 v, j; C5 Z8 c9 y% C( x. {
            UF_UI_write_listing_window(msg);/ `  h7 n  d; C" L9 ^; A, O
            UF_UI_write_listing_window(err);
  u( k+ V/ k. O" Q$ P! O: L/ ]            UF_UI_write_listing_window("\n");+ j" C$ S6 T# x& y1 Z. q. }3 G
            UF_UI_write_listing_window(call);
) w6 V# s) n" ^. h            UF_UI_write_listing_window(";\n");
7 r, {( H5 Y" P6 r        }
6 Z, r9 H4 a# }/ _0 R    }
( ?$ y5 g$ [! [: @5 F
1 x. K( B' S8 H1 \" U  t( Y    return(irc);
0 p& V3 k: }, M! F# S}
8 B. X# m' Y* @1 t/ a2 h, \  T3 s0 T: s' k( }) }: `
' K9 B/ q6 c" |* I
/*****************************************************************************
( W% H/ x( `; X) l**  Activation Methods  n/ q9 H, A6 k- D3 h
*****************************************************************************/
2 i: }! l  u- H$ O8 f/*  Unigraphics Startup0 S- Y/ r% i; P8 {$ L
**      This entry point activates the application at Unigraphics startup */
+ L" g0 E9 h1 B* w" T, ~3 zextern DllExport void ufsta( char *param, int *returnCode, int rlen )5 n% c) L$ {/ x( H  l
{# O. F4 Q4 _% Q1 i, D6 R
    /* Initialize the API environment */
; B% k/ I7 N" o' @9 [+ N    if( UF_CALL(UF_initialize()) ) + g! b$ X1 `$ e* o  a
    {
  i1 {0 W  l, Q! E* _        /* Failed to initialize */6 a: H" F  Y& f& Y: ^. N' `
        return;* d. V% C# x; n* H  g4 f* {! @* y  N
    }/ D9 S) W- _6 c7 _8 Y3 x, C

+ Z& S( h" y) v+ _    /* TODO: Add your application code here */, L, O- x8 G# v2 d1 }
       
$ z& l$ P8 G( U: O, d7 d# P, h        //new part
  r9 x# I* K( e6 \2 x4 U. q* H5 {  D/ v( s$ u* f0 R% ]6 N7 d
        tag_t parttag=NULL_TAG;/ A( s( Q& ]2 [$ v2 r

9 C1 Q9 b6 j% l1 }+ x: c        UF_PART_new("c:\\temp\\plmhome.prt",1,&parttag);0 P) G' `. J0 z. q. v

- g' O+ K4 a6 C1 x        //creat cyl
% z- U% j( M! j$ Y8 r) N$ p% s: c( c2 {: R$ l# w
                double origin [ 3 ]={0,0,0};' p# k- a/ h7 Z+ Z
                char *height={"50"};+ G& o: \# T4 j: x  N0 o
                char *diam={"100"};/ v7 c! P9 U5 ^
                double direction1 [ 3 ] ={1,1,1};7 a( B  I5 v0 L( \1 g0 J
                double direction2 [ 3 ] ={-1,-1,-1};               
1 p7 Y* f5 x: d; i                tag_t cylFeatureTag=NULL_TAG;
6 d: }1 n9 z, S3 R7 y, u& F; v/ D: V) _
        UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,origin,height,diam,direction1,&cylFeatureTag));' \$ E/ B8 Y: A9 o2 [
        UF_CALL(UF_MODL_create_cyl1(UF_POSITIVE,origin,height,diam,direction2,&cylFeatureTag));# E  ]' |4 C5 `4 Z% M" x
        //creat line) y3 j( ?, Q! j. u" \
        UF_CURVE_line_t line_coords;3 X- [( o; q4 U% a6 V9 B% u2 S  @
        line_coords.start_point[0]=-50.0;! m1 m- {; ]" p3 w8 h
        line_coords.start_point[1]=-50.0;1 I. f3 s" i/ n& }3 K
        line_coords.start_point[2]=-50.0;! t4 ^: E  l3 v" Z8 ?
        line_coords.end_point[0]=50;4 ^: r) b7 ~6 n
        line_coords.end_point[1]=50;
# @) a9 x& Y2 i( S) P        line_coords.end_point[2]=50;
. ^; s4 v3 X: r$ n0 c        tag_t linetag=NULL_TAG;# S- p9 c, E4 l4 f2 w
. R; v# W! S; Z( p
        UF_CALL(UF_CURVE_create_line(&line_coords,&linetag));" V5 r/ H, w/ h" V
        //creat point  K7 d$ O$ W3 n4 C
        double pointstarTCoords[3]={line_coords.start_point[0],line_coords.start_point[1],line_coords.start_point[2]};$ r6 G: u6 u/ ^* R2 a
        double pointendcoords[3]={line_coords.end_point[0],line_coords.end_point[1],line_coords.end_point[2]};1 K: ^; s  k9 i2 M% J$ T
        tag_t pointtag=NULL_TAG;
7 v2 h& W  }+ v* A/ w- F, L        UF_CALL(UF_CURVE_create_point(pointstartcoords,&pointtag));
3 }- v. |5 B; s3 ^                double start[3];
, t* k+ f3 X, c) m9 I                UF_CURVE_ask_point_data(pointtag,start);
$ q# T/ K+ G9 s1 O        UF_CALL(UF_CURVE_create_point(pointendcoords,&pointtag));% D, x' e, w* Y( o3 z! e9 Q2 |
                double end[3];
) D5 ~0 `" F9 Z) P                UF_CURVE_ask_point_data(pointtag,end);
- E7 \2 }0 N+ c        char msg1[128];
  F* [. A+ q9 ~        char msg2[128];
6 z  z8 f4 T# s2 m, c        sprintf(msg1,"start:\NX:%f\ty:%f\tz:%f\n",start[0],start[1],start[2]);3 b2 C* y( W4 b6 m& t0 B1 D
        uc1601(msg1,1);" b4 l1 Y. ?) r
        sprintf(msg2,"end:\nx:%f\ty:%f\tz:%f\n",end[0],end[1],end[2]);) J5 [  }3 W3 m* R4 _
        uc1601(msg2,1);2 t  m7 O- j) J! U4 C# t6 I% |
        //mapping point from abs to wcs" U1 H) R& G( t$ ]0 d
- H7 `5 R- b7 k' Y1 r4 C
        UF_UI_open_listing_window();
2 N' a8 \. L, f7 t+ {( A# j0 O        UF_UI_write_listing_window(msg1);' x$ P, q( f& a( S8 L% L1 u  J' ~
        UF_UI_write_listing_window(msg2);
9 }7 S* f8 _( q) C       
" {* N* m; r6 j! C  E        //close
2 g, W' f* y6 f        UF_PART_close_all();
' |! x% r3 l; V0 {6 Q/ m1 I& P4 B1 H; ^7 C# C) e
    /* Terminate the API environment */, C/ b4 E8 t0 m
    UF_CALL(UF_terminate());
. a; P" _. N. a4 m! l}1 J& ~5 C8 ?, z- A) {1 M  Z
9 W) x; z# P; L2 O5 q  W
/*****************************************************************************8 h7 i  Y/ ]. X- q4 [' S8 C1 f2 t9 W
**  Utilities
8 _* h8 S+ Z; y2 `*****************************************************************************/; ~, _: k# U2 ~" l* U5 L- N9 w
: M/ ]" I( f* ?* n( t4 S' x0 }
/* Unload Handler) H* }0 ~' I+ b7 @. v
**     This function specifies when to unload your application from Unigraphics.
; S8 E4 t# l  @# N* o**     If your application registers a callback (from a MenuScript item or a
. m) j1 G' A( Q$ ?8 |+ U- z**     User Defined Object for example), this function MUST return
. u8 ^! ^' g  o" j8 E5 |; `1 @**     "UF_UNLOAD_UG_TERMINATE". */. h. A: v6 K+ v4 E( @$ G
extern int ufusr_ask_unload( void )2 ^$ Y+ ^* R3 t2 m& k% q! b/ ]
{8 M2 T: @5 x7 D3 q' V1 R! `( B
    return( UF_UNLOAD_IMMEDIATELY );, i4 {$ s$ {+ I& p5 j) k
}
# V9 X$ H; Q1 T- D+ ?" u6 V2 o
1 t' {, v% I; f9 }. G' g! A( q. _+ `
上海点团信息科技有限公司,承接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 编辑 0 f, ]9 U$ b7 y

. L2 F! x$ e+ d2 W9 e( fL:\1
; O0 E4 c7 V' e* e& c, I
                               
登录/注册后可看大图
, A# E8 ~- a/ t. l5 O- y$ y. w. g
                               
登录/注册后可看大图

' V- k& g* Z% O1 C1 |6 ^' ]$ {                               
登录/注册后可看大图
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二次开发专题模块培训报名开始啦

    我知道了