PLM之家PLMHome-工业软件与AI结合践行者

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

  [复制链接]

2014-8-13 21:53:12 4465 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 )
. Z9 z0 E* ]1 H% O" Q7 F{. {9 j  U* m/ m2 R  R
    /* Initialize the API environment */* V0 ?0 B" Q0 z0 E4 t
    if( UF_CALL(UF_initialize()) ) # c. C0 [1 U' W% V8 ?
    {
7 ^' j4 l) B9 m1 R        /* Failed to initialize */% I7 j( g' v- P" H3 ]
        return;
' M& A# q  m' z  r3 h1 V1 ~: Z    }" ~' [+ e; a/ b0 ~
   
3 Q' `2 f! Z% C9 L$ T5 f    /* TODO: Add your application code here */% D. T) F, i( R% L% q. K& z
        tag_t part_tag;5 A6 P; y. C  j7 n: r+ F2 Y: H, H
        part_tag=UF_PART_ask_display_part() ;% _% I. I" A  r/ P5 |
        int num_views;: U+ v! X" z, p  X% l  D( z9 ?
        char message[MAX_LINE_SIZE];
' u; y1 E3 U$ C0 ?! `" S+ p        , Z9 p  r  T. _4 `' x
        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";' |9 e* h2 q5 G, P  V+ I4 @
        UF_DRAW_info_t drawing_info;
  ~+ h/ \) ^; z. z3 C* U0 ^        tag_t drawing_tag =NULL_TAG;7 O% o' E* D8 q2 j! ]9 x1 n$ R
        tag_t view_tag=NULL_TAG;) m$ U# w8 p+ d" c$ J4 k- P; m
/ X- E0 C* U& y) X' n1 k
        tag_t front_view_tag=NULL_TAG;
0 Q6 V5 v! p3 l, m        char *front_view_name="FRONT";
+ }1 d) O; n% X! I! G+ G7 Y: c. L- ]* B        double front_reference_point[2]={210,400};
$ F+ e9 y( Y, |2 m
9 L; q5 l* Z6 }5 |        tag_t tri_view_tag=NULL_TAG;
# R+ O6 X! ^/ J+ D# T$ x& p9 ]        char *tri_view_name="TFR-TRI";2 l( @& D/ }8 }$ k1 ?
        double tri_reference_point[2]={630,120};* ]9 o% C, R/ }  F0 c* M
0 l7 z) \$ k) G7 j1 _  f4 a, N
        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;
2 t, m; {- a9 |" p        double botton_reference_piont[2]={210,120};
  f& s- A5 p7 p; T& M8 z        tag_t botton_view_tag=NULL_TAG;
% r/ [' T9 J! b
  x% @0 J1 q1 Z        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;) k8 p5 w; i1 r" h; j
        double left_reference_piont[2]={630,400};' w& W+ f6 a3 Q& P% T
        tag_t left_view_tag=NULL_TAG;0 }/ u& z. ^' K2 M; O: r' v
6 P" y9 x2 g( i9 g3 E% K$ G
        drawing_info.drawing_scale=1.0;( E8 j; C2 m+ D( N! W0 S; ?
        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;
! c/ I6 {9 c( ]: w/ P% @( z        drawing_info.size .metric_size_code=UF_DRAW_A1;' p7 r6 C8 J% G1 ~$ x
        drawing_info.size_state=UF_DRAW_METRIC_SIZE;
. h$ W- p( |& V+ A        drawing_info.units =UF_PART_METRIC;$ r8 d, n& l  s; j' K
6 s7 o+ y. I. H# s
        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);
: s$ N& `& W' E  W5 U        UF_DRAW_open_drawing(drawing_tag);
( W" f. k5 [* U9 \: x
( I0 t; O3 ?9 K( c        UF_DRAW_view_info_t view_info;
% N8 p# f1 j9 Y6 F" k% v        UF_DRAW_initialize_view_info(&view_info);1 I( s+ ~, d8 a2 f( R, `7 f& ~
! ?( f+ F" }2 X  K  A4 ~5 n
        view_info.view_status=UF_DRAW_ACTIVE_VIEW;- l/ E1 d! O4 I7 v9 G
        view_info.anchor_point=NULL_TAG;
7 i" v9 @& H3 b0 y6 e3 X        view_info.view_scale=1.0;, H; d1 G7 R3 n4 A9 f9 c- y6 ]. o+ c
        view_info.use_ref_pt=TRUE;
% ]$ @3 I* c5 E) q, }. g4 B+ l        view_info.inherit_boundary=TRUE;
8 q  G: j* g# {, _; `! L6 n/ ?2 t5 S; }/ y" g8 M: ~1 Y
        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);* Q* g/ ]) r/ ^2 v9 e. B
        if (view_tag!=NULL_TAG)4 d9 u& p9 ]: s7 w8 R
        {
1 P% y& Q2 S/ S: ~  N: F                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);, }: {7 W* i; N, F* S5 q+ `/ }! N
                UF_DRAW_define_view_auto_rect(front_view_tag);& ^" }: a8 n, f% {: ~- s+ q
        }
+ y" k: H, {! O6 G' u* F& G        view_tag=NULL_TAG;
% i( G$ i' w) W* N) c, P4 y6 G, {& u" E& @: y1 N+ R$ b
        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);. ~$ ]' g! v9 C
        if (view_tag!=NULL_TAG)
* |0 K) l3 ~4 S: ^& l* _        {
# b1 q( _5 H: S1 x                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);& i7 h2 \0 N; C- m+ t
                UF_DRAW_define_view_auto_rect(tri_view_tag);; }: p, o* R, }0 @$ N# C
        }
; l" e: @# k$ y0 V! p3 W/ C    if (front_view_tag!=NULL_TAG)
3 Z1 a1 m3 O7 Z    {
% L: h9 q- y- L  Y: P                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);$ L( x$ Y7 O$ b& x) w) |' `  t0 M
                UF_DRAW_define_view_auto_rect(botton_view_tag);" ]( @, Q4 L* }8 p9 N
         }
  t2 u: m9 |$ f8 G; t- T        if (front_view_tag!=NULL_TAG)8 ]% l: n1 O. c5 i
        {
) q: W- s- A, a9 R! Q                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);
: H& {4 b& q  ~5 S6 \                UF_DRAW_define_view_auto_rect(left_view_tag);/ \. z, c' i7 l9 P7 L
        }
1 }7 m- |6 v" j% g- \4 c
8 Z( u/ y6 K! o3 x6 s0 |2 Z
. w1 \+ {, }' s        UF_DRAW_ask_num_views(NULL_TAG,&num_views);5 T& R4 N! z5 y7 n6 Q/ \+ \
        UF_UI_open_listing_window();
' D3 E2 x( d% h        sprintf(message,"当前图纸共有:%d个视图 ",num_views);# i& M2 B* \& b( G7 X" |
        UF_UI_write_listing_window(message);3 X2 A) N0 c- t7 I

" r1 t9 r7 J) B3 P  o8 u
+ U* ?, b4 ?! ~1 i2 |
8 I  R$ Y* W( P! k4 o) y        tag_t object=NULL_TAG, front_objects[6];
5 z- [' C  f7 a. M+ K% T        int    subtype, type, count=0;/ l/ p* |* M" I# T' y+ r# j
        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );7 J# u) T. m. T( \  O+ o
        while(object!=NULL_TAG)  }3 b6 Q* e  B: S' q
        {( R& l  z: ]+ `8 V7 I! ]: [! t
                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );. d7 U  h1 O2 {* U% I; d
                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )3 W' O$ L2 `' U5 F8 N7 E
                {: E4 `6 K1 Q5 Z9 I5 s0 d- @
                        front_objects[count] = object;( L" j7 ?8 b. C5 R
                        count++;4 g1 N  n) I& ~: [9 z
                }6 T9 T# ~) Q# A3 m
                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );9 h* P' }- J2 [. F, o4 E6 B! i
        }        
& R! y$ x8 g# L: W0 s- }        UF_DRF_object_t object1;
, ~/ k& o4 W! _' L0 z- H: q$ J2 e6 V  k) }        UF_DRF_object_t object2;5 `& k6 G/ T; D  K  i) L+ X& a
        UF_DRF_init_object_structure( &object1 );1 [( F$ n& A+ W8 O9 r$ [. `
        UF_DRF_init_object_structure( &object2 );+ H& ?" Z4 y# i7 b
        object1.object_tag = front_objects[ 0 ];$ Q8 q3 E/ T' H( E
        object1.object_assoc_type = UF_DRF_end_point;8 O; Z$ P2 N" ~1 u9 `6 d
        object1.object_assoc_modifier = UF_DRF_first_end_point;
- n5 p1 P, I/ k: [2 q; j        object1.object_view_tag = front_view_tag;5 |! D: {$ T! `& F. M% z# |
        object2.object_tag = front_objects[ 1 ];) e# }/ G/ Z1 ~7 }/ D# o# Y/ \' E
        object2.object_assoc_type = UF_DRF_end_point;. Q; U+ ^! B% y, v9 l% g2 b
        object2.object_assoc_modifier = UF_DRF_first_end_point;6 [! c6 D4 Y- Y, h. }
        object2.object_view_tag = front_view_tag;: B  i+ R. J( X. {
        UF_DRF_text_t dim_text;
$ }% ~# U. q' h9 Z5 ^) n! q        dim_text.lines_app_text = 0;( O$ |5 S' Z4 g; N
        dim_text.appended_text = NULL;
8 h. n4 Q! Z2 f7 P& R        dim_text.user_dim_text = NULL;
6 d( C+ o% f# ~; \6 Z        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };# j: l8 z( f8 ^/ o1 Z
        tag_t dimension_tag=NULL_TAG;6 T1 W5 k& s5 W1 m4 O
        UF_DRF_create_vertical_dim( &object1, &object2,
7 H: X# u7 P( ^" c7 s                &dim_text, dimension_3d_origin, &dimension_tag );  # r) w7 F# ?1 Z  D: c- u
: Q: D4 j  Q$ y$ S

. _( _7 T1 z4 n        UF_DRAW_upd_out_of_date_views(drawing_tag);6 R3 A8 k. G) L3 i8 ], F' c5 `9 M
    /* Terminate the API environment */
" ?' l8 _" C: m. q- ]9 @3 @    UF_CALL(UF_terminate());. i- z2 W( }4 h8 t3 w9 B
}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本
( r, k0 @* e% c, G; s+ M; G  j: r  k$ C+ _4 S) U6 S, E! \
如果是 5 q) T1 `! r" q' p
那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下
8 G6 D2 j$ t3 f1 ~6 N" |- A( i
* Y0 C3 K7 n; j: _: V. e/ g如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接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 );  ( K; P# i  S) y/ c
  P7 B1 x" H! Y! F0 D) D$ m/ U" j
书上用的是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! J  B9 l/ A' `% h) k
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:
8 G2 O- X- c, Z, z) I+++ Encountered unexpected NULL pointer. See system log for details
5 l/ S' t5 \3 e2 y: b# rUF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );) f& _) Q/ A  L7 J/ c# X
空指针,还是没找到!
上海点团信息科技有限公司,承接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:43
+ \& Y6 e0 _: K, P4 N5 s. fC:\Users\pc\Desktop\捕获.PNG[/img+ u) ?" m  z& f2 p
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...
# Y5 g- R# U9 z0 |8 N
那就分析这个地方啦    E  ]) L2 O- V* S; w

0 H, b8 A) U, S& q, E0 P; R我没法给你解答 没时间给你调试这个+ ^/ t3 A& ^( X9 t7 Z: _" b

+ @0 ^4 u2 i- V) F你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了