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

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

  [复制链接]

2014-8-13 21:53:12 4514 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 )  X+ \5 b0 J2 ?; E) S! K
{
2 {; u1 o. D- N5 L# w    /* Initialize the API environment */
% N  @  a( w( @+ _# h) C    if( UF_CALL(UF_initialize()) )
9 m/ j- m4 K: @# J+ c    {
+ F( a/ M2 z: B- E$ B; t4 {        /* Failed to initialize */" g% e+ R- u" R) h5 p8 y
        return;9 i* v0 P& s% ~) h) O6 x
    }0 m. T% t2 X3 a
    : L" N! V) V3 _5 s
    /* TODO: Add your application code here */  \7 b0 B1 Q: t8 t" C' X" Z: h
        tag_t part_tag;, H( D7 P/ N8 w: H1 D" a1 x7 w
        part_tag=UF_PART_ask_display_part() ;  O8 R% b: i  N; m* I  D! z4 M
        int num_views;
! d; x+ |% c' d( M8 E        char message[MAX_LINE_SIZE];" [# }6 S0 L" B2 e) }! ?* u
        2 Y" F9 A9 N% h8 W
        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";
2 K: l* E& Z& u6 ?! y9 u        UF_DRAW_info_t drawing_info;- L& s6 B. E2 c
        tag_t drawing_tag =NULL_TAG;9 u6 G6 g% n3 N) t, F5 E5 X" n2 v
        tag_t view_tag=NULL_TAG;
2 q/ U- ^7 V: n; ~& }
# {- _6 V9 e0 o1 D! y, \% o        tag_t front_view_tag=NULL_TAG;
9 z, B4 j. T1 B2 `        char *front_view_name="FRONT";4 T% A+ x" E2 v2 c! I9 {9 f
        double front_reference_point[2]={210,400};6 B9 E. K2 @+ _3 g2 U8 F+ m

! S, q0 t3 t4 K, ?. m* B$ m        tag_t tri_view_tag=NULL_TAG;$ }8 e( k# |3 e
        char *tri_view_name="TFR-TRI";4 J7 ^& O' K) i2 t. g
        double tri_reference_point[2]={630,120};% w; M2 p7 D/ g6 _
- N2 w2 s! {0 ~: f3 r- y4 M: u8 N
        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;
, O; `$ d* O8 e6 R3 z0 y" L        double botton_reference_piont[2]={210,120};
1 t8 |  P: \# Q! @( V; h$ L        tag_t botton_view_tag=NULL_TAG;/ ]0 W9 j5 |. B

3 W  k! X+ @# O% \, {2 _# t+ S7 s        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;
$ N' |. w/ S6 D* {; ]' C" o        double left_reference_piont[2]={630,400};
% @2 {8 R" z3 M. D! U        tag_t left_view_tag=NULL_TAG;( a4 p, R8 j, B3 C9 ^7 G/ y0 ~

7 ?! g. x6 E* M# k; z' v" W. @        drawing_info.drawing_scale=1.0;# N' j6 P* ]  I. P* \. x5 g0 ~/ e0 j2 c
        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;
9 s2 L) E* W3 q1 t        drawing_info.size .metric_size_code=UF_DRAW_A1;
2 {* a3 w& W8 R( A        drawing_info.size_state=UF_DRAW_METRIC_SIZE;5 [* D  A# k  ~8 U
        drawing_info.units =UF_PART_METRIC;
: A  S. l6 b+ \+ R2 g
" D. L/ O4 s7 M8 |        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);- A6 e1 M( H* i$ Q- ]' D
        UF_DRAW_open_drawing(drawing_tag);
8 r6 V% t% l% G7 q1 M8 G8 _) [# a
; P, d" C  p6 w" L        UF_DRAW_view_info_t view_info;
% \) }$ n: A) @- j- k        UF_DRAW_initialize_view_info(&view_info);! P  j) X- [! U4 s

/ d0 @9 A1 P+ @# M. b% Q! O( n( c  i        view_info.view_status=UF_DRAW_ACTIVE_VIEW;
+ G4 V1 t1 |- t( |        view_info.anchor_point=NULL_TAG;" K( _) E8 C7 `( H8 u
        view_info.view_scale=1.0;* P* ?4 L7 g# R- `: D. s
        view_info.use_ref_pt=TRUE;+ F8 Y% @3 r( t0 J# m! z6 j  m
        view_info.inherit_boundary=TRUE;
& |+ E8 f3 ]: k. F; s# ?' j' c, @' G3 v# d# ~
        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);; u4 ?  R9 c  {2 s- Z& U' F7 U
        if (view_tag!=NULL_TAG)' Z# J3 E% Y$ \( [) [  u
        {
' u7 G0 [  Z, q; [1 v                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);# k& _' Q3 ?+ b1 v1 F3 b
                UF_DRAW_define_view_auto_rect(front_view_tag);% c# L; }& g& S- q
        }
$ L& o; s$ I/ D/ O0 n, ^- R        view_tag=NULL_TAG;0 Z. h3 M4 p, y" U0 k, _1 \
$ ^# h, J; F- X* [, y% w# C$ q7 i$ B
        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);1 k$ Y8 s% M9 W3 b( i: K
        if (view_tag!=NULL_TAG)  {  Z. o+ H( b( n+ \
        {; s! {9 ?/ s: v# t% [, E, j5 x
                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
( U, y2 n& y' H& N5 Q9 d* P                UF_DRAW_define_view_auto_rect(tri_view_tag);
+ C) m3 S8 ?9 ~# m; ~        }0 A9 `! D# V: d, A5 n
    if (front_view_tag!=NULL_TAG)
  T' P, ?# i; T    {
' r; f2 Y8 |4 C' @/ y+ X0 ^                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);+ L; }. C  d% @; u
                UF_DRAW_define_view_auto_rect(botton_view_tag);
+ Y0 W* X3 v" F6 ]         }
) n7 a4 P3 g6 H  F        if (front_view_tag!=NULL_TAG)% v8 X# x' f+ b  `& w
        {  Z2 y  j" W3 s1 \& L
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);* @8 [: A9 n+ b
                UF_DRAW_define_view_auto_rect(left_view_tag);; `# [7 Y8 p* V: I- ^7 S9 G
        }- N  A6 Y( |! s3 w5 }

& F* y/ O' O/ I$ b  x. l, h
& Q4 q8 C0 n( Z3 }2 M        UF_DRAW_ask_num_views(NULL_TAG,&num_views);" `3 K# S; I$ k( C
        UF_UI_open_listing_window();, L. \& n) C& k% o' K% `; R0 o, a
        sprintf(message,"当前图纸共有:%d个视图 ",num_views);( t. G' ^3 ~$ o9 T" X8 r
        UF_UI_write_listing_window(message);
& s- X. _$ [* ~# Y2 }/ i7 Y7 r6 |; b5 l. p% `+ Q+ V% d, F8 K
) D, B- e+ y8 m( [' m7 |
8 Y! \) C' |) ^, d
        tag_t object=NULL_TAG, front_objects[6];
, _% e# b4 T7 m) L; ?& @        int    subtype, type, count=0;
' n% d9 M  y9 K        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
5 N! O5 J' O1 b, i        while(object!=NULL_TAG)  |9 a# G, @/ s0 n' R3 x' M& A
        {) L6 C* r1 ?  j% k
                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );: f( _0 A/ \' P4 @* \% N
                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )0 C: y# t# _+ }. J0 k: o
                {/ N9 }' r. W$ {% k, r" Q/ a7 i
                        front_objects[count] = object;
; l# S* ~4 r" P. H" ]/ E                        count++;
' c8 H) x8 s2 R7 R9 ~4 s& b                }
( {1 |1 b: |1 l4 N2 P0 k                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );/ i+ w# k3 R# C3 I4 N( p
        }        ) L' v4 s7 \( f1 \5 a( g% e7 T
        UF_DRF_object_t object1;
+ A2 X% A( J6 l- q        UF_DRF_object_t object2;
: i, \( a5 u0 G0 f7 y, n9 {5 `        UF_DRF_init_object_structure( &object1 );
$ }% W& @' ^( P. ]( x; W; V8 F        UF_DRF_init_object_structure( &object2 );4 }' j6 P- D0 z$ R/ i: E! }1 r
        object1.object_tag = front_objects[ 0 ];
1 @( a. z- s' i/ Q: `, @        object1.object_assoc_type = UF_DRF_end_point;
. D! |: \3 M: I9 K0 J' V$ V        object1.object_assoc_modifier = UF_DRF_first_end_point;
4 P! y. \2 D) c, G: y        object1.object_view_tag = front_view_tag;( H- U! O: a& o( M$ {
        object2.object_tag = front_objects[ 1 ];
3 [+ t# f9 K* i. q  [        object2.object_assoc_type = UF_DRF_end_point;
- K! x$ v; i5 t) ^! w; V) S8 [        object2.object_assoc_modifier = UF_DRF_first_end_point;  g4 }# u$ z- C# U. D: {- a. O5 i' ^
        object2.object_view_tag = front_view_tag;2 q2 \  {( E8 i, a
        UF_DRF_text_t dim_text;
* h+ w6 q4 a1 @        dim_text.lines_app_text = 0;+ p4 _% B+ ]! O+ |- x. w
        dim_text.appended_text = NULL;
+ U8 Y5 k3 V* s) x- i' g/ C) @$ u/ L* A        dim_text.user_dim_text = NULL;! E) p# r1 v0 D" W7 R
        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };! x6 i8 q# A7 x& Z8 N
        tag_t dimension_tag=NULL_TAG;
( a/ @) y2 z+ n4 \, ^        UF_DRF_create_vertical_dim( &object1, &object2,) K) g; C, k  ?6 v( i1 R
                &dim_text, dimension_3d_origin, &dimension_tag );  
/ s- u" E1 e# U% Y: B5 {! A( s2 {+ Y, z; E) L9 }" ?) h/ c

; f' k6 x& @: p" {. K6 T" q        UF_DRAW_upd_out_of_date_views(drawing_tag);' m8 c5 G% |9 W" a. b  |  Y& ]5 y
    /* Terminate the API environment */5 f% J7 s: g- m- w3 t+ c
    UF_CALL(UF_terminate());
1 Z4 I" x8 V; b0 I8 E% k2 u" V}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本
# t. u7 o2 R$ _
4 T3 y. z6 c5 G, @3 W如果是 1 d+ G1 {# s/ e7 x; ]
那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下
4 h/ F. l$ l1 h1 S6 @( M
/ `- B" T. L! m) f9 L- S' x7 I如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接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 );  ( D1 M8 c' j+ G7 ]: F
- k# f% L2 `" H! c% [
书上用的是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
. _* [5 e: {0 ]+ E" |  r1 v- i5 `当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:& M6 R. c, _/ C
+++ Encountered unexpected NULL pointer. See system log for details
* i3 ?! d8 [* QUF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );
! }5 I* X) `1 w$ q$ N# v7 Z* 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
: X( t  I  t- f( AC:\Users\pc\Desktop\捕获.PNG[/img8 l% U6 L$ H& u
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...

) U- I% M1 O# w7 G那就分析这个地方啦  * G4 @2 c. M, @) `

& c/ H" {* e. ?% ?8 G# R我没法给你解答 没时间给你调试这个& b2 m/ D1 w, p. Y  H0 w
( y2 M8 G, k' [% J
你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了