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

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

  [复制链接]

2014-8-13 21:53:12 4419 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 )
* ^+ T- r3 G5 A{6 B* k, T, c1 T
    /* Initialize the API environment */
" }( _1 X2 F1 h- F9 a/ h/ Q2 r    if( UF_CALL(UF_initialize()) )
% z! M* l& w" ~( `, u( Z    {6 t! O  q1 s! }* p9 q6 Q
        /* Failed to initialize */: J1 _4 r3 s8 a1 J% y+ r
        return;/ _% Z, v3 z  Y3 U
    }
& ~( u. o3 @; R% M0 a+ l* R5 Q7 D    * n, I5 g# V0 k5 L+ X
    /* TODO: Add your application code here */1 t5 S& ^' Z9 G& t/ p( l  D
        tag_t part_tag;
4 _- R& I; A" m- A3 h        part_tag=UF_PART_ask_display_part() ;
! i+ v5 \5 p9 _2 `% M: M6 I        int num_views;4 c, D; H: I) {  t9 _! _
        char message[MAX_LINE_SIZE];" c! g9 ]3 T- o: K1 a. {5 M9 p
        ) P9 e% d, x" K( `. |, P
        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";
5 X0 _" _$ {5 c        UF_DRAW_info_t drawing_info;8 j" L& M: K( ]! i
        tag_t drawing_tag =NULL_TAG;: m7 Z& v* Q+ t' x0 `% n" g4 Z; K8 |
        tag_t view_tag=NULL_TAG;
& j7 g0 d8 M. j, k" e1 G/ s
) B* l2 w% `( F        tag_t front_view_tag=NULL_TAG;9 j" a+ ~, S6 M
        char *front_view_name="FRONT";
0 Q' \) H2 B* ^; Z% b0 l        double front_reference_point[2]={210,400};
' A7 `" G8 {  w! ]0 r5 q4 Y) N7 m$ B! _, }9 B' j% i: y
        tag_t tri_view_tag=NULL_TAG;
/ P2 t) C9 m6 U9 }* ]1 Q        char *tri_view_name="TFR-TRI";
& Z6 o( q! |) T        double tri_reference_point[2]={630,120};9 J) ~- x3 u/ ?# S
, p! @, x/ S1 x$ H) R8 S  g
        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;! ?4 r% I, P' B- Y3 m. u% I
        double botton_reference_piont[2]={210,120};
) t' J6 L( `, S/ n        tag_t botton_view_tag=NULL_TAG;
$ R- s7 U: C/ S9 k; A
% |, d7 i$ v) o" a6 H        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;
4 i" O( }6 J2 p5 v! F9 {        double left_reference_piont[2]={630,400};
6 y& T( H1 E! _7 G5 x  }        tag_t left_view_tag=NULL_TAG;
+ P# q+ M5 g7 d7 r9 l6 Q& e; o. Q5 d. M4 t; X9 p% y: d
        drawing_info.drawing_scale=1.0;6 e9 b9 {1 E4 J) }* w: a
        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;
; ]" W8 D6 ~% u8 Q) w        drawing_info.size .metric_size_code=UF_DRAW_A1;
/ c% c$ I# k  \        drawing_info.size_state=UF_DRAW_METRIC_SIZE;. F9 H0 K! d5 i4 _
        drawing_info.units =UF_PART_METRIC;! p, J0 p5 K! a4 B* }

+ T' q/ Q& x4 Z0 z% O/ `/ h' z2 T        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);2 ]5 t2 |7 k" V: ?, G
        UF_DRAW_open_drawing(drawing_tag);4 J2 e; T/ G) w+ `1 m
. l: H) t  k4 Q: _  X' w
        UF_DRAW_view_info_t view_info;
* K2 z1 ?+ o& }9 U( F  m9 m        UF_DRAW_initialize_view_info(&view_info);/ O# t  ^; g9 ]; @) C. b

% F0 p+ `' ?# B- P0 z4 n4 m0 w' L' g: g        view_info.view_status=UF_DRAW_ACTIVE_VIEW;
1 B  K: i2 R( l) B+ n. m        view_info.anchor_point=NULL_TAG;. M# I1 j% [! v3 H. w
        view_info.view_scale=1.0;1 N) Y  [7 D, i" m" ?' [
        view_info.use_ref_pt=TRUE;
2 G5 V3 @& v2 D4 ]( r        view_info.inherit_boundary=TRUE;% {1 f9 U; T* g/ V+ |
1 Z5 {7 p4 M: u( {' s: m" Z( [6 g
        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);
7 o) S; ]# H/ _+ a0 l  {        if (view_tag!=NULL_TAG)
) s  V( A; d% a! J* ]        {
- M- s) B" {. E8 e                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);
/ _$ k" f) D$ q                UF_DRAW_define_view_auto_rect(front_view_tag);
% p2 c4 F+ @  O+ @" p5 R8 C        }
; _# g- F8 h- x( u( q3 C        view_tag=NULL_TAG;( q) b, ]% R3 A) }6 x9 G& n# T

7 X& L7 u4 p( ?7 w        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);
8 M- Q+ P* i8 V" ~        if (view_tag!=NULL_TAG)1 g/ f$ L7 L+ D
        {2 w  `/ l  W5 @$ N+ V2 o
                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
: |$ R" I! \- ^6 P0 J1 f: S                UF_DRAW_define_view_auto_rect(tri_view_tag);
4 V0 H# r9 u9 [; J# r# G9 G$ H        }
( E1 t- B$ s! h9 L* y% W    if (front_view_tag!=NULL_TAG)& l; L2 o! D/ s
    {
* k5 Z# P/ C' [& r$ B) ?. |/ H& _                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);
8 _6 i. o3 F3 I  q) D                UF_DRAW_define_view_auto_rect(botton_view_tag);
% T3 w" b2 c* t% ~" m9 f         }' ]: \  Y- ?; h: g
        if (front_view_tag!=NULL_TAG)+ `/ ?' P6 B0 B
        {! S: X/ ?2 `" S: H2 [" G
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);
2 j$ e& }5 _/ o                UF_DRAW_define_view_auto_rect(left_view_tag);$ u+ ?7 |7 ]" d" X
        }+ A- P! w& Z) h7 ^! L) p

6 r+ G3 P' g: u8 \4 O* z8 M6 {! Y$ e/ y8 w- y. `& [: T
        UF_DRAW_ask_num_views(NULL_TAG,&num_views);
. B+ p# V! g7 q- ]2 t  s        UF_UI_open_listing_window();+ Z  I2 F+ Q- |9 Y; O: B& O: U+ C
        sprintf(message,"当前图纸共有:%d个视图 ",num_views);
) q; S4 o7 I& \0 K        UF_UI_write_listing_window(message);
1 I6 M9 f3 j$ B, E" z8 y" L, y. m) U! u: x9 D1 ~

6 W# ~) ?  I+ P- Q2 a
5 {/ L& m$ K# X- n  x        tag_t object=NULL_TAG, front_objects[6];
# \- B3 U9 G! d6 \/ o( ]        int    subtype, type, count=0;  q3 ^5 S; g. d4 Q  t2 X: K. M  |
        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
9 T( O- T- }- \( w        while(object!=NULL_TAG)
1 ^8 p4 C; K4 ?$ X        {( t8 X8 E7 G9 {; \5 D
                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );
2 Q! e! e6 O% A  Y                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )# D0 T3 j9 i5 M6 E  L$ a7 S
                {; w3 w+ o6 Y; N) H1 ?* v( f5 }
                        front_objects[count] = object;
' ?/ C/ h: L4 v5 `! d& l9 x                        count++;5 k; p; G6 s9 c/ A7 ~
                }
: @. R+ g" |. @                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );  h9 N9 h$ C' ]8 B) ?
        }        $ V. Z, W, |% j# x9 K# O
        UF_DRF_object_t object1;
( f  M; }" c& H' ~        UF_DRF_object_t object2;
: T- x+ ~6 p" _0 X5 \' I        UF_DRF_init_object_structure( &object1 );6 ]2 o8 `: D2 `
        UF_DRF_init_object_structure( &object2 );
, ^( {, Y9 P& y4 {" W5 b        object1.object_tag = front_objects[ 0 ];
9 ]1 k! j( ]5 Z; ~0 b& @        object1.object_assoc_type = UF_DRF_end_point;
' ?; T- Q5 @/ q        object1.object_assoc_modifier = UF_DRF_first_end_point;
% o# e) C$ G' W+ r' ~        object1.object_view_tag = front_view_tag;) V1 c2 D# \' \/ x4 W$ _3 d
        object2.object_tag = front_objects[ 1 ];
3 f4 M1 R* p+ t+ u7 R4 F5 U  p        object2.object_assoc_type = UF_DRF_end_point;
' z8 i* T6 D2 U        object2.object_assoc_modifier = UF_DRF_first_end_point;
' D) M  b9 P1 M! W        object2.object_view_tag = front_view_tag;6 Z$ K* a7 o* A- l) N
        UF_DRF_text_t dim_text;% s/ h3 D( R. M4 p. ~1 @
        dim_text.lines_app_text = 0;) d1 _, H" _0 y; f
        dim_text.appended_text = NULL;; S- t  V5 p& N+ \4 z2 a/ N  `
        dim_text.user_dim_text = NULL;
5 i6 r6 I. V! o, t4 E) R7 k        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };
3 M% h/ l% K' e: t        tag_t dimension_tag=NULL_TAG;
% Q$ v0 X8 K2 Q% t* y7 X5 ~# Q: B        UF_DRF_create_vertical_dim( &object1, &object2,
* e% |2 Y7 t+ T  t: O; p6 B" ~                &dim_text, dimension_3d_origin, &dimension_tag );  9 s' L- e7 {6 g# p0 @$ d8 }
2 P, _' R% F! w5 e/ M
! M) H: t' M" S2 ~! \4 N, N
        UF_DRAW_upd_out_of_date_views(drawing_tag);
; Z4 r7 N9 M0 m& V    /* Terminate the API environment */
& b& w& ^5 m. {( e( s    UF_CALL(UF_terminate());
; T5 i. q2 s4 ]  ]}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本
% z1 g9 x% }" @0 @, s
  W3 s) p* ]. f+ H# G如果是 # R  }8 V- m0 L4 y$ f
那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下
& |* X0 q- v) K; ^! M1 j% E" Z' S+ W/ F2 k! A9 G" N
如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接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 );  # D% U" }/ t& M; @

2 q! r* w, h  u$ T. T  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
/ u7 h5 _. T. E+ {* ^+ }当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:
/ \0 k& K9 z9 B; F5 r) x+++ Encountered unexpected NULL pointer. See system log for details
+ n5 h# @- R, I* a- u0 j$ d1 q" IUF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );
  J. L2 z5 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) i! U' ]6 Z: |+ G
C:\Users\pc\Desktop\捕获.PNG[/img
' V7 J( Y9 r2 X5 Z! B% t! y6 Y当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...

* Q1 n- b- i9 g/ c' Z8 r那就分析这个地方啦  5 ?) t. |7 ~# j' g( {' {

% w0 o& U9 o& d) ^2 I2 |. \我没法给你解答 没时间给你调试这个
5 S/ a3 _9 C  ?  U- X/ |- `  ~8 h4 Z- r6 b3 }! `+ [' C7 h5 L+ _
你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了