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

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

  [复制链接]

2014-8-13 21:53:12 4499 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 )' ~! r9 s( m- J  R* k  H
{1 {/ o  f+ o+ g0 f, ]6 r6 ^# Z* z
    /* Initialize the API environment */: R3 f: Z; _$ a% a& Z3 b$ a7 M- z+ c
    if( UF_CALL(UF_initialize()) ) . M2 [; B' k0 i$ ?( k4 l/ f
    {8 l* d4 z" i: y" U) @6 l: u
        /* Failed to initialize */0 o+ V$ `* Z0 f1 Z
        return;" s5 x/ ?$ K( G8 I4 v2 ?
    }
5 z6 K' D! A$ v! v  h9 F( G    ! F7 X5 y# A0 E
    /* TODO: Add your application code here */  |6 u2 A& Q: G7 w4 x: F
        tag_t part_tag;# P; @" u3 u3 O, V% h* X, M
        part_tag=UF_PART_ask_display_part() ;# m% H! A& ]7 @1 z6 ?
        int num_views;' W' d! |8 ^9 U/ J
        char message[MAX_LINE_SIZE];
- p% n6 d4 ~! U2 Y  P        % ~& F5 r2 G, n) V4 Q" @5 V4 @
        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";3 v* Z5 B6 i6 p# F
        UF_DRAW_info_t drawing_info;; T% c# u5 C# m8 e, ~+ ?# E
        tag_t drawing_tag =NULL_TAG;
6 x" l, o- ]+ a( E! B        tag_t view_tag=NULL_TAG;
+ Q# H% X3 H% L
! }9 k& U& ]8 A. G        tag_t front_view_tag=NULL_TAG;& E* H0 ~2 d! M
        char *front_view_name="FRONT";$ x1 a" S* R% f& z# J+ O/ B+ p
        double front_reference_point[2]={210,400};
$ p4 c! l' m7 @. ~* c- Q8 J% Y
; H. j+ h( N! @9 E) I1 U        tag_t tri_view_tag=NULL_TAG;6 n9 `  Z' T/ y8 ^
        char *tri_view_name="TFR-TRI";
- W& o$ D# K9 t/ w/ K" L* L        double tri_reference_point[2]={630,120};/ s0 ~' M; ~% {: F! u
2 N% K3 N' g- p) Z/ N
        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;
0 a+ T% Z: ~) p% @# x        double botton_reference_piont[2]={210,120};
, h9 ~9 E- l* K9 u  j        tag_t botton_view_tag=NULL_TAG;
/ Y6 `4 A$ G9 A$ Q- W4 F& K$ }5 ^8 T9 e  Z8 u0 _, k
        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;% a6 d2 O: c- X1 G& ?* ~
        double left_reference_piont[2]={630,400};! Q6 m  N, w6 [
        tag_t left_view_tag=NULL_TAG;, u3 z* i( h2 l* q

3 L' E7 E5 c6 j        drawing_info.drawing_scale=1.0;
' Z( n' M  E% S/ Q        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;0 j) @( C1 {4 n" i
        drawing_info.size .metric_size_code=UF_DRAW_A1;
1 p5 Q9 ^% s2 {6 i9 ~        drawing_info.size_state=UF_DRAW_METRIC_SIZE;. R. ]3 d& _3 w7 j6 B: z, }
        drawing_info.units =UF_PART_METRIC;
: ~8 J( V! g1 f- F) `  Y. ?) u2 Z# D; v, l! [
        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);/ G8 F8 z3 C3 i
        UF_DRAW_open_drawing(drawing_tag);' p4 ?: t% n2 F& G6 n
8 I" s0 @8 w$ `! z( R0 u
        UF_DRAW_view_info_t view_info;
1 g- @" V! I0 V' n: M6 p        UF_DRAW_initialize_view_info(&view_info);* j4 z; Z7 b' `$ m* h7 W

8 `. q8 d6 L' z  W        view_info.view_status=UF_DRAW_ACTIVE_VIEW;. ?  b: p/ A; c% d" J. F. |! C
        view_info.anchor_point=NULL_TAG;; R& x: U# B( a- j; Q" ~7 J3 M
        view_info.view_scale=1.0;& F/ M8 v8 a" ^1 s- T8 U5 m; L, y
        view_info.use_ref_pt=TRUE;
" `7 w4 D8 ]* U4 t7 g        view_info.inherit_boundary=TRUE;6 a$ s4 t7 X. U+ _( u+ i
% [' h# _) X1 {( D
        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);
9 ?9 u* s, T3 S! c8 R" s8 o        if (view_tag!=NULL_TAG)
& b! U3 P6 ^9 w$ z; R. ^        {
/ o0 I( Z8 O. U8 Y& S: S                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);, [2 d: @% F6 f8 ~- [3 x: g/ x
                UF_DRAW_define_view_auto_rect(front_view_tag);
/ L: V) ^8 a1 q% a        }
) M) g) s8 C, `        view_tag=NULL_TAG;
5 \/ G* H" H, I- N) _* ~5 N1 D, b' _) n6 C$ O* [6 `& \
        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);
6 c0 D$ a+ N( T3 m6 d        if (view_tag!=NULL_TAG)1 X* h5 @9 l2 E: B$ x+ `
        {
) J! l) e* y- m/ b1 ~" q                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
$ t: Z0 n& ?. m: S- ]/ I                UF_DRAW_define_view_auto_rect(tri_view_tag);0 [9 Y, E. S6 ~9 p
        }0 K# d- o" F) {& K4 A  W9 N
    if (front_view_tag!=NULL_TAG)9 v5 t* C( Q1 i" R3 N% ~5 Z
    {
9 @5 L, ~  e4 e2 H$ B; u. y                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);' ]" O* u) r5 Z
                UF_DRAW_define_view_auto_rect(botton_view_tag);
  F& o, x8 S6 j6 `  {. C         }. k, {6 W' s! L1 n+ d
        if (front_view_tag!=NULL_TAG): q* u2 b7 g- i
        {1 N1 E: {* f5 @4 f
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);* X1 G7 H0 q* V" e8 m. R: @
                UF_DRAW_define_view_auto_rect(left_view_tag);
: ~, h' k/ E  g2 y: v) E$ m        }
; }' X9 H2 D# G) H8 ?8 I4 H5 L' [9 |6 j

: ]) N0 L9 V& q# B  m        UF_DRAW_ask_num_views(NULL_TAG,&num_views);$ B7 A1 f' e" v! d- r! T
        UF_UI_open_listing_window();& Z$ @" i$ ^2 T' j4 v
        sprintf(message,"当前图纸共有:%d个视图 ",num_views);
. O3 o) ]2 U, u9 \0 s        UF_UI_write_listing_window(message);0 `$ l# N( c# ], J+ W* ]/ ?
- B" _; A# i. d& b( V( C
+ `5 }7 }3 r& J& C. e, ~8 D

* M* E0 a# s% \+ I. ^# b' c        tag_t object=NULL_TAG, front_objects[6];
2 _) [0 R* ]6 l' G0 K; k        int    subtype, type, count=0;
# ]: ^% g4 _% ]1 z3 C        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
6 P+ c5 I8 k3 M' T        while(object!=NULL_TAG)0 N; [  s# E% L& i6 _
        {# u+ M3 o, o% T6 ?! \6 M
                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );3 U: A9 v) e5 B9 S
                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )4 t0 J' e8 G$ Z; Z
                {
  h1 J' b, Y& P. Y7 G8 h3 z0 _                        front_objects[count] = object;: m( y0 k/ B  X3 I& D8 M# ]
                        count++;! _( @7 u9 F- B- n; F6 Q
                }
3 v. K- i2 p  X# y. j3 L% [                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
) W$ k% s3 ]& E3 ]  L* q! Q8 ^        }        
& F: G5 `. Z" ]) S% y' S        UF_DRF_object_t object1;
+ S6 R! L9 N4 }2 C        UF_DRF_object_t object2;7 R, L' L2 n  n/ q
        UF_DRF_init_object_structure( &object1 );0 o% _: M1 e2 d8 Z9 _  ^
        UF_DRF_init_object_structure( &object2 );
; p0 W; {1 C+ k- y  B/ y) t        object1.object_tag = front_objects[ 0 ];
. B8 i  B# H$ g        object1.object_assoc_type = UF_DRF_end_point;: E. I0 y8 I1 W7 M1 w4 |# V
        object1.object_assoc_modifier = UF_DRF_first_end_point;4 Q' q: V  f, ~# w: Z
        object1.object_view_tag = front_view_tag;
' G$ I8 p, B- n, g1 ]( K        object2.object_tag = front_objects[ 1 ];
4 j7 g3 G' i9 ]        object2.object_assoc_type = UF_DRF_end_point;
  e% B- j5 T4 Z1 k: e) v        object2.object_assoc_modifier = UF_DRF_first_end_point;
  B! a, H) n9 i0 D8 X7 ^! t        object2.object_view_tag = front_view_tag;
- r8 m& [2 ?" s8 A- l6 p+ l" c        UF_DRF_text_t dim_text;
& r6 W3 y' r1 j, I. ^/ V2 W        dim_text.lines_app_text = 0;* J% \1 u- S0 `  a
        dim_text.appended_text = NULL;. w4 b7 n# n/ {7 J$ g3 q- `
        dim_text.user_dim_text = NULL;
$ C( Y1 E6 X# R5 N8 C9 Y6 a0 e. C        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };
) M! }- O% G% X9 L9 u1 j( D+ Y        tag_t dimension_tag=NULL_TAG;
) b, x* W8 l9 q8 z, O3 W; X        UF_DRF_create_vertical_dim( &object1, &object2,* G% p' I4 o' i7 B* ~
                &dim_text, dimension_3d_origin, &dimension_tag );  
4 d% w7 c) F6 C: L
; X5 c# A4 x0 n8 z% R' R0 J  T4 |) a4 C) B+ C$ Y6 v9 k, c- t- ]
        UF_DRAW_upd_out_of_date_views(drawing_tag);
1 J; ?4 S0 e8 i& ]( G/ e# C    /* Terminate the API environment */
% }- _- {3 S( K    UF_CALL(UF_terminate());, z3 U( f) @3 t; ~! b( \
}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本# x/ E& J0 y& r, R3 H% b4 j: H
% B4 E! x: C. K( W& R
如果是 5 M- D9 T/ t) R9 o+ L
那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下* W5 [5 R) R/ S: G7 S* y

! D6 K' b* d  Y如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接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 );  
$ Y2 w, |; i% @' d2 W% {0 h8 R! Z! s0 {5 V
% x5 F" s/ I% F$ N, F- l+ ^, ~! w书上用的是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[/img9 w' n; t1 [4 N$ ~" s: v
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:6 b( p" k: s0 E% s
+++ Encountered unexpected NULL pointer. See system log for details3 @0 k5 d5 k# |
UF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );
" X6 F- k9 @. u& r空指针,还是没找到!
上海点团信息科技有限公司,承接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
6 w5 J& `  D4 W0 u, r5 BC:\Users\pc\Desktop\捕获.PNG[/img/ Z. D2 i+ C# [+ V( t
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...

6 h2 Z$ D( s5 N/ j! ~# d$ G那就分析这个地方啦  
3 `' m1 i2 E# z* g6 g- H* |: Z( b. S+ X" m8 p1 ^
我没法给你解答 没时间给你调试这个
' t2 ]/ O" A" Y) w& ?5 t5 ^: ~
6 P2 V" W8 e1 y5 A# a你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了