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

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

  [复制链接]

2014-8-13 21:53:12 4482 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 )3 y- z7 F9 s% H) ~% d
{: p7 c& s4 g) U3 o( _
    /* Initialize the API environment */
& A4 V7 g  Q: l    if( UF_CALL(UF_initialize()) )
7 [# K3 ~: C: P  H    {
) G% _8 i! B! s- `) K9 z1 e0 U        /* Failed to initialize */
- h- T' l1 ^& x4 I+ A. [* N; a        return;
; C& S7 [( F7 X0 z) e% I" m& w    }3 w& g" s  p$ u1 H$ X5 M
   
, _. M, J4 w; x% }5 l/ S1 y% `) @; A5 C    /* TODO: Add your application code here */
% o5 r4 M, m0 X, d8 A        tag_t part_tag;
- p2 T7 u3 m0 M: K        part_tag=UF_PART_ask_display_part() ;6 c! s9 U3 b  p' B- P- m2 N
        int num_views;
* S, `3 C+ C( b8 q2 G8 J        char message[MAX_LINE_SIZE];, I; P( t, Q3 F. K8 N
        , L6 ?- e4 s/ Y" f# i- m' f
        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";
( A2 m# D4 D+ L        UF_DRAW_info_t drawing_info;
$ @% _. ~% E( j- u3 L- g8 h8 z0 e        tag_t drawing_tag =NULL_TAG;$ U2 t4 ], D8 K" H8 o- Z9 F
        tag_t view_tag=NULL_TAG;8 R3 j, Q+ }1 z/ r, s/ k
( F6 m$ u  _1 `5 u- B
        tag_t front_view_tag=NULL_TAG;
: ^+ |2 e, a1 e+ g3 r" X7 D' [. s        char *front_view_name="FRONT";. P" U2 Q& @3 m; O# D
        double front_reference_point[2]={210,400};
* E+ K2 a. {+ E# s# Q* a% m" j" s5 [: |( T9 T+ s* M( d
        tag_t tri_view_tag=NULL_TAG;
' `+ y8 J* P! r1 U0 h% E5 \4 m        char *tri_view_name="TFR-TRI";
8 r( w7 h" f2 s# g: S: ?        double tri_reference_point[2]={630,120};
% W) J( M1 H; K# @* \3 e; Z# g7 W9 S2 n7 h; b
        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;
. R. @+ A6 H6 i4 i+ y5 [# h' W        double botton_reference_piont[2]={210,120};; \+ A0 w- P7 W. |
        tag_t botton_view_tag=NULL_TAG;/ f( |4 s( K& V( A
2 r+ [! A1 T0 [8 s1 u; z
        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;
; A' F. |7 B3 K: O* {$ M0 x        double left_reference_piont[2]={630,400};$ w) C3 H- m' G6 L/ D" e% V# f
        tag_t left_view_tag=NULL_TAG;
. e6 u- Z0 t$ R( s+ b  e6 d3 Q7 W  z* u% c; _
        drawing_info.drawing_scale=1.0;
7 y2 M% T& T9 J" Z6 r, M        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;
9 e0 T$ ^1 s* Y$ d        drawing_info.size .metric_size_code=UF_DRAW_A1;
6 T' X# z3 o$ t, ]. A8 o        drawing_info.size_state=UF_DRAW_METRIC_SIZE;2 F2 r5 t& n' d
        drawing_info.units =UF_PART_METRIC;
/ Q) X1 `3 G& B. y) K3 T2 \. P7 B( i) z
        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);
# l" C0 [7 s( [. G, G# ]2 V        UF_DRAW_open_drawing(drawing_tag);
5 p# Z0 r0 t- S) Q+ [, h# c& O
, z0 q+ f7 T- T- w$ O& m' k        UF_DRAW_view_info_t view_info;
' v9 v4 d9 R+ u$ ?        UF_DRAW_initialize_view_info(&view_info);) F/ F4 Q' i) V4 D5 n) o
9 y/ g) H& W9 c; a# a* U
        view_info.view_status=UF_DRAW_ACTIVE_VIEW;7 I* r4 v$ m4 U4 s) H
        view_info.anchor_point=NULL_TAG;  q8 @4 S5 E9 _! m7 f. x0 N
        view_info.view_scale=1.0;
4 S3 {2 d5 v0 y4 K; \        view_info.use_ref_pt=TRUE;
( r0 Z4 h5 F6 W8 @        view_info.inherit_boundary=TRUE;
3 T. a3 f, ~7 r8 {3 e' D" T) i( b8 b- x) h0 {4 k- x8 _7 e; k
        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);, J" z7 L1 S7 S$ O% Y4 q
        if (view_tag!=NULL_TAG)9 e! l3 h8 N8 Y' M) C1 j/ c
        {' I/ e" K' f7 p- P8 p' l, P4 {8 v
                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);
' y2 p% @( x4 [                UF_DRAW_define_view_auto_rect(front_view_tag);9 c3 ^# U3 Q0 o7 Z3 b, s0 k$ t
        }2 |, ^7 R7 _: n4 R7 [
        view_tag=NULL_TAG;& q1 d3 O3 e% z! {( `+ u
% @3 V7 x2 g1 m
        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);
# r# n: A# E: M# `( Z- P2 M0 p        if (view_tag!=NULL_TAG)) t( G% |+ ~4 a& [( j6 _
        {8 p( K/ b1 l) f) M$ ]( z* k' J1 G
                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);- w: V4 k2 |4 g$ X7 x0 H9 p$ ?, w
                UF_DRAW_define_view_auto_rect(tri_view_tag);
0 I8 w/ d  y8 _# L: W) ~' \. ~- Y        }" a2 C+ p5 ?0 V6 R- _
    if (front_view_tag!=NULL_TAG)( Q5 M: a3 W5 ~! v! H
    {/ s+ w! ~8 y( T
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);
3 }' c! {" F7 Y1 Y& a# B                UF_DRAW_define_view_auto_rect(botton_view_tag);
# a* S" ~  f' e7 n         }9 _% I, j9 V' ]/ N6 Z1 P
        if (front_view_tag!=NULL_TAG)
2 V( n. ^6 @# l; y! P1 Q        {2 x5 A4 J. `+ f3 I* H8 }9 y9 n
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);
3 f7 L6 j- y) s& _                UF_DRAW_define_view_auto_rect(left_view_tag);0 k& \8 |, l! a. V
        }
) N+ Q2 s8 Y( p" _7 z2 H% E0 ~* [5 {& `0 I! B
% x) x0 Z9 z' V. U8 X$ K
        UF_DRAW_ask_num_views(NULL_TAG,&num_views);9 L/ B: W4 a9 G' W8 X8 n; j
        UF_UI_open_listing_window();
0 d, l. q  l5 ~  b# C) e4 r  O        sprintf(message,"当前图纸共有:%d个视图 ",num_views);8 C; l! _, y4 w0 I6 v
        UF_UI_write_listing_window(message);4 w5 F" K1 Z( m* B# }

& W& F/ |' {% q6 m3 R& i% d2 I; W" Q5 C- l4 t) c
$ [8 X) E/ O' S' L* ~" S
        tag_t object=NULL_TAG, front_objects[6];
2 V3 q. D2 g7 Z1 F6 x( y) \, [        int    subtype, type, count=0;
6 a* E" B" j, s1 R6 G. b        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
- C/ {4 e+ a) C        while(object!=NULL_TAG)) T# m  E1 O$ T$ J: z2 P' ]; x' A
        {
9 R" G. O, e: X7 K1 W1 u                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );
& X. _1 x% P6 z4 S" J$ S                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )
0 \/ g" t' g# _2 G                {
9 {6 V" {: i! K( `                        front_objects[count] = object;, v% h  b1 ^+ [9 E# T9 c7 s
                        count++;
* A: D9 X  W' Z3 @8 x                }3 B' B4 |8 y2 m  e8 K! R: R% z
                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );: z# ]3 `- R9 j  W$ {
        }        . ?8 I. e6 O* e6 T# r
        UF_DRF_object_t object1;  z9 K, X# I, C# h
        UF_DRF_object_t object2;
( E( y: f. Q, S! Z        UF_DRF_init_object_structure( &object1 );; W3 i( h! a6 E( R
        UF_DRF_init_object_structure( &object2 );
$ E  j+ w* _" Y, j1 |4 M0 j8 p# i        object1.object_tag = front_objects[ 0 ];
2 u9 t2 V% z# O  i" {% d        object1.object_assoc_type = UF_DRF_end_point;4 ?% S  M1 s$ v) a+ Z) ]& n% o
        object1.object_assoc_modifier = UF_DRF_first_end_point;2 Y  R8 r# P7 K, A3 l
        object1.object_view_tag = front_view_tag;
0 B; |+ p2 {. G: {$ d        object2.object_tag = front_objects[ 1 ];1 a2 X) \9 z! z& Z) u: s; W3 c
        object2.object_assoc_type = UF_DRF_end_point;+ ^6 c$ H- z$ M5 c
        object2.object_assoc_modifier = UF_DRF_first_end_point;
' L) e7 `! n9 [5 F) D        object2.object_view_tag = front_view_tag;
% F, q9 v) c5 s0 O9 T5 \* [' }7 G        UF_DRF_text_t dim_text;
  K7 |2 K: n! s% f        dim_text.lines_app_text = 0;3 H; w' J' ]" ?
        dim_text.appended_text = NULL;
3 N/ g0 P0 @( d1 i$ m        dim_text.user_dim_text = NULL;, Y; q, H" n: d3 C
        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };! R! @% V9 W6 O7 X5 }
        tag_t dimension_tag=NULL_TAG;  g) }8 ^8 ~+ d# `/ r' I
        UF_DRF_create_vertical_dim( &object1, &object2,$ c; I- U5 e* b" A# D- D
                &dim_text, dimension_3d_origin, &dimension_tag );  4 t7 Y: H9 a. L. t8 ^

# g4 u1 k; H5 b. A, |4 @& L! d
, `6 Q- ~/ n" q1 Q        UF_DRAW_upd_out_of_date_views(drawing_tag);8 P" U+ R" x& G  i0 u6 v
    /* Terminate the API environment */
6 C2 o" ~! i9 c! ]! n. M" q    UF_CALL(UF_terminate());
$ P1 y- o/ y4 d+ O8 C: 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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本; [8 i6 `6 V4 V
. Q9 D+ ?- |" p
如果是 * r) H/ D, n) ?; n% q1 I, }4 Z
那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下
3 w7 ?  N) d- f6 h' o/ p) a
- V9 G  r+ }0 C如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接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 );  . B5 _$ ]4 y" |6 Z. O. Y

% t1 q7 n8 }; v$ U书上用的是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
( t8 |! T3 ]) N( s: S' M+ D# U9 F当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:
9 L  n: Q8 ~; t' w" W! F+ r+++ Encountered unexpected NULL pointer. See system log for details
" d  s0 h4 P. b; H2 k( p) zUF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );
6 y. f4 H9 H, L+ g: H空指针,还是没找到!
上海点团信息科技有限公司,承接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
1 g# }6 @2 G& F; l- C8 PC:\Users\pc\Desktop\捕获.PNG[/img" S/ u( o( b7 G+ W. {- g* O& c4 S
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...

) @9 M2 E" F) J3 M" j2 G) V0 _2 B那就分析这个地方啦  $ u3 q; v, u4 B

6 I) [: D9 }/ \( _我没法给你解答 没时间给你调试这个# H9 R4 ~  L+ C
4 V( S7 n/ i) D) |4 U
你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了