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

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

  [复制链接]

2014-8-13 21:53:12 4509 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 )( k- K8 H8 W/ b- O
{
6 p1 I6 E+ ~! Z) B% F8 \9 h' o! J- L    /* Initialize the API environment */
: r$ x3 u7 B/ q0 f; z( z( S    if( UF_CALL(UF_initialize()) ) & f: u& n; l9 t! c% b
    {
$ h6 M0 B+ `. _, @4 D        /* Failed to initialize */
2 s8 g6 i, J# ], [        return;
3 z% g7 u3 F! @, `/ ~! N( B    }9 v& I: r- `! ^0 E
   
, o0 ~' E/ _' @/ f    /* TODO: Add your application code here */" h" `8 p0 J2 ?6 A; X
        tag_t part_tag;. e2 ~( w- E( S& W8 p
        part_tag=UF_PART_ask_display_part() ;4 j  U% R: w* m0 V. {
        int num_views;
1 ~8 Q- C" P3 A8 x# }: [& A        char message[MAX_LINE_SIZE];
9 E' H* k% ^7 H        . f* L6 \: z/ b' q9 ]: |) b
        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";/ E! {7 j9 x1 r
        UF_DRAW_info_t drawing_info;+ D2 M5 G) c% x: P: M1 A1 j
        tag_t drawing_tag =NULL_TAG;6 ^. t( b9 p* Q
        tag_t view_tag=NULL_TAG;) |& K7 Y: ~* ?" D: @

  u8 h5 V: [# e6 p        tag_t front_view_tag=NULL_TAG;& I& ~4 _$ r/ E, U% H& ^& V8 A
        char *front_view_name="FRONT";8 ^  d: b0 c/ G% s7 {8 a5 G
        double front_reference_point[2]={210,400};5 G7 c0 j6 m- d6 N
2 f+ Y& P% C. `5 P8 z& B: d/ N. `- Z, G
        tag_t tri_view_tag=NULL_TAG;
$ j: e  I! f( V8 N        char *tri_view_name="TFR-TRI";
; b4 M' g1 q3 O% p2 `        double tri_reference_point[2]={630,120};/ T' H1 |7 d& i, G

; {' k- T% J( u8 B        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;
) ^4 L; X; K3 A6 Y7 N        double botton_reference_piont[2]={210,120};$ V5 A, |8 e: M; S9 O
        tag_t botton_view_tag=NULL_TAG;
8 d) t& ^: L# j, G, ?6 R8 }2 J
0 e4 i1 c% R% V" w, _  W) Q4 F        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;7 ]" V9 O; f, s+ ^
        double left_reference_piont[2]={630,400};2 D4 D2 |; o! A
        tag_t left_view_tag=NULL_TAG;
& E, y9 l# o3 ~# s$ s# ~  V" a% Y3 ]3 f$ I% N! D& ]" S' l' F# z
        drawing_info.drawing_scale=1.0;
4 c1 V& w$ D& i/ j, f+ c2 e6 W        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;
' {) R# i& P& z# v+ W. i3 B        drawing_info.size .metric_size_code=UF_DRAW_A1;
4 l2 S; z$ O) I6 s        drawing_info.size_state=UF_DRAW_METRIC_SIZE;
' |6 L6 _% m, {. B. s0 `2 u' `) [        drawing_info.units =UF_PART_METRIC;6 T( L: G$ ?* y5 ]5 O) y0 a' s
/ o' _7 A+ s6 N" a# I& D3 l
        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);
4 l: x5 a* v9 Q9 M6 W        UF_DRAW_open_drawing(drawing_tag);0 _/ x; o. c& y4 y% T; L! V
0 }( u! D3 e! P  q! K$ q4 `  G" X" |
        UF_DRAW_view_info_t view_info;
. _# y" f% e0 X8 H& e; R9 O+ Z0 s        UF_DRAW_initialize_view_info(&view_info);- M5 ]  |3 m! n6 z6 F% y

% E% E( r# j! ?. V3 x        view_info.view_status=UF_DRAW_ACTIVE_VIEW;8 k9 Y9 k( x9 t
        view_info.anchor_point=NULL_TAG;' }0 ~; u7 q( g% s! I8 U% \/ R  H
        view_info.view_scale=1.0;) b8 Y: ^( C* w
        view_info.use_ref_pt=TRUE;
- E) e! H! t' I+ V! d! r        view_info.inherit_boundary=TRUE;$ D$ c/ l. m0 _) W+ r

0 ~' O& x9 W! R6 N0 A        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);
. B- j- s+ S/ Q; T: P        if (view_tag!=NULL_TAG)
# n: L7 z3 q9 {* }9 N        {
0 X8 g: f1 s0 W4 r. u                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);3 }! l% I  d+ w! U3 |5 ^0 F
                UF_DRAW_define_view_auto_rect(front_view_tag);& ~) ]6 b$ b; A- j& f" Y
        }/ e0 ?4 U8 g8 J' h' f
        view_tag=NULL_TAG;
9 g1 u' j0 v+ z+ ~1 j; f; X. _- m
9 y3 t% f+ Z2 m5 \. n: [4 `        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);$ @0 h( R! V$ H7 D# j/ V: |- ^
        if (view_tag!=NULL_TAG)% W  P" y1 k3 j7 X& C
        {) d, I& u% G/ y7 Z; }1 u; Y6 z
                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
5 k# m' ^& ]; M- y                UF_DRAW_define_view_auto_rect(tri_view_tag);: Z$ M% q: a% z* G  a, z" C
        }. K: n- H' `* x! C
    if (front_view_tag!=NULL_TAG)- D% n8 @, W& Q
    {
  l1 j! A; I" t! p1 g                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);
( P$ W1 B8 {: n' J* A7 L                UF_DRAW_define_view_auto_rect(botton_view_tag);1 B8 [$ e# U7 `! c. {) e
         }; ]+ @/ b6 I) l2 m7 P( y/ r
        if (front_view_tag!=NULL_TAG)* T7 G7 b) C9 V4 [" D; O4 n3 i
        {/ a, H5 \% _  {
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);
0 V, x8 @) T0 l8 k: B. {                UF_DRAW_define_view_auto_rect(left_view_tag);
2 J0 N' Y6 d8 z9 ?        }
" P4 u! W1 {3 l  |
2 ~1 d  L1 M( k; j
& l4 K; K- [6 W7 Y# B* Y- X        UF_DRAW_ask_num_views(NULL_TAG,&num_views);- |+ D& U3 v  n
        UF_UI_open_listing_window();: l5 h0 j  m6 s% Z
        sprintf(message,"当前图纸共有:%d个视图 ",num_views);+ r) |) ]  s2 W" W& z/ m
        UF_UI_write_listing_window(message);. I; t# t" d/ d! F$ ~, S. b
/ p! }5 o" E. `; `# _; r0 X4 c! F$ U# z
+ L! O9 ~& Y# X+ u; x
' V* i1 e( J; _* Y9 f
        tag_t object=NULL_TAG, front_objects[6];
4 H5 F4 u: q* |# k( G* F( n" w        int    subtype, type, count=0;% f5 u/ k  {' S
        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
/ R% G$ K" `2 U; A; e0 R# ?        while(object!=NULL_TAG)4 ~( x7 Q. x5 ]- G4 J" K
        {
; C& ~2 _; U! v5 I' m% @. }+ f# A! u                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );
' Y0 F3 m4 m3 w, g                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )
# `7 f6 A- ?. }; v/ H' ^+ R                {
1 Q- M& j7 k! \( Y                        front_objects[count] = object;# f. |+ H& ]! M
                        count++;
' `* [3 A) p; Q6 [) V                }
2 y2 T: O! B0 f: \3 U) U                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );1 s& R/ H$ ~1 i, S) s) W5 f2 F5 A
        }        / H& Z; S! j4 u5 y$ c0 a
        UF_DRF_object_t object1;
; P4 d3 m6 L7 m# B/ y. }        UF_DRF_object_t object2;
. [( [' A. J7 z' K# H1 f        UF_DRF_init_object_structure( &object1 );* J8 w2 n' {" w" s7 k6 b, l
        UF_DRF_init_object_structure( &object2 );
" h/ S  L" H5 f0 u! A: q, z        object1.object_tag = front_objects[ 0 ];
% k$ T1 F! F, y* P& D3 x: r        object1.object_assoc_type = UF_DRF_end_point;0 q) t, j  X: F+ Z/ V8 b
        object1.object_assoc_modifier = UF_DRF_first_end_point;
" ?$ L7 L& d% p% y3 _        object1.object_view_tag = front_view_tag;
1 f' u* _4 ?* [1 K        object2.object_tag = front_objects[ 1 ];7 f  y& @* P- n, Q# |
        object2.object_assoc_type = UF_DRF_end_point;. F: p7 ?- ?5 z" n
        object2.object_assoc_modifier = UF_DRF_first_end_point;
4 A% l: m8 c" \9 D. c& A        object2.object_view_tag = front_view_tag;2 i/ i4 y4 S+ X3 q/ O8 j
        UF_DRF_text_t dim_text;. C  m2 h" H& m# s/ x
        dim_text.lines_app_text = 0;0 j, X5 v- V; x+ G+ y) A! p5 m- h
        dim_text.appended_text = NULL;! J6 T% E+ z4 c& {0 z% F
        dim_text.user_dim_text = NULL;, C, v* N. G, G- G: c$ O
        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };  Z$ U# \/ B# u2 F  k% Y
        tag_t dimension_tag=NULL_TAG;# D/ b: G( B' D' C
        UF_DRF_create_vertical_dim( &object1, &object2,8 x6 {3 k2 C, e: \6 U. @3 J9 o& l
                &dim_text, dimension_3d_origin, &dimension_tag );  
# W+ g4 y8 U+ G9 {$ Q! ]: ]) j
3 c( S! H, Y0 |
6 u2 ~, w4 M$ Z& m# V        UF_DRAW_upd_out_of_date_views(drawing_tag);' p: g1 W5 j- |# `9 v
    /* Terminate the API environment */' ?4 o% v6 T/ P+ e1 t+ k
    UF_CALL(UF_terminate());) u* K1 u5 ~$ ]0 C& O4 A
}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本9 R5 F2 n' s5 Y9 f: u; O% `

0 J, T, {! i' b6 ~! V0 g1 L$ q如果是
( p% J7 R* P3 q- P+ D7 U# r2 T那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下
- _4 S% U2 V, \& b: H- D% F$ i, r4 M! 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 );  
; l8 u% X  X0 w, W; g8 E& U% I( O( g8 p; x/ J1 D
书上用的是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
7 U* K% j6 n, K5 Y' |当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:
: k8 y4 ]1 g- b7 i7 n2 l' X' S# C+++ Encountered unexpected NULL pointer. See system log for details- u  {! o- v8 N) o- p: y
UF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );
, p' f* X! X# G+ ?6 o# }9 g" @8 l空指针,还是没找到!
上海点团信息科技有限公司,承接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:432 N2 ?' b- v/ v1 o
C:\Users\pc\Desktop\捕获.PNG[/img. a; _) y% J" T% i5 T( Z
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...

7 ~' b$ b6 V, R/ z那就分析这个地方啦  
2 l# K1 f; |# E5 [
6 f4 F) g1 ~5 |2 H! L我没法给你解答 没时间给你调试这个) q) O, G* {3 [, J+ i1 p% C+ N( X, t

1 y  }( ^% P0 l0 k你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了