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

[求助] 在制图中标准垂直尺寸,麻烦看下代码按书上的老出错

  [复制链接]

2014-8-13 21:53:12 4355 4

北方的候鸟 发表于 2014-8-13 11:23:26 |阅读模式

北方的候鸟 楼主

2014-8-13 11:23:26

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

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

x
extern DllExport void ufsta( char *param, int *returnCode, int rlen )4 {" j, X5 U8 ~3 Z1 l
{/ B2 h: w  `* V8 D' T
    /* Initialize the API environment */8 X; m* z8 v# C9 r% b, X
    if( UF_CALL(UF_initialize()) )
- _* v! |, L9 b    {1 |  ]8 L7 L& s4 B4 G3 S, I
        /* Failed to initialize */9 s" E: t0 j. y( o1 N) F
        return;8 ~6 x7 k; @- A+ a
    }; h8 c4 P  P* H: X6 V
    8 N. h. r% M1 P0 H# z
    /* TODO: Add your application code here */" L0 R- Y8 o* Q* z, r+ G
        tag_t part_tag;: F2 A0 F/ U) t8 K
        part_tag=UF_PART_ask_display_part() ;
6 o1 y# a! }" M: e! Z- A+ M        int num_views;9 m, B1 g6 Y+ j2 J
        char message[MAX_LINE_SIZE];
* v3 N+ o/ z( a7 b, P( {) c        ! }% b  O2 s) }$ n. v: {
        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";( r, Q# i( `, l# V1 {$ O
        UF_DRAW_info_t drawing_info;3 \/ ^) U7 }3 _; z$ H4 l* t3 G
        tag_t drawing_tag =NULL_TAG;
, \( R) K( H7 S3 W9 x" Q0 q        tag_t view_tag=NULL_TAG;
/ }. ]- l1 |) z
# T9 J1 Y* v+ ~9 M+ G- _        tag_t front_view_tag=NULL_TAG;
9 q' @8 m! v: k0 C6 [        char *front_view_name="FRONT";
6 W1 ]# c, D+ t" d0 u' W5 e        double front_reference_point[2]={210,400};
8 n; g+ b- ]( b/ @- X+ H2 O+ P- U+ L
1 f, I7 Q& @2 L# v/ e" Z8 t        tag_t tri_view_tag=NULL_TAG;1 G# D( V) S" L
        char *tri_view_name="TFR-TRI";) |, Q1 i2 \; R! R; F3 W
        double tri_reference_point[2]={630,120};
- |, Q- ^5 s7 @4 Q1 L2 R& Z# ^8 H3 n9 h% G
        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;
! L. k) O3 M5 q" S3 _        double botton_reference_piont[2]={210,120};$ P7 q/ Q2 M2 C, o. x
        tag_t botton_view_tag=NULL_TAG;4 G; F4 b3 ?0 g7 ?; v

3 {  ?5 \9 M/ ]. W6 V        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;- J# N1 Z7 ?$ Z; U: S
        double left_reference_piont[2]={630,400};& i- l5 O3 ]9 W/ _. Z( d5 ~
        tag_t left_view_tag=NULL_TAG;+ ^5 K* \0 Z3 s* f  W/ ]: _
  W! B. B1 `4 x4 M  ]
        drawing_info.drawing_scale=1.0;2 z' f. |! ~, K9 l3 _
        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;
: H& d5 g6 E5 o) q4 c        drawing_info.size .metric_size_code=UF_DRAW_A1;
- u0 Y$ U  Z* ^: e+ y        drawing_info.size_state=UF_DRAW_METRIC_SIZE;& F: t2 |1 e% t/ @& l6 C
        drawing_info.units =UF_PART_METRIC;4 R, A4 t( y( M, P5 c6 k. A
- H; T/ S4 m) z4 D6 }8 B' p+ G
        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);
! Q6 e0 D8 C: _: V        UF_DRAW_open_drawing(drawing_tag);
8 t- B4 |- }0 k# \5 U: b- V
, N0 Q. Z9 m2 A2 [  U- L        UF_DRAW_view_info_t view_info;
& g9 r7 R7 o3 r+ j        UF_DRAW_initialize_view_info(&view_info);& \* i+ z: `9 k- O0 E/ M

7 ]# U' t+ I; |( q        view_info.view_status=UF_DRAW_ACTIVE_VIEW;% R2 W; }/ i/ l1 ~% j, E+ X* R0 I! l
        view_info.anchor_point=NULL_TAG;5 e5 H- n- N+ A- A! e" ?3 C! V
        view_info.view_scale=1.0;* X: F  p7 N, P5 a% a
        view_info.use_ref_pt=TRUE;( l: `: U& c. _( M" K" M
        view_info.inherit_boundary=TRUE;
1 H, }0 p5 A( e7 H- c& ]5 e
9 P  D: t- E' k5 V& Y        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);
& W: v, z5 g" @        if (view_tag!=NULL_TAG)0 O" C6 }; u3 T4 A, x6 K
        {- A" P# b8 K" O6 R! x7 J& w( H% Q8 A
                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);5 [* O; m+ j5 i4 M* ~
                UF_DRAW_define_view_auto_rect(front_view_tag);) z& e( W: c) H" R7 K" X4 \; u
        }
1 G; ?. a4 T! E. `        view_tag=NULL_TAG;
6 ~  r  y3 z' @+ i5 T$ d8 \5 \
8 ?( n5 b' ]! @- k3 R        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);
; d6 t7 n  F- v( m3 V& W        if (view_tag!=NULL_TAG)' H' s% R* _  ~! p$ D% @  ?' x0 e+ e
        {
: p4 C* V3 V1 i9 r% D( {: k                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
8 F. X0 E4 }" H# x6 |                UF_DRAW_define_view_auto_rect(tri_view_tag);4 M) L6 W/ R7 [* l- l3 `5 J5 d! b
        }
, x5 r0 {) E0 \8 A$ v4 ~    if (front_view_tag!=NULL_TAG)
" q: y& R: i9 ]& t. ~    {
0 p! {. c5 J6 ]' N                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);/ A. c; w& [( X. O# M
                UF_DRAW_define_view_auto_rect(botton_view_tag);9 ]( O: Y7 \% ]/ l" W- m$ C
         }* b0 d! H0 _( n* f% {
        if (front_view_tag!=NULL_TAG)( S; |6 H, h) D# C$ X
        {
7 U: q0 D) l7 B% k                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);, l5 y6 ~% U/ @# g3 B
                UF_DRAW_define_view_auto_rect(left_view_tag);* E. W* _; j  {
        }
' e0 `, n8 u2 l8 b, P
/ P: Y* Y% |" ]/ U- f3 L) l& A8 D7 C3 X; I* _
        UF_DRAW_ask_num_views(NULL_TAG,&num_views);
" o0 v. s* w5 Y' F0 Y: o8 T        UF_UI_open_listing_window();
0 |9 X) Z+ B5 D+ {9 J* L4 H5 ~. Q* _        sprintf(message,"当前图纸共有:%d个视图 ",num_views);( v' f0 ?& s1 H' e: Z
        UF_UI_write_listing_window(message);
! E9 P9 f: r* x3 e+ M7 R7 B7 `9 S8 G
. p6 h$ N; k7 U
/ V" m# M' |5 Z4 S8 f3 W9 V* i6 Z
& b$ L4 s  L- `9 g# @) c( A  \        tag_t object=NULL_TAG, front_objects[6];
* ^" B# F5 v/ I5 x) Q        int    subtype, type, count=0;
' n2 Y6 k  }1 I        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );: q( e/ p8 }/ W- u5 v& J
        while(object!=NULL_TAG)
. [0 L& X8 `7 w6 T        {
& ]' O2 W/ A+ J6 P! j                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );
, J8 b9 o! d( l                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )
: ]/ V& c4 l/ S7 \1 r6 u/ L; B                {
: r9 X* V3 n  J6 |                        front_objects[count] = object;- }. r* m4 L# o/ S+ F3 A
                        count++;
# p. d  z. |' M+ v: S                }
( a& U7 G0 Z" s. R, v                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );! ^  r# i/ L8 k1 p
        }        
) W2 N+ f, l( _) I        UF_DRF_object_t object1;/ g3 g: \: o* }2 n, N
        UF_DRF_object_t object2;
6 n6 K) x4 V+ Z! h0 A$ I1 ^- l        UF_DRF_init_object_structure( &object1 );* B# T- N  d; W9 }# {# P
        UF_DRF_init_object_structure( &object2 );
' k- C/ Y& _" F7 x4 j7 l        object1.object_tag = front_objects[ 0 ];8 ^* b5 o4 ]( `8 B& c3 E! G
        object1.object_assoc_type = UF_DRF_end_point;: E! k0 r& y+ h
        object1.object_assoc_modifier = UF_DRF_first_end_point;8 L9 o3 A  y! N% R; j2 i
        object1.object_view_tag = front_view_tag;
0 n- [. E& A( q( H        object2.object_tag = front_objects[ 1 ];
! {9 W  [$ z- v  c, C& U4 T# s, I        object2.object_assoc_type = UF_DRF_end_point;+ a# M1 U/ V9 Q# k0 G) c# [8 H
        object2.object_assoc_modifier = UF_DRF_first_end_point;
- ~; W$ b$ j7 R, d7 m5 z9 L- ^* Z        object2.object_view_tag = front_view_tag;
  I4 X: e; a3 c0 W2 S        UF_DRF_text_t dim_text;
, y$ s7 h/ T8 C: v; j' W+ y- G, i        dim_text.lines_app_text = 0;
" v% G" S% O$ ^4 R        dim_text.appended_text = NULL;& T2 Y% G. d! z0 g
        dim_text.user_dim_text = NULL;
$ H+ U/ r3 Z+ ^7 l( {" ~0 `        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };3 m; @9 F+ }; D% f0 ~: E
        tag_t dimension_tag=NULL_TAG;
6 A" E; D+ _7 S. {( h' h0 R& t4 L        UF_DRF_create_vertical_dim( &object1, &object2,
2 A2 C" H; F3 _1 Z& `                &dim_text, dimension_3d_origin, &dimension_tag );  
1 A% }  Z, `1 O) d( i: X. h) a: C8 G; g9 m) h$ W: j6 u
) t0 z5 M, Y# O: `% w
        UF_DRAW_upd_out_of_date_views(drawing_tag);; w( N+ D9 H* f! N& e4 D' |0 z4 l- L
    /* Terminate the API environment */: Y- {5 C: j/ v9 ]2 J, B3 H
    UF_CALL(UF_terminate());
4 C% V6 x1 w2 s, ]5 z- X  c' z$ x}
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复4

admin 发表于 2014-8-13 15:15:49

admin 沙发

2014-8-13 15:15:49

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本  y* I: D% z" T

+ b: Y4 C, ]+ k# U- X如果是 1 y# ?; T' x% Z- ~9 y1 d
那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下
" }. H) L& W% J) J' g' P* B) d$ u7 t. v+ ]
如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

北方的候鸟 发表于 2014-8-13 19:08:40

北方的候鸟 板凳

2014-8-13 19:08:40

UF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );  
. ^) p7 ~2 L: M1 l2 W' V: D1 r, H5 m% P$ T
书上用的是NX7.5我用的是NX8.5,就知道这行出错了。这一行错误但是我找不错误原因。
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

北方的候鸟 发表于 2014-8-13 20:43:32

北方的候鸟 地板

2014-8-13 20:43:32

[img]C:\Users\pc\Desktop\捕获.PNG[/img
! n! M; j' w' P1 K当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:$ J8 s' ~5 R9 a; |
+++ Encountered unexpected NULL pointer. See system log for details
! j' k' D4 ^2 b' ^* }/ IUF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );
( Q/ U4 V% Y" D4 S5 d) n8 I! s; l空指针,还是没找到!
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

mildcat 发表于 2014-8-13 21:53:12

mildcat 5#

2014-8-13 21:53:12

北方的候鸟 发表于 2014-8-13 20:438 {* c. k9 g! }5 X. E
C:\Users\pc\Desktop\捕获.PNG[/img4 j& B. ^. a! D1 [
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...
$ ^( B% i2 a% c
那就分析这个地方啦  
/ b* q# s; A) r+ E' Q9 C
" q: H* Q: Z: Q我没法给你解答 没时间给你调试这个
* w9 U* ~, N0 |
0 i  ^: t8 `0 \$ n! }1 R你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了