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

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

  [复制链接]

2014-8-13 21:53:12 4373 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 )5 `7 _5 Z" j) n, u
{
8 ]0 Y2 N7 n% h( W+ F, l2 m    /* Initialize the API environment */
. u* F2 `' O+ \, W" j    if( UF_CALL(UF_initialize()) )
# j/ [5 q1 q; |  y    {0 g! V( x$ E% q/ V
        /* Failed to initialize */! J! A5 i# ?! q3 y8 y! r! s& B
        return;7 ]4 [9 a& Y" h6 ~5 d5 }0 `" G; b! Z6 r
    }
1 g: V7 P( R- O2 [! A5 T    1 t' k5 `. y( G8 e) e! V0 t5 R
    /* TODO: Add your application code here */( Y1 `' ]) ~7 W, h# V
        tag_t part_tag;1 b8 l* y9 x2 w  c
        part_tag=UF_PART_ask_display_part() ;
0 z9 c, i' |; p- |$ M4 t        int num_views;
7 Z# z4 Y. ]; [        char message[MAX_LINE_SIZE];
8 T( v( S- G& Q1 T. F) Y' @       
* A: ]3 @; z9 o+ S- H        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";  G4 v! }. r0 o  B% n0 w/ M" Q8 w
        UF_DRAW_info_t drawing_info;
- c' |" P% G8 a0 p1 }+ [1 \        tag_t drawing_tag =NULL_TAG;
1 u& q% a# c0 B* \5 w. P( f1 ?        tag_t view_tag=NULL_TAG;
% L6 a2 Y( _; |8 t% o+ m" q! v: W0 l6 Y
        tag_t front_view_tag=NULL_TAG;
, d% d5 e  q" S- B" E0 f. u        char *front_view_name="FRONT";  }* }5 ?# v/ ^, n4 r- ^
        double front_reference_point[2]={210,400};
# A9 B0 T! d/ ]) l. h3 U  O. L5 |( N( A
        tag_t tri_view_tag=NULL_TAG;
: D& g* R9 {; c1 w& g6 P( ^        char *tri_view_name="TFR-TRI";
7 v0 Z3 b: }4 E- Q& R: s) g& X4 B        double tri_reference_point[2]={630,120};
' j  r8 i. h( ^7 D7 G- g" a) L7 ]9 U$ v% |; \
        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;
8 ~* ~; R8 a4 k6 h& F        double botton_reference_piont[2]={210,120};
4 y* t" S# O0 o( T9 v4 B  k        tag_t botton_view_tag=NULL_TAG;
* [- q7 W% [! X9 M$ b# @* Z
) ?: m' x: i7 i3 B7 g        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;
$ Q. X7 R; D1 S; M$ a9 i        double left_reference_piont[2]={630,400};
" S2 h7 e. ^) Z' J5 N3 @        tag_t left_view_tag=NULL_TAG;
# q4 B6 f' `( W2 F  l
$ B6 l; H5 T  t1 w" c# E, A        drawing_info.drawing_scale=1.0;
) G4 j7 }. k- ~  y        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;
! G+ D0 `* d! P        drawing_info.size .metric_size_code=UF_DRAW_A1;
/ M0 ~4 z  O! Q, Y- q        drawing_info.size_state=UF_DRAW_METRIC_SIZE;
. G- ?& F; S. s. y0 a6 I# D; r        drawing_info.units =UF_PART_METRIC;
# w* x! t0 m* ]* y7 E# k' l5 P8 M0 M$ E$ B
        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);
+ z7 j  Y" H: O        UF_DRAW_open_drawing(drawing_tag);$ b" l1 f5 v6 B/ l$ U
' V; t) `3 b+ H+ E: ?' A3 M
        UF_DRAW_view_info_t view_info;
6 Y. ]$ c( {% _) x, h: M- G        UF_DRAW_initialize_view_info(&view_info);
* K- s9 L/ F- [/ d$ z! ^! O: A+ C" @! }2 p5 L9 q
        view_info.view_status=UF_DRAW_ACTIVE_VIEW;' x; N. n; j  O# l# s" ~; {( z8 |( E
        view_info.anchor_point=NULL_TAG;
8 i( v2 V+ _' F: P        view_info.view_scale=1.0;
9 [& j3 }; l' O" Q% ^        view_info.use_ref_pt=TRUE;* r& }5 ?: w9 _) |# ?% `
        view_info.inherit_boundary=TRUE;
- ^( n: {: {" Z9 _2 Q' H; q0 g, A: i( R! {) [7 j, \
        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);2 T" @! q' p& E( d2 V
        if (view_tag!=NULL_TAG): Y; r$ M: Y* C  ~
        {
% r% y: {5 j, ^! N6 X8 S% l                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);
5 y8 R% E# d2 Z' S; A8 p* `% o                UF_DRAW_define_view_auto_rect(front_view_tag);
6 X% H7 P1 p+ d# X& {# V% n4 h        }
' h, f& `0 a+ }  G3 W8 V% ^        view_tag=NULL_TAG;8 M% O6 m3 D2 v$ L! H

" g2 Y4 z+ c4 E1 l3 S        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);
8 E- |+ R( h$ W, M- A        if (view_tag!=NULL_TAG)  }' X+ O8 k6 h
        {8 s2 j( [. T; }* I
                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
# S3 o3 K- ^5 x7 ~                UF_DRAW_define_view_auto_rect(tri_view_tag);
' r; V, W" H( w8 k2 x' |3 Q        }
1 M% D' m; e+ @8 T. v    if (front_view_tag!=NULL_TAG)3 \* I$ z( A% R  F: z
    {; C+ h$ E; A/ o6 w4 h/ u
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);( A" d$ W( B. W1 F& ?9 P
                UF_DRAW_define_view_auto_rect(botton_view_tag);/ J1 S' p0 {% }
         }
; I: l! |8 y) P; {        if (front_view_tag!=NULL_TAG)
  i" r( m; K; m3 ~        {: x. p* m& u2 r. b
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);
4 k9 D2 |8 p$ D5 Q                UF_DRAW_define_view_auto_rect(left_view_tag);4 [5 d; N! ]: v& [9 n, P
        }# s1 c9 a4 u5 W( X8 m6 z
- S& i) x; }0 F

1 J+ [0 w9 D/ c7 g        UF_DRAW_ask_num_views(NULL_TAG,&num_views);
% C8 X3 Z/ ]" C$ h$ h0 p& o' A0 q        UF_UI_open_listing_window();
! |& o: C- _; h        sprintf(message,"当前图纸共有:%d个视图 ",num_views);
- [% j7 K0 \, d% _. `" ]: i! }- {        UF_UI_write_listing_window(message);
. v% u7 \  P! f  ]9 P* X2 q# ^
- M% D' m; Q+ N% G' X5 t7 j
! W6 K) {  F: F8 f6 E. h% u, Y* t
        tag_t object=NULL_TAG, front_objects[6];
( F2 I2 n! h. i        int    subtype, type, count=0;
; L% I5 k$ ^8 d! {! O        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );1 s" Z+ X! h8 `+ n, W
        while(object!=NULL_TAG)
1 @0 k3 W: [( m+ _2 b        {
; j8 j, d, Q! _1 d( w/ Q" f: [                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );
  F7 v- Z  m" V                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )& Y# [9 D, ^! Y5 B9 w1 i& y7 p
                {
" c. d9 K* ?3 x3 f7 p7 o                        front_objects[count] = object;
  t0 R; l' j' u& j4 g9 D                        count++;
& k" \- C; \+ i0 n0 Y                }
4 D7 ^! z! r: b6 R3 O% C                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );& [7 l8 m1 x' A9 z
        }        " F. C' p& G& Y& W
        UF_DRF_object_t object1;' D$ r" P1 @* o8 V6 ^! ]
        UF_DRF_object_t object2;3 O# C) B5 V) ?, m# H- L- c- A
        UF_DRF_init_object_structure( &object1 );+ v- o, `3 Z2 d) ?" h* G) ?5 F! Z
        UF_DRF_init_object_structure( &object2 );7 O+ }% Z( k. W
        object1.object_tag = front_objects[ 0 ];
) o: D- U6 c3 o! J7 f: t        object1.object_assoc_type = UF_DRF_end_point;
, m! B& r# d8 t  p        object1.object_assoc_modifier = UF_DRF_first_end_point;
" Z, b& _& u# P0 Z2 H. P        object1.object_view_tag = front_view_tag;7 k, a# r; H. L/ T$ w/ b
        object2.object_tag = front_objects[ 1 ];" ~. U6 g) ]0 e& }" I0 t  q
        object2.object_assoc_type = UF_DRF_end_point;
" k& t! }8 U" G1 G        object2.object_assoc_modifier = UF_DRF_first_end_point;. G0 a* a! d# j* h& M+ ?0 Q( k4 y
        object2.object_view_tag = front_view_tag;+ A8 _; G8 G- O$ M6 b
        UF_DRF_text_t dim_text;9 f+ D! M3 ?/ L6 N, m: r3 i) S
        dim_text.lines_app_text = 0;
( r+ Y, ~, V7 t  W        dim_text.appended_text = NULL;
9 Q3 T; s& _6 l* F) G9 I$ K        dim_text.user_dim_text = NULL;
% ?0 _( c9 ]# p8 n& u' ]1 \& ^        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };9 z! ~( m- m; u. [* H( L
        tag_t dimension_tag=NULL_TAG;
- r6 _. Q8 o6 Z- I- v        UF_DRF_create_vertical_dim( &object1, &object2,% p# B7 I. {" s/ J" n
                &dim_text, dimension_3d_origin, &dimension_tag );  ; m* m3 F+ _) v0 D! x& d4 H

1 Y! i+ O3 p: p1 E6 |  z4 h5 ?! D! ^% S0 ^2 d+ Q& j
        UF_DRAW_upd_out_of_date_views(drawing_tag);
: d$ L* W% j) L/ s: `: [. H/ S  M    /* Terminate the API environment */
% Q9 j1 T: q" E1 c8 Y! X  I    UF_CALL(UF_terminate());
# s& j" S2 N& ?+ [}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本8 j4 V% u6 f" Z; O6 N

! D2 v% R, W7 s' r1 K% ?" k/ P如果是
' J" }7 h9 C9 d2 |$ q$ e: y那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下
3 b; r* E( N6 f  `& h
/ \0 J- p8 v+ r. |7 c如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接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 );  , P" ]4 a/ l. v/ S; z' W* K

* M8 q; d' P0 H* g  @- {7 f9 ^书上用的是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
- g& U1 i/ [0 H* k  t1 l当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:
7 m) h6 R$ m5 @) s$ J+++ Encountered unexpected NULL pointer. See system log for details$ f1 g; f5 o; @7 c5 G. g
UF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );8 R" L# A( y% \
空指针,还是没找到!
上海点团信息科技有限公司,承接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' Q$ C2 g/ H0 f. B$ ~
C:\Users\pc\Desktop\捕获.PNG[/img
' E: S9 q0 R& R0 M8 Q% Q, k当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...

/ u" m( a9 w- d& n! ]那就分析这个地方啦  
* ~1 H% x& o8 p  b, d& N, V# j& O( f9 j0 ?
我没法给你解答 没时间给你调试这个/ H2 L+ c) |5 x6 ?2 B: `

1 p; N! R) b0 d$ [3 S% |3 k. M你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了