PLM之家PLMHome-工业软件践行者

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

  [复制链接]

2014-8-13 21:53:12 4456 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 )- s4 r: t3 u$ C( v7 p: d0 o
{
, y/ e/ p) R. R) e3 ]3 ]    /* Initialize the API environment */
$ ]& u6 c6 i. v  |# e    if( UF_CALL(UF_initialize()) ) " S* S/ s/ [0 L& u/ {- ~
    {+ }/ J& A+ _5 F0 [5 d2 D  x* W* {
        /* Failed to initialize */
/ \% V4 v( q4 p: V6 c8 C. R* p0 e        return;
3 ?, N  ~" H2 B    }5 h7 t% O, q2 K; t
   
, F# K6 u/ |9 e( N4 A4 A, Y    /* TODO: Add your application code here */, {/ F  l2 B8 O9 j  Z
        tag_t part_tag;
' S* q& Z9 p& L% B6 W6 M5 i        part_tag=UF_PART_ask_display_part() ;8 U4 b' }' }5 k: ?
        int num_views;( t3 I5 H" F, p$ v
        char message[MAX_LINE_SIZE];1 |$ i3 c6 y4 D. t) L
       
) j7 e$ L7 ]% S  K" B- z        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";
6 T' F& {# v% g' Y5 w        UF_DRAW_info_t drawing_info;0 g8 ~1 O* V; C, {1 E, f
        tag_t drawing_tag =NULL_TAG;
3 e1 x3 }6 h, B; ?- w: b" o( _, c        tag_t view_tag=NULL_TAG;
5 M' g4 m0 Y* G" ^& j' u4 w7 m7 q1 z; @
        tag_t front_view_tag=NULL_TAG;
4 I7 l# I5 X/ a6 O1 A        char *front_view_name="FRONT";
& {! _; J0 D( Q. X4 X! G        double front_reference_point[2]={210,400};- }8 r  ~  c2 D9 H+ x8 n

/ P) W. E# B& g% S" ^( S- E        tag_t tri_view_tag=NULL_TAG;1 t2 l, H* ?& t8 {9 a) y$ d+ V
        char *tri_view_name="TFR-TRI";
6 P/ U; @4 G/ u4 K7 B" S        double tri_reference_point[2]={630,120};$ t1 \; D0 I4 S. e) ]
! w& X& N" e# z- J+ n) W
        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;( \! ?3 N$ x" b- P0 J
        double botton_reference_piont[2]={210,120};
' S0 k6 F' d5 W% F% j; A- k        tag_t botton_view_tag=NULL_TAG;6 b9 p0 k# ~3 C* W3 g; w
2 Z9 g# X3 u/ E
        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;- E1 E* a6 r4 n$ Y( r# Q9 x
        double left_reference_piont[2]={630,400};' `7 B. M/ n" R8 k% k
        tag_t left_view_tag=NULL_TAG;
. {" f9 k+ q; n0 {! G2 u6 B: M; N. s4 S0 L; P9 `/ c$ E
        drawing_info.drawing_scale=1.0;
( O8 t- ?2 q3 n1 k) W4 a+ `        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;
2 \  |5 P. Y( L& x% ~        drawing_info.size .metric_size_code=UF_DRAW_A1;
- @$ t& c7 \" Y& M& ]9 b. `        drawing_info.size_state=UF_DRAW_METRIC_SIZE;
8 b, ]. q: v. s8 V- d2 }6 O        drawing_info.units =UF_PART_METRIC;8 m& K9 Z: O5 h. P4 j

" A# Y* \2 k1 Y' }7 g* L9 K        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);
/ G2 c7 C* L1 h* F        UF_DRAW_open_drawing(drawing_tag);# w$ [/ y/ K3 O: Y
- N0 M  w4 a1 ]0 V& Y2 C
        UF_DRAW_view_info_t view_info;
! B4 [% T4 Y( v        UF_DRAW_initialize_view_info(&view_info);+ Y/ Q, o3 ~) z! }6 x
3 j. h' l) L, ^0 M- T" l
        view_info.view_status=UF_DRAW_ACTIVE_VIEW;& `, ]* a% w$ R7 ?8 c( q& K
        view_info.anchor_point=NULL_TAG;/ Z- ?3 Z+ c4 D) q. k
        view_info.view_scale=1.0;
4 E/ P0 ^: L/ j) n& S* Y        view_info.use_ref_pt=TRUE;
- G& b$ T: |/ H9 S9 B2 r/ Z) z        view_info.inherit_boundary=TRUE;9 i! s" X8 n1 R1 X& J* G+ E7 q
0 w- A, K) ?! \1 e) Y
        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);
% o# e1 G' ~+ E6 y# ^        if (view_tag!=NULL_TAG)5 I; e) h* P9 h$ h5 _
        {7 [- T6 Y# I4 S" C
                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);1 F4 c7 P6 K; i8 ^4 A/ I* j) R( Y1 B$ v. n
                UF_DRAW_define_view_auto_rect(front_view_tag);
4 O3 p9 q, A# B* J+ r        }
2 s- P. x& p- ^, G2 ]( y        view_tag=NULL_TAG;! v$ O* Q/ ?9 b/ T9 s& s& ^' ]6 S

. }8 K; x# Z+ _" `1 N) Z- o        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);
# N3 V3 n" X4 o. O        if (view_tag!=NULL_TAG)- w# h2 n8 v1 E( u' z
        {* Q& p5 D0 k0 o1 B8 f3 k  @
                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
- o6 L. V) U. [$ ^( q5 L                UF_DRAW_define_view_auto_rect(tri_view_tag);
/ M7 r9 v4 N) g0 A' j% Q        }
. ?/ H( F7 A8 g( x  U/ H    if (front_view_tag!=NULL_TAG)& M( L2 o5 g8 X4 z5 l. H
    {
3 [: N; \. f! y' }                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);
! g* C) c1 R# K  ~, o  U, b. R                UF_DRAW_define_view_auto_rect(botton_view_tag);6 E- e7 d8 R/ c% @9 R6 v
         }; f9 k8 m) j/ g  [( [
        if (front_view_tag!=NULL_TAG)
  ]3 C3 t0 O$ N1 o8 u6 G        {
* J4 _% I7 X" e) a5 I( q. \$ D$ w                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);7 l4 U7 @' [7 s3 |# e' s' L
                UF_DRAW_define_view_auto_rect(left_view_tag);
2 h3 L4 {, d* H) O6 i        }
/ K8 D9 W2 G& s- H+ y0 t" c2 l
, t5 `, ^) U% h; [- i  h$ _  `+ ]2 h" |: R& Y. ?. J
        UF_DRAW_ask_num_views(NULL_TAG,&num_views);
2 R* O. X- c6 z# l' e9 a        UF_UI_open_listing_window();$ K. \8 L( E% z+ X# f$ R8 ?
        sprintf(message,"当前图纸共有:%d个视图 ",num_views);( X- c5 G3 e2 J( O
        UF_UI_write_listing_window(message);
' v* r) V% L$ `1 o1 u1 ?( n+ j. V5 D$ ^
6 Y. N+ y" n# A* z- n: a# k5 m, G
( \6 z* G8 b  j2 @3 [. ~2 l9 d
        tag_t object=NULL_TAG, front_objects[6];
: Q) U7 a" I9 O1 n        int    subtype, type, count=0;, r) [5 {0 o2 ^8 Q0 N
        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
/ ~3 G# S3 B6 A6 `        while(object!=NULL_TAG)
0 L& B" i* W0 M1 j: c! h        {3 Q4 \: i" z0 D( z0 z. v
                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );
7 q$ C* F' {1 D                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )& R: c9 _  B' ~/ u, b7 D
                {; C+ n' P+ v! N: w/ i
                        front_objects[count] = object;
) v; Y3 v( W( c4 y3 o9 a* a                        count++;
" [$ I# M  @8 l: C                }
# T/ L3 s7 b& G4 F( h) k7 ?& \                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );  a/ R; B: B7 Z0 a9 l) T, d
        }        
8 u5 R9 D2 e  R8 C" d# x, L        UF_DRF_object_t object1;8 \/ g' s  Y0 K8 M1 D* D3 z% L
        UF_DRF_object_t object2;
$ c# `" E8 w' T- M, l! I$ F        UF_DRF_init_object_structure( &object1 );( Z# R7 E+ Y. G% ~; V# ]0 L
        UF_DRF_init_object_structure( &object2 );, r( ^0 {& }; R: V  a1 @" B4 p; D
        object1.object_tag = front_objects[ 0 ];
9 D3 t: I; N3 h4 u. Z6 G" C        object1.object_assoc_type = UF_DRF_end_point;5 ~1 W; C' O$ v( n0 e# H1 u8 w0 r
        object1.object_assoc_modifier = UF_DRF_first_end_point;
5 W+ D( A( b9 q) @' X: O9 _. T        object1.object_view_tag = front_view_tag;/ G* J3 I: V1 E, n' t
        object2.object_tag = front_objects[ 1 ];
; b, B& }8 Z% n# O! Q        object2.object_assoc_type = UF_DRF_end_point;
- r% q& f# N) v* ~- L' |        object2.object_assoc_modifier = UF_DRF_first_end_point;
7 L" f- X/ t7 p        object2.object_view_tag = front_view_tag;
7 I; q7 d6 \6 I0 A, d! V        UF_DRF_text_t dim_text;
) m& v2 [/ `3 f( k        dim_text.lines_app_text = 0;  E1 @( \0 G2 M9 Z9 S
        dim_text.appended_text = NULL;
9 b1 c, Q/ p7 T0 O        dim_text.user_dim_text = NULL;
) x) R0 {0 N/ L1 Q        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };7 C# o$ a  k  A' ?# W1 S
        tag_t dimension_tag=NULL_TAG;5 q0 |7 ^9 n% p! ^3 G# k7 p3 G
        UF_DRF_create_vertical_dim( &object1, &object2,. ~) x6 E) U  g. |! N; ]" L
                &dim_text, dimension_3d_origin, &dimension_tag );  . m0 S, v1 l6 V6 E3 p$ w

' M- w. W, ~  Y' x0 Z; a/ \9 l# E1 M. X5 q- _' G8 w1 C) {
        UF_DRAW_upd_out_of_date_views(drawing_tag);' h& F5 m6 W0 Y! c
    /* Terminate the API environment */% P) `2 F; U# d
    UF_CALL(UF_terminate());% N& u3 b1 g  g, y' G
}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本
" Z3 B" j7 t' v% {
5 \- p5 M- B+ b3 A. ~. ]/ @+ |如果是
1 |- }* e8 n0 c2 ^3 L# i$ L7 C7 O那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下
6 N/ {* \5 u$ _2 u% v6 O" V6 L( j. f5 {9 ?) B
如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接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 );  6 r& u' G; C5 q; p* V' H

" |- @: E; @7 r9 K8 w书上用的是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[/img2 @6 Y, M2 ]2 L! T+ k- p9 A7 I
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:
$ D; x! I( `  y+ ^$ q5 S+++ Encountered unexpected NULL pointer. See system log for details
) V* V6 z  s  I( UUF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );! n! P5 f* W. a: E; C
空指针,还是没找到!
上海点团信息科技有限公司,承接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
2 G' P$ {  Z& b: M4 z( _C:\Users\pc\Desktop\捕获.PNG[/img1 p* O" W; D2 l# f4 X9 ]
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...
" {2 ^% b" V  r6 ]
那就分析这个地方啦  
* h8 y6 r/ w: ], _8 \( C' `* C* T1 I3 J
我没法给你解答 没时间给你调试这个
7 V! U2 S# m. P3 ]  |5 b& a" v" p) d6 o5 W$ s) q: c. l
你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了