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

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

  [复制链接]

2014-8-13 21:53:12 4526 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 )
0 H( M8 D% Z4 q. g/ a' p9 J{, D7 g/ T  _+ X
    /* Initialize the API environment */0 a( L. V) `( t% \
    if( UF_CALL(UF_initialize()) ) ( \- K% @5 T7 Q+ h. C
    {$ l# v2 @& m5 g! I
        /* Failed to initialize */  f% _$ ?- d1 _/ q; F9 q
        return;
$ o- m: I! O3 {/ ?8 H" N" j    }
$ B  g1 B- W( Y    ; ?$ H; |/ T6 c4 B
    /* TODO: Add your application code here */
" E. U  o( w: }5 }; n        tag_t part_tag;
1 k4 Y5 ~4 z& B# X        part_tag=UF_PART_ask_display_part() ;
3 i* M/ Q7 f/ H% [        int num_views;
* q1 y- t" C- t7 V" \  P        char message[MAX_LINE_SIZE];
5 ~9 n3 Z/ D! f; c1 a       
1 s. Q6 z! b4 k1 }! N6 t        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";+ Z1 S8 i: \/ g1 W
        UF_DRAW_info_t drawing_info;
2 V; }5 E, q: O3 A        tag_t drawing_tag =NULL_TAG;
, e% v4 Q( A- ]+ m% y8 ]        tag_t view_tag=NULL_TAG;
3 e4 E$ b2 `. M4 J: D# e* E! Z9 l: B( x4 {
        tag_t front_view_tag=NULL_TAG;
- i# O% m* a5 N        char *front_view_name="FRONT";( m/ s  K2 G! _1 r6 ?
        double front_reference_point[2]={210,400};
8 p3 V. W5 i) w$ k( i( l, n" j% R$ w. R- K' P) K- l: Q
        tag_t tri_view_tag=NULL_TAG;
6 O0 r, ~7 c" ?& ^7 A9 ]        char *tri_view_name="TFR-TRI";! n, j* `4 |4 B9 N7 p  r
        double tri_reference_point[2]={630,120};
) b  `' s" n( @( N2 A) _3 Z# p9 k, f1 }- O9 T; m+ \( b
        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;5 R4 s" p7 k5 {% w& }+ ?* a( w
        double botton_reference_piont[2]={210,120};
( [: s6 `. e) c        tag_t botton_view_tag=NULL_TAG;) I/ o, R1 B& z% o3 E& m' [
/ A- V+ ~( m. G) C5 }* `
        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;! G( U, n( ^) D5 g0 p- C
        double left_reference_piont[2]={630,400};
% A" Z( K# D/ q2 E- L- B        tag_t left_view_tag=NULL_TAG;
2 j- a3 _6 h& v/ P
; L' r7 T- Y: ]# S. p$ J        drawing_info.drawing_scale=1.0;$ M! o$ J( X+ x' T4 i9 ]
        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;2 ~" L( f4 [+ M0 G
        drawing_info.size .metric_size_code=UF_DRAW_A1;
0 r& Y2 \2 o8 X* X        drawing_info.size_state=UF_DRAW_METRIC_SIZE;" d% u2 J! j( h- ^: d$ z* |" _
        drawing_info.units =UF_PART_METRIC;9 A- L# w3 F7 |8 p/ o

# [2 G9 s- W$ C        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);5 @' [1 U( m: Z
        UF_DRAW_open_drawing(drawing_tag);) s) _' h9 n$ j0 o  m

! r8 Q$ K% p9 ^% |0 V) o0 E" [; x        UF_DRAW_view_info_t view_info;
& R, ]9 f' B. f. }' T; [2 H% x        UF_DRAW_initialize_view_info(&view_info);
" f8 @4 }% ]5 p0 n# J6 A4 g) k. T7 a* u) t1 I
        view_info.view_status=UF_DRAW_ACTIVE_VIEW;- r! {+ k: C( `" }" H  j9 j
        view_info.anchor_point=NULL_TAG;) w: _; D0 }. j( I7 i8 ~& q# m4 ]  e
        view_info.view_scale=1.0;
6 _4 k$ K* z$ [6 o- R  M        view_info.use_ref_pt=TRUE;- }1 J% N% n3 [) M3 {  p) S
        view_info.inherit_boundary=TRUE;
) O: I: D6 ?# v2 N5 v7 g" n; p7 Z: v( `+ Z
        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);% ]6 I2 e- o* ]/ h
        if (view_tag!=NULL_TAG)) J4 _$ X' F; m( M% Y' p4 |
        {
. U$ p) ^8 d! m; V, i0 ^: D                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);: h, g3 g  @% Y& F3 y8 [- d
                UF_DRAW_define_view_auto_rect(front_view_tag);& i' f3 k+ O2 l
        }8 b; b" m9 y1 |- i! b7 @! Y
        view_tag=NULL_TAG;& F  f) G; E1 E  r0 a+ v$ L
, T/ M. {% V9 s3 j: c+ F+ j. f/ ?
        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);
, Y" u0 Z3 @- r: X/ v0 E% |* A        if (view_tag!=NULL_TAG)% u* U* x% u* y
        {% l( R' H8 I( N( n) W
                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
+ F% W) w1 n% w* q5 r# M                UF_DRAW_define_view_auto_rect(tri_view_tag);
  A& V" L7 T6 v7 M- o        }* d) i' F7 h8 N6 q8 w7 L. y
    if (front_view_tag!=NULL_TAG)5 z0 ^+ {8 ~. u
    {
  A# I; v8 F! _( A# b6 a                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);/ c! f# W6 P' B& B, t4 N1 u) ^2 {
                UF_DRAW_define_view_auto_rect(botton_view_tag);5 T2 K; c2 K4 E! K7 H
         }
; b3 I; f1 R" H% r        if (front_view_tag!=NULL_TAG)% x) E/ ^' O- Q
        {
1 s3 a2 _; p+ j: v* V# L" E                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);
+ O7 Y, s6 P9 F4 T( ~                UF_DRAW_define_view_auto_rect(left_view_tag);3 e8 g/ T# @2 k4 V0 [
        }
. d9 D% g* t7 F& T: ]
# P: V& w" a& _' a* v$ ?& ], \2 U! e9 o1 i
        UF_DRAW_ask_num_views(NULL_TAG,&num_views);
# P+ U1 L5 l0 k0 m& ]8 c        UF_UI_open_listing_window();- [' J! O; e8 {( i
        sprintf(message,"当前图纸共有:%d个视图 ",num_views);7 O$ ^' H1 p; d) P6 F
        UF_UI_write_listing_window(message);
( J, Y. E& r2 W: M3 Y2 x1 B' A! h; Q3 m1 I# X3 ?9 n

! }- i9 L9 `5 t
$ I& Q. Z$ j+ N' \. e        tag_t object=NULL_TAG, front_objects[6];9 R- l5 T" X# n) [2 Q
        int    subtype, type, count=0;
8 ]" q* Y# z% \+ t        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );& {8 K( x' E4 E* J
        while(object!=NULL_TAG)2 h, r" c7 b5 ]$ f
        {2 t: _, S6 v8 [  ?7 ]
                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );$ V+ |  w; c! u4 Q# l9 Y
                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )
; T6 Z' u$ e' M8 L                {
1 K, W6 ~3 m0 E+ y5 }                        front_objects[count] = object;  |/ h3 |2 H4 y% f
                        count++;8 v, y. t$ q, h; {5 ?; B7 d- Q
                }- }' V: Q1 q* j7 T2 [* j4 i& R
                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
' D+ Z0 }3 ?; g/ N0 v        }        
% p. ^2 y; n6 s$ F# v( i6 T        UF_DRF_object_t object1;: h% N# j6 ]- ]
        UF_DRF_object_t object2;5 `$ v) j$ i1 S# x4 }
        UF_DRF_init_object_structure( &object1 );
6 \) T4 x: M; F        UF_DRF_init_object_structure( &object2 );. F7 m( p! z2 j
        object1.object_tag = front_objects[ 0 ];/ C6 _9 f9 s  h9 e  n4 v. u
        object1.object_assoc_type = UF_DRF_end_point;1 S5 F* k6 N: j# x% s
        object1.object_assoc_modifier = UF_DRF_first_end_point;* o1 Z, X  c/ e, c
        object1.object_view_tag = front_view_tag;4 S3 E2 s# K" m" w$ f3 V
        object2.object_tag = front_objects[ 1 ];# W+ i& x  I# t
        object2.object_assoc_type = UF_DRF_end_point;+ J# e2 T, e; N3 S# Q) J3 w. Z1 Z
        object2.object_assoc_modifier = UF_DRF_first_end_point;
% F* R+ n& [! s, {, P        object2.object_view_tag = front_view_tag;
/ g* v; }; O/ Q        UF_DRF_text_t dim_text;
$ O' C; b' G4 r' {8 W$ G        dim_text.lines_app_text = 0;
& ]( o" C" [6 E5 p" r+ M: W$ A        dim_text.appended_text = NULL;6 Z6 W; |. w& L/ u' y
        dim_text.user_dim_text = NULL;
1 n& W( I  C. G. ~        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };; e5 P2 Y8 r1 A* S& v
        tag_t dimension_tag=NULL_TAG;
  H) b. m4 A# e, g0 x        UF_DRF_create_vertical_dim( &object1, &object2,' f2 |6 ~3 Y7 N% r
                &dim_text, dimension_3d_origin, &dimension_tag );  & x$ l7 q6 v2 F( i3 G) u) V
$ ?8 ^' V! b5 P

+ W+ e9 D* D! n  l8 B  ^        UF_DRAW_upd_out_of_date_views(drawing_tag);
# o: j: |$ z9 N" H    /* Terminate the API environment *// V0 R' W' M" o. }& B
    UF_CALL(UF_terminate());
" f9 T& k* ^  ]- W3 ]+ I}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本
& I2 c3 V% I% r9 p/ \; |$ E! Z" K0 [7 ?6 V( {9 e2 S! ?0 f
如果是 $ s3 j  G. \( V$ S, G
那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下
& `: s) n! N) N+ O2 R: J- g1 L$ [! D1 Q3 x  S$ w9 J: E% S
如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接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 );  
: o9 Q5 i6 v& h3 ~' a  z9 s
0 w% x( E& U$ E1 c4 z: a, ^书上用的是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
2 Y5 v% B; p3 x; D/ u+ z+ Q3 C当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:
2 V2 j+ P1 v. b+++ Encountered unexpected NULL pointer. See system log for details+ A7 o& j: [3 i& Y0 Q5 n6 p1 n
UF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );7 r1 b1 t3 g7 S' j' m" M% V* d
空指针,还是没找到!
上海点团信息科技有限公司,承接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! v& |, F; p1 y2 j1 H- s; ~
C:\Users\pc\Desktop\捕获.PNG[/img  e9 \) Z6 D7 g
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...
/ R  o$ Y0 g: ~9 u+ @* B& n9 k
那就分析这个地方啦  
1 I- O2 Y1 K9 {* \. H: U7 ~* V+ V7 @0 ~3 [
我没法给你解答 没时间给你调试这个
3 N8 G. T& ^6 A/ ^1 H( M  s4 ^( V2 a" A
你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了