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

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

  [复制链接]

2014-8-13 21:53:12 4278 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 )8 D) V9 y3 S( C! B' P
{/ X: f7 P- L) I% Z% \
    /* Initialize the API environment */
. M! P( D9 u/ z* \. d    if( UF_CALL(UF_initialize()) )
# K8 }4 i, ^& l/ a4 ~8 F% ]    {5 J4 K; Y% J$ t( b
        /* Failed to initialize */" Z' T  E/ y9 h! R" M& I
        return;
5 [5 L1 i; W1 u8 H$ m; p    }, P2 P; [( l( y, [9 v, i
   
! `- D$ l9 F' |* N! ^    /* TODO: Add your application code here */
6 v' d- K' W8 D% K) j9 `( c        tag_t part_tag;2 i" _9 S4 o& p8 p1 K; P
        part_tag=UF_PART_ask_display_part() ;% z% j1 L# D! |% S+ c( i5 o! X9 J3 a
        int num_views;7 s2 }9 c6 s: N3 {8 P# B6 B% p
        char message[MAX_LINE_SIZE];8 L: Q. Z+ ^; v1 w# e9 p, K4 U
        1 s* G) L+ K0 R
        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";( P+ O1 ^9 \/ K( j7 j# i; F  u  h
        UF_DRAW_info_t drawing_info;# A( G1 V, s2 P; j- T3 r
        tag_t drawing_tag =NULL_TAG;
# K: R- Z2 |; I" n1 `# R. t        tag_t view_tag=NULL_TAG;
1 q: N+ ~) _" H/ W" ~  |
; x% j% n' k% w6 w) l4 r        tag_t front_view_tag=NULL_TAG;
9 D3 O4 L* j- w6 L$ k5 h/ Y; w        char *front_view_name="FRONT";' |6 {' L, t' ~- D* E4 _
        double front_reference_point[2]={210,400};2 {! R: D/ M" T* i

, K0 ^$ `5 p! S/ w( e) K' b        tag_t tri_view_tag=NULL_TAG;
5 e7 x2 Z2 j0 D4 g9 O        char *tri_view_name="TFR-TRI";% B% [+ M8 t1 c/ |2 `
        double tri_reference_point[2]={630,120};
+ [( q0 b  _% R; [( m$ _5 _- q2 C! B" G8 I6 L  ~2 M8 A
        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;
8 R. m* P: D  A$ J6 J        double botton_reference_piont[2]={210,120};
  y. t5 w) l1 n& P5 g3 B: [( g        tag_t botton_view_tag=NULL_TAG;" Z7 p( C) T- ~% p
# k, f! ~0 a4 m) {8 ?3 G
        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;
9 I0 u/ Z  z1 z. C- U        double left_reference_piont[2]={630,400};
4 h: w# U8 Q: Z/ C: E        tag_t left_view_tag=NULL_TAG;/ r/ y" v, [$ p, Q- o) V
# W8 o. f6 M. Z! G. `9 K, L
        drawing_info.drawing_scale=1.0;
3 e2 R8 B- }5 P6 b7 n# j( \6 Z        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;/ K0 t) q& t; ~
        drawing_info.size .metric_size_code=UF_DRAW_A1;2 I. n6 k' q  ]. K! g  g# p1 \8 G
        drawing_info.size_state=UF_DRAW_METRIC_SIZE;
# z( L0 S2 n. ]7 A& R; R: n9 W        drawing_info.units =UF_PART_METRIC;
% c7 k  A/ W. h4 ~9 I- O$ R4 G1 q6 N( F. k$ y' H. x
        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);
% @) R3 E, r) D8 A% C        UF_DRAW_open_drawing(drawing_tag);. x$ l- C* s5 v4 j% t$ U4 b

+ _! X( K! k0 s5 W. p        UF_DRAW_view_info_t view_info;" T3 l5 P8 b# z
        UF_DRAW_initialize_view_info(&view_info);* n7 k3 L: }  W+ I6 M/ @
8 A" X+ f: e/ x0 e
        view_info.view_status=UF_DRAW_ACTIVE_VIEW;2 @' J7 n$ S$ p5 A
        view_info.anchor_point=NULL_TAG;
) h3 n0 p! Z7 w; O" n        view_info.view_scale=1.0;; }# D5 `- H2 q0 J
        view_info.use_ref_pt=TRUE;
  ~3 B) Z9 t9 r2 r        view_info.inherit_boundary=TRUE;9 o+ W1 t. Q' p" K' x* m

) w% x* c1 s& U% U' K( q        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);7 E% a8 I" w/ N! G; C, y3 y
        if (view_tag!=NULL_TAG)6 D# |2 a7 z( e, p) Y& ]1 c
        {
4 w) a1 R$ w( {) U1 l0 c                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);! C$ P) k1 A' G* S$ V
                UF_DRAW_define_view_auto_rect(front_view_tag);
5 z* I% h7 ?0 G8 e2 F! j6 B% p        }! J% E& O1 L: x" K
        view_tag=NULL_TAG;$ `7 [4 q. e4 o; o3 M3 ^( G
% z: s4 X  i3 [8 S7 x
        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);
3 D- W( f7 `; s2 a9 ^- Q        if (view_tag!=NULL_TAG)2 I4 `( T; T! C6 J
        {
# ~1 n; k$ i; p! h                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);- F5 m/ d7 V2 I6 ~, L: p$ j* F1 T
                UF_DRAW_define_view_auto_rect(tri_view_tag);0 p% c( Q+ `- p3 L1 Y. L( _
        }3 T3 p4 E5 e5 y9 @' c
    if (front_view_tag!=NULL_TAG)
: A! `& j6 r( a2 m7 p/ {; F5 c    {, E0 k& J0 |( h% W8 T
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);: ^0 C) m  S, r
                UF_DRAW_define_view_auto_rect(botton_view_tag);
! Y6 Q3 Y0 I8 y$ k         }2 j; ?2 G8 s- E( w
        if (front_view_tag!=NULL_TAG)
+ Z; K( C3 R. G, e        {  J, `' U0 w  G" V
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);
/ i$ h+ z4 c5 G                UF_DRAW_define_view_auto_rect(left_view_tag);1 L+ V) {  z9 b
        }
! t) c/ [' M. C6 q  n" K( O8 t, S2 j3 S3 |- W! I0 h, J

0 k+ V, w! S& ^# Y! ?/ `        UF_DRAW_ask_num_views(NULL_TAG,&num_views);4 |% u4 |2 i+ F; l! V
        UF_UI_open_listing_window();- a: R, p3 x' L( k
        sprintf(message,"当前图纸共有:%d个视图 ",num_views);4 ^& R3 |5 Z" y, X
        UF_UI_write_listing_window(message);
$ m& _  @6 f4 q3 V% p4 D, K0 m5 _( u- H9 g  e  B" b

. C3 |( q; f) F! z/ v) ^  |% \! O. u
        tag_t object=NULL_TAG, front_objects[6];* b" G% {& t$ p% T" L1 L  A
        int    subtype, type, count=0;
+ M) I% t6 s4 N; Y4 U5 m( C; [        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
) F* i6 w" _+ g2 w; a- E/ z        while(object!=NULL_TAG)
$ Y5 {0 l! _1 g& ^* \* H        {' ?3 G* c/ l8 ~, z
                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );3 |$ v. g' s; M. |
                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype ); Q1 `3 I  z8 Z" U
                {  J4 W& k) q& l* j
                        front_objects[count] = object;
# [3 L! N9 m& G# b1 v: g# J                        count++;4 p/ B' r) N# D& J# l5 w2 V* r
                }% W" M9 m% g! k( c; ~
                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );/ Y& ^, [+ A, a. c- _/ m/ v
        }        3 f4 m. R' ]2 f- u& q- ?5 _# H4 e
        UF_DRF_object_t object1;
/ T: n' d' [& W+ t. j! Y5 ]        UF_DRF_object_t object2;( J: F/ d' j, K- M; @
        UF_DRF_init_object_structure( &object1 );6 d) }. G( k' L% @% z7 m$ t
        UF_DRF_init_object_structure( &object2 );2 N/ H1 w; k0 m
        object1.object_tag = front_objects[ 0 ];
. ~; o  M) R; p) N- \+ K/ o+ l3 w        object1.object_assoc_type = UF_DRF_end_point;+ g4 U, c' ~4 f2 y  F* l
        object1.object_assoc_modifier = UF_DRF_first_end_point;
* d6 e/ u7 ~& b) P* x- k        object1.object_view_tag = front_view_tag;
' D+ q$ ?0 s7 p! M        object2.object_tag = front_objects[ 1 ];
! [8 B; e) E. P        object2.object_assoc_type = UF_DRF_end_point;
+ d7 W6 {0 Z3 e6 J- r! g) ?        object2.object_assoc_modifier = UF_DRF_first_end_point;
% B) v& j  X. m8 [9 w' l        object2.object_view_tag = front_view_tag;# H+ P# m  [- k' p3 h$ ?. f3 `
        UF_DRF_text_t dim_text;/ i( e0 ?- C) v6 s" z$ T( J# G
        dim_text.lines_app_text = 0;1 l- n, g2 U+ r# _0 g9 [# v
        dim_text.appended_text = NULL;
& T; d8 m: U" t8 p        dim_text.user_dim_text = NULL;
+ s# p. ^' c: S$ `5 s        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };
+ \+ {1 L: q; _$ d        tag_t dimension_tag=NULL_TAG;
$ m2 g% J9 j7 i1 [# r        UF_DRF_create_vertical_dim( &object1, &object2,
3 i- R6 h# }+ x& x# u/ y                &dim_text, dimension_3d_origin, &dimension_tag );  
0 \6 {! ~( q6 S( v& ~) f
& t: b" G7 t; x& I5 N% |% w
9 J5 ?# y6 \! B8 ^' X# U        UF_DRAW_upd_out_of_date_views(drawing_tag);) A& Z3 _4 Y9 y0 A  u- E
    /* Terminate the API environment */
6 N- K6 b6 P+ n4 w/ C    UF_CALL(UF_terminate());
0 F/ G3 ^2 J  k4 T}
上海点团信息科技有限公司,承接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* ~  x- {9 ?7 n0 l$ C* _9 f
" l: m0 _2 I9 M; ]  h. M, F
如果是   b; p! [9 B- `  C+ X" M3 O
那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下2 x& t7 I" L0 ^& [1 q
5 d+ a- j* V8 X. L4 F7 e; C
如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ 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 );  " Z9 v" K- p. E7 ~
$ c3 @- ?, G/ i1 B) o4 L" X! G0 c
书上用的是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
& A5 Q2 ^% c( _* P+ L7 _当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:
* G# g& N1 o" U  h6 H2 J+++ Encountered unexpected NULL pointer. See system log for details
4 S% Y: I/ r. J: ?UF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );
( D* M+ h3 g, G* f) I' Z空指针,还是没找到!
上海点团信息科技有限公司,承接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/ O& M/ W, Y5 e0 ]1 R7 k1 P
C:\Users\pc\Desktop\捕获.PNG[/img( u  i& e5 G3 C1 C  U+ }& W* x! |) L
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...

0 W: t* B" Y6 q! {0 {那就分析这个地方啦  0 G. B& ]# u: n

, F5 H7 P! o/ U( p. m" H我没法给你解答 没时间给你调试这个
: O$ Q8 K9 n5 F/ \2 V) G+ C) X; [# {3 c. g
你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了