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

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

  [复制链接]

2014-8-13 21:53:12 4371 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 )
7 [4 x1 Y2 n8 `; Y{
9 L$ x/ F0 P: E. l    /* Initialize the API environment */
7 w, h! G& l6 I2 V, x9 H    if( UF_CALL(UF_initialize()) )
9 R4 h- B9 k) O" d" V) M    {
) @4 e1 n3 C# @' G        /* Failed to initialize */+ ]* d& D, I% [  N
        return;
1 f, x# }3 Y( @    }& r% A  C0 g, D+ D# @3 C
   
9 o3 [% R7 Q6 M7 Y" b    /* TODO: Add your application code here */' o! f/ K4 ~, I( I# _' v+ X* R
        tag_t part_tag;
. h+ [) |. A# U; d        part_tag=UF_PART_ask_display_part() ;
, t. [9 f0 X2 F9 G, [" U$ k7 H% }        int num_views;
" S) O0 ?. O; I6 x- |) B: ]        char message[MAX_LINE_SIZE];# T5 U  w2 h5 d: T
        3 |* G; G- r9 y, V6 ~" L  `: R7 k$ S3 U7 R
        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";
- d; X) w( Q, h7 E. d  c! V) c        UF_DRAW_info_t drawing_info;
) r! {3 Y! K0 W/ E        tag_t drawing_tag =NULL_TAG;
1 H& L" o2 y4 A* T0 o        tag_t view_tag=NULL_TAG;
" {: I" B; z. Y. F- m4 X8 o9 U- ]" S' `- V8 K: q, }) L6 f- N% g1 ]
        tag_t front_view_tag=NULL_TAG;
% b1 |$ [( z3 V9 F4 O8 F        char *front_view_name="FRONT";1 u; h: ^% A0 h
        double front_reference_point[2]={210,400};& z3 |( m! b6 X2 j: @3 N0 Q0 Z0 T

) B5 c% f3 }9 o1 z: Y. g        tag_t tri_view_tag=NULL_TAG;- t: X7 r; C% ~  E' w( U1 q( D% b
        char *tri_view_name="TFR-TRI";
) X% Y! M1 n: o% P+ m" I' W        double tri_reference_point[2]={630,120};$ T0 w7 p& v6 j1 D! A/ x2 B

& G1 \0 [; w7 R8 o5 h& E  r        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;9 }) }# [/ j" S! A6 p) |
        double botton_reference_piont[2]={210,120};+ H- V2 b  H$ t0 t
        tag_t botton_view_tag=NULL_TAG;
9 t+ u2 {+ ]/ U# ]/ k4 s; }* q3 W# J9 h2 D$ z
        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;5 Q1 p1 O/ H  H. b7 r1 [3 P. G
        double left_reference_piont[2]={630,400};
: X+ p2 Z. q4 O& d% }: ^$ f; E7 F' B        tag_t left_view_tag=NULL_TAG;
' M3 X* j# m# q/ U2 R1 J
, H8 L( J( F* j2 e3 ?  Y! ]7 \, D$ ^        drawing_info.drawing_scale=1.0;
7 r& a: p1 g3 c2 Q4 z' r5 S, r' ]        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;1 U' L$ p5 F; p" ]) r
        drawing_info.size .metric_size_code=UF_DRAW_A1;
; A$ ^- _1 U2 q7 l9 d) Y        drawing_info.size_state=UF_DRAW_METRIC_SIZE;0 N/ ]8 n9 s# d: W$ x; F4 B  g8 Z
        drawing_info.units =UF_PART_METRIC;) c" q5 S9 L+ x: v; L- b# O  H
$ i( G0 W& ~; S* _. D; ^! g
        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);6 C0 z& f( G1 J, y, _$ T
        UF_DRAW_open_drawing(drawing_tag);$ o+ P1 d8 N- b9 a

# x: z2 ~4 f6 h# q        UF_DRAW_view_info_t view_info;  y/ l2 l  O6 X5 r: i  v3 I$ @
        UF_DRAW_initialize_view_info(&view_info);/ m$ X9 m1 [! ?

) `2 S% e& \( {9 t" @3 r3 j; u        view_info.view_status=UF_DRAW_ACTIVE_VIEW;% k, e  y/ M' |: d2 W: d
        view_info.anchor_point=NULL_TAG;* ~- {4 C4 S% R! S4 N
        view_info.view_scale=1.0;# F7 i! f) E" ?2 @( A5 F
        view_info.use_ref_pt=TRUE;& n8 Z) F7 H8 P7 z4 b
        view_info.inherit_boundary=TRUE;" n$ ]" Y& z7 k0 |. |

* @( x# F" V. \/ I0 `        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);* I: ?2 P/ o9 |5 ~9 d
        if (view_tag!=NULL_TAG): O7 b) Z# M$ E0 c0 r
        {
6 v# G( D. H; q% ~* A                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);
2 E# a4 U  }) `9 r  X4 a                UF_DRAW_define_view_auto_rect(front_view_tag);% S. v! n9 |/ ]5 I9 ?$ \
        }
" r! u9 g1 `5 w* n4 Z        view_tag=NULL_TAG;
7 J* N; p8 z# w8 }4 G; |) T: N% V
/ V5 |8 ?* Z" `3 M, ^        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);$ P8 S3 Y7 k) s) i! ^; b
        if (view_tag!=NULL_TAG): r- H& y6 V: s- {
        {
+ Z9 B# q3 k! E) o- n                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
# M+ u2 c3 C" Y- ~                UF_DRAW_define_view_auto_rect(tri_view_tag);: [" T1 @; p5 m  s. l8 \: |0 X  i* G. O
        }9 ?. ^; f' D) _2 j
    if (front_view_tag!=NULL_TAG)
. K1 i' K$ e) E/ z' X! k. E. O    {0 H- P9 h6 w3 D3 @1 k  T' C3 J
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);) w/ R1 Q) M( ^5 r& U- g6 E
                UF_DRAW_define_view_auto_rect(botton_view_tag);
- W5 l& g1 @. T1 g" V         }5 V) w0 z8 @" v" W' C+ @0 y, E8 u
        if (front_view_tag!=NULL_TAG)
# a! K$ P8 Q) G( j        {9 N- c% T) K5 P) @: L0 w
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);9 {+ }' ^) n  u7 V, ?2 r9 K3 O
                UF_DRAW_define_view_auto_rect(left_view_tag);
! v$ a( H; b9 S2 T8 ?1 z( p        }, E/ h2 x' l  E! `8 ~. i
+ |$ n" I' X# D6 H4 i
# s* I; S: h# `. Y" J
        UF_DRAW_ask_num_views(NULL_TAG,&num_views);) N5 I) ?% d7 p: r; L
        UF_UI_open_listing_window();  L1 p# f5 _9 {8 N1 E' i  K
        sprintf(message,"当前图纸共有:%d个视图 ",num_views);
  w5 c1 e, H0 p7 B1 W: N/ A; q) s        UF_UI_write_listing_window(message);0 i8 e4 w. @8 O( O7 }  R8 H+ \, \7 H
) g- e; x: W4 t4 R  w0 S( I7 P

0 l4 l$ \+ |$ f6 c0 _; A
9 b8 x$ n' A% V$ X        tag_t object=NULL_TAG, front_objects[6];8 n" k; ]' b: `# \* F
        int    subtype, type, count=0;2 h. f+ J5 T. s. E9 f- q
        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
2 M! v% {' ^7 K# F1 ]        while(object!=NULL_TAG), v$ J. b( A$ C' P1 |$ [
        {* u6 D9 E5 s: O* G) ~7 b& n% ~! h
                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );' A, b9 y* R  i) d
                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )3 ?+ P7 B. }8 \! u+ v! X- r
                {
7 m5 n5 \3 v# Q4 q. j. ?0 d                        front_objects[count] = object;' p* N0 G* Q* @! [0 }
                        count++;! m1 J, z( h6 ?
                }
7 n; a0 [! F& i( e% x9 g                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
6 X- j% }5 x4 i0 }        }        
, [8 `7 U' A  ~4 d: T        UF_DRF_object_t object1;2 K; Q/ y! j- @+ t( l7 m
        UF_DRF_object_t object2;0 H1 A9 a6 K4 h' Z' X6 a
        UF_DRF_init_object_structure( &object1 );; b0 u. `$ L8 H2 z
        UF_DRF_init_object_structure( &object2 );
) w% T/ Z  F; }# |2 v        object1.object_tag = front_objects[ 0 ];
# v! x+ H; A, }* m% i6 O9 W- E        object1.object_assoc_type = UF_DRF_end_point;$ ]0 J6 J8 {, f( N% u0 o, A
        object1.object_assoc_modifier = UF_DRF_first_end_point;
3 T9 P" n, H4 U8 v: x1 S        object1.object_view_tag = front_view_tag;
, \7 _8 y* ?( e& T        object2.object_tag = front_objects[ 1 ];; T3 g1 w- a9 m
        object2.object_assoc_type = UF_DRF_end_point;2 \+ g$ l1 S; A; `$ y
        object2.object_assoc_modifier = UF_DRF_first_end_point;
0 v, I9 [7 D# {1 B3 J        object2.object_view_tag = front_view_tag;
2 h. M; z1 |( z        UF_DRF_text_t dim_text;# z6 N' ]) W0 k3 R! Y
        dim_text.lines_app_text = 0;9 [4 P2 N5 t8 [8 u# H
        dim_text.appended_text = NULL;2 [( ]% C8 U' }
        dim_text.user_dim_text = NULL;
0 ]: Z( P9 p1 O/ i# ], \        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };. A! k* |6 R( F4 n+ J$ C; N7 ^/ W
        tag_t dimension_tag=NULL_TAG;4 f% b+ e3 B! H' j
        UF_DRF_create_vertical_dim( &object1, &object2,  c& ^, _9 @$ c5 e) D- w
                &dim_text, dimension_3d_origin, &dimension_tag );    S% S' u* R- U  K9 N! H$ ^4 I

7 C2 k* f  g) k
& I3 q3 V- t$ \$ o5 x5 w; P        UF_DRAW_upd_out_of_date_views(drawing_tag);
: g# y2 M7 N  _# }; J2 h7 A    /* Terminate the API environment */$ s8 g& P; D9 ~" c! p+ V
    UF_CALL(UF_terminate());8 u5 t! ^) C* Q  |/ a" }* Y  o
}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本
7 J% \: Q" t2 Q- g. h) h4 }+ S! \, \( k2 j
如果是 . i" x0 j( H& k+ q
那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下
' j& c; J5 Z& h! J+ M  u4 @# C! L% ^
如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接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 );  
. ~6 k  Y) D% o$ D0 e: ?- K: w  Y
书上用的是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[/img2 y& B5 Z, V  t
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:
8 r6 x& D; |+ M9 \: |+++ Encountered unexpected NULL pointer. See system log for details
4 ?, h& j/ S6 A# y, \) {: d1 D1 oUF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );( |5 V0 @; Y( b4 k, k: U, T/ D, W6 J8 s
空指针,还是没找到!
上海点团信息科技有限公司,承接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
9 x5 Y! e) d1 d# y- I+ yC:\Users\pc\Desktop\捕获.PNG[/img- Z0 \( n. E5 R% @- r* _) Q
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...
- w: S: D1 Y7 i% y' x+ u3 Q/ _/ ~8 L
那就分析这个地方啦  
8 [7 {7 ^4 M7 I. O6 n( ^5 M' N7 b0 a' ^6 B' ^8 P
我没法给你解答 没时间给你调试这个
) [/ v: C3 R3 j+ [0 K2 f' ]5 ]3 ]# J$ O
你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了