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

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

  [复制链接]

2014-8-13 21:53:12 4380 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 q. j) d# I# X, O8 \- J9 m( _1 k' [! b{( g. o# X% Q+ \
    /* Initialize the API environment */
4 G: b$ K% R# J4 P    if( UF_CALL(UF_initialize()) )
  N2 y" D, b/ X; M; E& T& Z    {$ U4 `2 z- F  G
        /* Failed to initialize */9 S' G+ m: M; V6 R* j
        return;7 ^9 X* ~# N) \0 C
    }; h6 o6 e) S- Q& I
    8 |6 T4 |  ^5 d9 `# z
    /* TODO: Add your application code here */: V( O7 |4 S7 y6 H
        tag_t part_tag;
: F* U5 l5 E( C6 [3 E. H8 a/ p1 w8 L        part_tag=UF_PART_ask_display_part() ;( ~# H9 m. Y8 q. M1 Z* g7 |' q
        int num_views;
7 X3 V6 N" d9 i, {7 d3 B  x6 ?        char message[MAX_LINE_SIZE];
. Q2 Y& N7 m; Y  N( \+ h       
' ]) ~$ p) y) o1 J% y9 J        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";
+ k) @+ K: E( R$ }, e% S        UF_DRAW_info_t drawing_info;5 ]/ v: C6 [5 j6 ?# N4 v& D$ _
        tag_t drawing_tag =NULL_TAG;6 X+ l" C. b. J1 I: k) b9 l
        tag_t view_tag=NULL_TAG;. y) G* W& e% m
; \, S8 k) k1 P  f" T
        tag_t front_view_tag=NULL_TAG;" O3 _/ J! M* u) C7 t/ l
        char *front_view_name="FRONT";
' R: T) }$ H1 F6 K: i4 c7 y6 p, l        double front_reference_point[2]={210,400};1 Y, m/ [9 w# t1 H0 _9 e
+ ]# o3 I% O/ F2 l& o
        tag_t tri_view_tag=NULL_TAG;
7 d0 D: x! s  u        char *tri_view_name="TFR-TRI";
& {( T4 z* p  A$ P& I+ E# A        double tri_reference_point[2]={630,120};6 C  |5 s% r# t9 g+ l) T6 M

$ ~$ n+ \4 x) z" Q4 h# ]9 T8 M! G        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;
7 w* l$ V9 ~# t: ]& F0 q+ `        double botton_reference_piont[2]={210,120};
6 _# e; ~! O$ X! @/ p2 c" F7 {        tag_t botton_view_tag=NULL_TAG;
, s0 ^& k" B) z( @! E
3 J7 N" ~7 |  @7 T- p        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;- |* m' z/ Q7 R3 e+ E- R( |4 }
        double left_reference_piont[2]={630,400};* c) p/ j8 \" p( e+ A4 N4 }6 f! [4 `
        tag_t left_view_tag=NULL_TAG;" P9 f8 f: K. L; K

4 M* R. E+ ]2 }6 U1 o  B5 h        drawing_info.drawing_scale=1.0;
# t( l  o) n# `& D4 y; q2 W0 b        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;
  @: o6 p) S, O* D, f0 r3 s        drawing_info.size .metric_size_code=UF_DRAW_A1;6 O6 {: _- ]2 W# @6 Z7 m: b
        drawing_info.size_state=UF_DRAW_METRIC_SIZE;
% z* |8 d! Y9 C# ]- ?( y9 c        drawing_info.units =UF_PART_METRIC;! f0 q6 F2 b* c* }9 G

: l3 E+ x5 a  d! y        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);
1 l- D  M0 I" L& ~: @        UF_DRAW_open_drawing(drawing_tag);
) T& X, P# @$ G* u+ M5 N2 [- ^8 \$ ^" \8 ^+ b& N8 W& H
        UF_DRAW_view_info_t view_info;
  {4 |1 j) f9 `! E6 C        UF_DRAW_initialize_view_info(&view_info);" y% I9 J7 ?- M0 l7 X2 l

7 J& s# z2 o, A/ ~3 {( \" i' B        view_info.view_status=UF_DRAW_ACTIVE_VIEW;: c( ?& I" u  p  I. ?! J
        view_info.anchor_point=NULL_TAG;
5 Q, }! W' I$ ?        view_info.view_scale=1.0;1 u, ^/ l' P/ @' g( [. j
        view_info.use_ref_pt=TRUE;* j, y1 a1 ^7 A0 P1 E
        view_info.inherit_boundary=TRUE;4 L2 F/ z, J9 L+ L' j& J" v! R
6 [9 q3 f; v% R- O/ h
        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);' p) |; T/ I! b& U+ Z. G7 p: o
        if (view_tag!=NULL_TAG)
2 m* i; ]/ s! M' t* \) y        {
( X) }. b0 K/ ~8 z( p" U                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);, w- y" a- I" N8 w4 V
                UF_DRAW_define_view_auto_rect(front_view_tag);! \. a. L+ x% D& Q+ |" d+ D
        }
8 B. M$ O* J! m2 B        view_tag=NULL_TAG;
# k) l1 f/ j9 F, m8 g( F
! C  N& `: w) ^8 A' @% O: x$ L% ?        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);9 f+ N  e8 j8 k! V; u# d7 a
        if (view_tag!=NULL_TAG)( [" q5 J! `+ o! @1 h0 ]
        {) c7 O3 ~* N5 Q. }
                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
) W3 y  x; d( u% }                UF_DRAW_define_view_auto_rect(tri_view_tag);, l: u) S2 K3 o
        }7 }3 [% k: i- n$ T
    if (front_view_tag!=NULL_TAG)- o2 H0 W) j" ?7 E! B
    {+ Q7 z$ c2 y) `7 Q7 {* x8 B
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);
" |  d7 t7 g7 W4 Y) v+ f                UF_DRAW_define_view_auto_rect(botton_view_tag);6 l. j" M; n2 P# ?
         }
4 T# F( ^  M/ W( c' ?2 y        if (front_view_tag!=NULL_TAG)
/ N6 M# n0 H$ {7 ?1 u# L% f) M        {# w- e6 W# W9 w  T( G3 t
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);
3 y6 V5 x" W2 K' h& M& p& a1 P( W8 C                UF_DRAW_define_view_auto_rect(left_view_tag);
) @' v2 r- W- o( e$ z        }
3 R7 y" x# s8 g
; z  E- T0 q, P  K: E# }
1 h; J& ~/ b6 r5 o$ k        UF_DRAW_ask_num_views(NULL_TAG,&num_views);
1 ]; u4 \8 M  p3 q/ H: I6 ]* |        UF_UI_open_listing_window();
9 o5 M" ?; q2 o/ [1 k! ]" [/ k        sprintf(message,"当前图纸共有:%d个视图 ",num_views);/ U. o4 z# b$ Y' e
        UF_UI_write_listing_window(message);' H) S3 _/ v- c/ @% Y  J
6 }" u2 L: }: C

) {8 x# h5 Y1 p5 M" L' y) b4 _3 K# Z$ q  a
        tag_t object=NULL_TAG, front_objects[6];
0 c0 C$ ]/ F1 b7 w- w, o        int    subtype, type, count=0;
6 W! q5 o  G9 G0 B- `$ `        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
7 ^, Z: t$ ~) A, Z        while(object!=NULL_TAG)/ K. F1 P2 n  k- q- r- V; r: h: ^
        {& I' z. c/ ]& \( G* u) D; f# [: I
                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );
( v9 ?$ f8 u0 }+ J, H  U                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )
7 y$ X2 o. T5 e& C" s& L8 z8 R( W$ o                {0 V3 u) N% Z$ e. K7 n
                        front_objects[count] = object;4 e- @& [& k  @
                        count++;
% |" o  M4 O+ ~" L& {6 ~                }
7 e; C$ D" D& t$ m6 n                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );( f( Z* C7 G5 G7 _7 u& y
        }        , y0 |3 ~( \2 p  a( S# Y
        UF_DRF_object_t object1;% @! P1 a2 h/ Y6 g6 U* p. z
        UF_DRF_object_t object2;) g& \9 X* [( {8 Y% g0 b$ Y
        UF_DRF_init_object_structure( &object1 );
' E8 F/ k+ w4 M. `3 y        UF_DRF_init_object_structure( &object2 );5 j! R5 |# U8 o& |
        object1.object_tag = front_objects[ 0 ];
3 q) D. y" J& F) r        object1.object_assoc_type = UF_DRF_end_point;9 R& m' Y' S9 J: }
        object1.object_assoc_modifier = UF_DRF_first_end_point;6 [$ W9 K2 m$ d0 e$ [# p* _" f& m
        object1.object_view_tag = front_view_tag;
8 u- _1 s* r" l* a6 }+ D% o9 Z        object2.object_tag = front_objects[ 1 ];. ?* M4 P7 B& B( h" q/ F
        object2.object_assoc_type = UF_DRF_end_point;3 I9 T' g4 X4 g. Y! v) w$ M2 n1 s
        object2.object_assoc_modifier = UF_DRF_first_end_point;
! Q1 w7 g. N% R3 u, C7 j4 ~        object2.object_view_tag = front_view_tag;1 B2 t: @% C, ?9 h6 P
        UF_DRF_text_t dim_text;
# X! b$ ^: w. P& }4 C4 l0 R        dim_text.lines_app_text = 0;
/ Y4 b, G& B4 j& c        dim_text.appended_text = NULL;
( r8 s1 \! `4 {0 g        dim_text.user_dim_text = NULL;( v, O7 [0 w" ^- W$ ]& J6 I  p
        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };6 b5 |# S& d# ], S8 s) b; B
        tag_t dimension_tag=NULL_TAG;; o% f/ X9 {0 j! x$ J8 n
        UF_DRF_create_vertical_dim( &object1, &object2,
* B: W. A9 N/ r                &dim_text, dimension_3d_origin, &dimension_tag );  % f8 g& S4 U& ]4 Q
6 s: D2 b$ X5 J9 g: ~
) {- [3 N! Q- w1 m1 J2 n+ v
        UF_DRAW_upd_out_of_date_views(drawing_tag);9 I6 w0 ~5 S( m  z3 }  t
    /* Terminate the API environment */! Y# G5 I  J, _% \0 P* O
    UF_CALL(UF_terminate());
' L2 n" ^* @& F# v}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本
# G3 u  J, G% ?" g0 J5 {# y) y! b4 o3 V1 C& Z
如果是
/ `( ^" C: R- \2 ~! U* Y/ N$ o9 @那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下
) Y1 E/ C7 h; l% u* }
9 S! f* F+ M& H& M5 d7 {9 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 );  ; p8 M  @( Z, j+ K
# q, R; u' [0 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[/img7 K7 n8 |! G0 Y( N+ a2 j  O
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:% ?2 g; z3 b9 O
+++ Encountered unexpected NULL pointer. See system log for details3 ^% V, ^5 S& Q
UF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );' b; N2 o* a; ~$ Y- ]
空指针,还是没找到!
上海点团信息科技有限公司,承接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
  m' |0 H# ]+ B2 WC:\Users\pc\Desktop\捕获.PNG[/img
1 \  [, E2 ?, b5 p7 U; {当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...
  L" p  z8 X' H2 y0 t6 Z/ m
那就分析这个地方啦  , C# P, w. s( u- b) O) t

. W6 ]3 Z" \2 [我没法给你解答 没时间给你调试这个
% b0 C1 g# M: d( G& w  `
: q8 k5 m3 B( P% M. K2 r, q4 f你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了