PLM之家PLMHome-工业软件践行者

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

  [复制链接]

2014-8-13 21:53:12 4455 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 W3 P( C& e% e/ T0 {2 j, t
{  ^, v/ L% _9 R) i5 }
    /* Initialize the API environment */
, f$ L+ K$ e% T5 _    if( UF_CALL(UF_initialize()) ) ) [6 P7 I% S* |3 f+ ?0 Q  i. j
    {) a& d* G1 c, N) U; R  {
        /* Failed to initialize */# U! E& H& h+ E. y- F# m! B
        return;6 n1 X. f9 S0 |
    }0 y. i/ s* q' n, v6 a& Z' ?; W# k
    , v* d8 v, m. I* `  Y5 A) B
    /* TODO: Add your application code here */- u5 R+ q; Q# O: y
        tag_t part_tag;
" b9 k/ M" C; E' L        part_tag=UF_PART_ask_display_part() ;0 E7 ]8 n5 z: m/ x" W. n& O; O" M
        int num_views;% o9 s6 M7 N( V" k& z& ?2 G& }( x+ P
        char message[MAX_LINE_SIZE];
( h1 W' T  z7 p/ F% Q8 C3 H        0 C7 l. b$ O* n
        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";3 K. p  @4 B& s( F( J3 x. d! a, W
        UF_DRAW_info_t drawing_info;" j: ~1 N' Q* z. z
        tag_t drawing_tag =NULL_TAG;4 V( k  Y, ^& }
        tag_t view_tag=NULL_TAG;
' H1 t* A2 e; r4 z" X: C. @
! _& \( P* F4 F; x        tag_t front_view_tag=NULL_TAG;4 Y- R# E( L! q  W# [3 O
        char *front_view_name="FRONT";6 Z. Q, ]" F/ l$ ?5 u9 H4 ~) l3 a
        double front_reference_point[2]={210,400};& s  S- ]5 k+ b, E5 A# ~9 d) {+ a, b1 I

! d( y2 L8 v7 ?6 ~        tag_t tri_view_tag=NULL_TAG;
& C5 e' T* t) y% p% p/ a+ b        char *tri_view_name="TFR-TRI";1 o& Y( L4 w: e0 A( @$ B2 R
        double tri_reference_point[2]={630,120};! F9 s# O6 e' [! D) j
( ~9 j7 E5 i7 W, y
        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;
8 V- x3 E: L" j4 b, e        double botton_reference_piont[2]={210,120};
8 {5 ?4 M- |9 p; r* {# R1 `4 n        tag_t botton_view_tag=NULL_TAG;! j9 d( K! s9 N' O9 H$ M3 y0 K4 l

/ Y! P+ O5 Y- y6 ?: U4 W        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;5 l/ L- D; ]! I
        double left_reference_piont[2]={630,400};
* f# f2 c/ b; J: H- l# N        tag_t left_view_tag=NULL_TAG;
4 G3 V9 P( _3 c% G% E3 Z- S6 q( z# Q. }) _) I: d7 T5 y
        drawing_info.drawing_scale=1.0;( J, }3 B4 r$ K: v! y  g0 y$ _9 J
        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;1 G; l1 O/ R' h- m* N! ^' G# x( ~( n
        drawing_info.size .metric_size_code=UF_DRAW_A1;  W+ s' Y, _4 K; ~' c6 Y
        drawing_info.size_state=UF_DRAW_METRIC_SIZE;
! _' O: h6 @7 ]2 L$ @) i        drawing_info.units =UF_PART_METRIC;; M0 u* ]3 D5 F' w& X) y; J

9 a2 P1 R4 i. B6 }        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);
8 ~: p# T: o1 ^+ N$ p, h2 z        UF_DRAW_open_drawing(drawing_tag);5 b( ]/ E$ Y4 Q4 D

/ ^7 m& i& p& `; o; b        UF_DRAW_view_info_t view_info;
  p1 Y1 U% _" n8 v' ^4 T        UF_DRAW_initialize_view_info(&view_info);
4 U) H; C2 ?! r8 v9 F% M: i* ~
# y6 q$ A5 B1 U8 G        view_info.view_status=UF_DRAW_ACTIVE_VIEW;* h  ~1 t8 i0 j3 ~* C$ v2 M
        view_info.anchor_point=NULL_TAG;
# A6 S6 t/ a3 O9 E8 G, m        view_info.view_scale=1.0;# L6 R/ @" i  f' [
        view_info.use_ref_pt=TRUE;
6 q8 o, Q( U' Y        view_info.inherit_boundary=TRUE;+ c+ t. Q8 X% [  N7 Y. n% ?' f

$ O, I( m2 U! \, d6 n        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);. V4 U, {- g  b0 J! B
        if (view_tag!=NULL_TAG)1 m. T5 |! Q2 z& z
        {! Q7 }# X2 X/ h5 ]7 @8 C( _* O
                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);
3 [& w" ?. v2 M; u0 Z: Y. V                UF_DRAW_define_view_auto_rect(front_view_tag);
( }; P! J/ o! ^$ ~        }
% i: q- d0 Q- W- U: O. O        view_tag=NULL_TAG;6 X1 K, h9 v* f& Q$ N! a6 e

5 J/ }  {) D) M        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);" Q) d& f4 C5 i# H
        if (view_tag!=NULL_TAG)
7 {! u" S5 n% ]7 `        {
" E) ^3 ?3 X$ f4 y# Y! d) T' Z5 }8 _                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);+ n( E# }/ o  e. e4 T" e9 w+ }
                UF_DRAW_define_view_auto_rect(tri_view_tag);. k) y! J1 J* ]$ a
        }% \5 ^3 _% d5 \$ G
    if (front_view_tag!=NULL_TAG)
* X# c- A$ [, i, f5 e/ D    {
8 E, t/ f6 T8 S3 p* {                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);9 V' L# i. m  o: n) k9 U
                UF_DRAW_define_view_auto_rect(botton_view_tag);8 s3 P  q0 J- V
         }4 P( N( F& _% t% D% x  a% q6 I" E
        if (front_view_tag!=NULL_TAG)" W, C+ C9 a6 l  Q- e; l! u6 N
        {7 Q- _' E1 p5 x0 ^2 w& A
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);
& G+ ?! W/ I7 ?+ D' q( Q9 c                UF_DRAW_define_view_auto_rect(left_view_tag);
% ]0 ^+ H0 D& j" Z        }0 W7 f0 k- A, r' z9 f1 r
$ T' D0 Q- K" E% Z
$ n9 _1 X6 G6 {! `( Y6 c
        UF_DRAW_ask_num_views(NULL_TAG,&num_views);
# E% R4 V# U( G        UF_UI_open_listing_window();0 \# b4 [: I0 ], \
        sprintf(message,"当前图纸共有:%d个视图 ",num_views);
6 ^" C* A: d! E1 I        UF_UI_write_listing_window(message);
" Y$ `# p1 l( {# X  R
* f" `' b% {8 Y& K0 d! G0 B, h, ~' k; c
" @4 ]- q8 j( i$ m
        tag_t object=NULL_TAG, front_objects[6];
% @: D3 t% O7 |% |: [        int    subtype, type, count=0;; ^$ T/ O: R: J' t! y7 ~
        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );6 z+ P5 N9 h5 J/ ^2 D$ i
        while(object!=NULL_TAG)
$ f2 D; d7 Q. v: W: L- B        {
, q4 i4 s  U$ C- }6 [                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );8 x& ]# J/ Y7 \% q. k
                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )
$ z2 Z/ M) ?) _2 \: Y  g                {7 R  n1 V/ S( V3 {# U3 h
                        front_objects[count] = object;
5 m2 w" C" J5 b4 |* u8 H. o% O0 Z" Y                        count++;
: Q$ m3 g" e1 e* c+ q                }
3 Y, G, G- \- h1 u' v                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );7 @  _3 o, F4 \7 X. I$ |; ^* X
        }        ) J, b/ l' S( l. B" X$ r4 }5 K
        UF_DRF_object_t object1;+ {3 \' _2 d! i6 G6 K, W% D2 q
        UF_DRF_object_t object2;
4 m6 i" u7 Z+ k: ~3 h. B) m2 u        UF_DRF_init_object_structure( &object1 );
) `# L" i4 u( B; ^        UF_DRF_init_object_structure( &object2 );
) N2 l: d. i0 G        object1.object_tag = front_objects[ 0 ];
- A2 t/ T8 d6 {, T* ^* _        object1.object_assoc_type = UF_DRF_end_point;
- x# j. W& L9 |! i6 m1 Y' t        object1.object_assoc_modifier = UF_DRF_first_end_point;
5 F7 `- o: U8 V" V- G% W! k- D) r        object1.object_view_tag = front_view_tag;& Z+ M, l- Q( h9 v6 J$ A
        object2.object_tag = front_objects[ 1 ];
5 E% Q, v* @( Z' D: [        object2.object_assoc_type = UF_DRF_end_point;7 z3 U; k6 e* @' \/ f0 K
        object2.object_assoc_modifier = UF_DRF_first_end_point;
2 r# O" Y7 B5 S& T: J& |- t        object2.object_view_tag = front_view_tag;- T3 w! [- t! w% |& F
        UF_DRF_text_t dim_text;
5 y* m# b5 m' r! [        dim_text.lines_app_text = 0;; g# A. ?4 b1 l  n4 ]! B
        dim_text.appended_text = NULL;
6 U( U3 v5 f( @        dim_text.user_dim_text = NULL;
) E+ T- B+ T) o% h$ Q! z- F5 K        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };: u& _& r1 ~7 _( ]8 b$ I( X
        tag_t dimension_tag=NULL_TAG;! E7 K% Q& j! A; \  y/ k
        UF_DRF_create_vertical_dim( &object1, &object2,
5 n; {! N! o' o% ^                &dim_text, dimension_3d_origin, &dimension_tag );  8 n- D# k; G. `: s& \$ _9 h

2 E0 R+ n/ X- {: ?7 Y" O6 E% `! r  x0 ^! i2 h! I- ]
        UF_DRAW_upd_out_of_date_views(drawing_tag);7 B  p/ Z0 j2 t5 x* d) b
    /* Terminate the API environment */
  }* C; O; O# j3 _& H    UF_CALL(UF_terminate());8 l8 n/ J9 H! I# U$ ^4 e
}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本
0 {6 d# C3 }: o
/ `# b; b. K# A4 X如果是
: B8 n9 m$ B4 n1 w那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下
- T. U6 o' g/ ]( x+ Z, c. K1 k( E5 w) p* V  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 );  
. y! T/ }. l) Y! E2 ]  J% x7 k7 b
3 M( W. W/ y: Q, v, |* @书上用的是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
4 X. E: x/ J7 |; S! m! M3 a  w, d当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:% j3 g2 H  \0 F8 D" g" e& n' m" n3 J. F
+++ Encountered unexpected NULL pointer. See system log for details. }( I  T2 p' K
UF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );
0 ^% m1 W  d5 J- P空指针,还是没找到!
上海点团信息科技有限公司,承接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:433 V& \" n4 H/ K8 S$ B* g8 T: X
C:\Users\pc\Desktop\捕获.PNG[/img8 \: Y: o& t% s6 d7 X
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...
9 o8 s  k( z4 ~" q$ D3 w
那就分析这个地方啦  6 Z/ x* Y( L' k# O4 J# ^: n
$ z8 C2 M, Q4 j* {
我没法给你解答 没时间给你调试这个2 G( v  H3 ^$ f; m1 Q
* W$ E) W! A1 [  V
你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了