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

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

  [复制链接]

2014-8-13 21:53:12 4519 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 |) y" M8 j$ o/ D0 B
{
4 r- q7 h6 U  g, H    /* Initialize the API environment */' ]& G: I( F9 v2 N3 p
    if( UF_CALL(UF_initialize()) ) 1 b9 ^& B+ u9 ^! N" P
    {
* {% k4 a+ u! D5 F% W        /* Failed to initialize */
" T# B# F; `) I5 U/ m/ ^        return;( e! C9 X8 A/ l0 Y4 g/ }
    }
( o. _9 t: {& m+ \) l) O+ V+ ?    0 {- o$ C4 n, `2 L
    /* TODO: Add your application code here */
( S) X% {4 a$ Q        tag_t part_tag;
1 L  X% `6 w7 w2 F        part_tag=UF_PART_ask_display_part() ;
( Y) @7 x8 p0 R9 Q( u( W        int num_views;
3 X- y. r3 K  N- V& D# I        char message[MAX_LINE_SIZE];
' O$ d. ]' ?1 u2 {6 ^        6 m4 A5 f* `7 V0 o: ^+ V
        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";: g) F3 ^3 Z1 g
        UF_DRAW_info_t drawing_info;
3 w4 ?. J: J! O. H4 g  H        tag_t drawing_tag =NULL_TAG;
! }! T* B( H4 \  s        tag_t view_tag=NULL_TAG;$ O3 T$ R: B, w/ x0 c" h

8 n& b: ~* v1 Y/ _        tag_t front_view_tag=NULL_TAG;
2 @( k2 }- f9 i: l6 a& B* l* Z" g        char *front_view_name="FRONT";1 C: a  P, J" F- D- b2 O
        double front_reference_point[2]={210,400};# f& [6 S* \- r/ i3 N. G

) _9 o+ g9 {, ^/ O* p* y# U9 F        tag_t tri_view_tag=NULL_TAG;
# [" p, W8 J6 X        char *tri_view_name="TFR-TRI";
& y8 J* O+ q5 S: Q. i        double tri_reference_point[2]={630,120};7 t/ O. T" Q7 }& U' o

; x8 d$ M0 ^3 l; D5 A: J        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;5 t0 i) X8 U# q$ W
        double botton_reference_piont[2]={210,120};* P% E; T, f6 r9 X' u, m$ N& t
        tag_t botton_view_tag=NULL_TAG;
( o) u, ^, }, [; i' G8 Q0 @
4 U, p% Q/ p0 I. B  G- e. x        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;0 v9 h, o% V' u) j( L+ w( V
        double left_reference_piont[2]={630,400};
6 @* }/ p. a& U        tag_t left_view_tag=NULL_TAG;0 q# I5 M: ^- s+ X/ X
! H1 K0 v5 v4 ]* |& X! d
        drawing_info.drawing_scale=1.0;
" [# j- B$ e4 w- a4 e! p        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;: l/ G9 }$ x- |0 e4 J, F
        drawing_info.size .metric_size_code=UF_DRAW_A1;# A$ h3 n, R6 F( e' p. @2 C
        drawing_info.size_state=UF_DRAW_METRIC_SIZE;
. {/ t$ f+ E$ H        drawing_info.units =UF_PART_METRIC;& ^1 L! {- S+ `7 g: |* V; |. M

$ y* a8 U7 `% Y        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);
8 Z: [! r9 m, }# c) n8 u6 i% s0 `        UF_DRAW_open_drawing(drawing_tag);
8 j0 \9 W( P1 u) t8 [8 P& h9 m( d8 \/ N3 a% ~
        UF_DRAW_view_info_t view_info;
5 _1 F' [0 f5 {; i8 h( Q9 ?6 s        UF_DRAW_initialize_view_info(&view_info);
/ p8 E6 H( d' o" ~# c  r. I3 H8 S8 G1 O9 `# ?
        view_info.view_status=UF_DRAW_ACTIVE_VIEW;
% `$ F6 {: ]7 |$ F        view_info.anchor_point=NULL_TAG;
  t. D9 T/ C$ Z        view_info.view_scale=1.0;- x1 t" O+ z& E/ t3 r
        view_info.use_ref_pt=TRUE;  B4 l0 e) e, M
        view_info.inherit_boundary=TRUE;+ u) c; R5 X$ R$ r

( L6 u8 B5 r7 a1 z: p        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);  f+ O" L' c( B" \" |7 A/ T3 M6 p4 U/ k
        if (view_tag!=NULL_TAG)  l4 G/ Y) P9 V: ?
        {
5 M; v' ^& b- u) o- D                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);. Q* b! C' [' M+ H! ?. E
                UF_DRAW_define_view_auto_rect(front_view_tag);
; J) |4 G  J) J5 t& I        }
! L* D# L( A& m) f" j5 e* z/ n        view_tag=NULL_TAG;
$ U( ^0 T+ n4 T! i  @3 W- a4 w$ B5 U8 V  H6 P. r  f7 v+ u
        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);1 \4 v# k8 b; M! K% Y- F
        if (view_tag!=NULL_TAG)
* r' G% H+ s! U+ M; |( g: V1 E        {9 C# A/ q0 t8 l6 ]& a' o
                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
4 z) j* r+ o& h! K: a                UF_DRAW_define_view_auto_rect(tri_view_tag);
7 q2 J, `$ P4 F" b6 M) A1 }0 u        }2 P3 o$ Y+ {+ Q8 H& B2 J
    if (front_view_tag!=NULL_TAG)0 e4 K3 |' \; I0 {3 |  z& \
    {
$ T1 g# `' V, {: {1 Q                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);' u: h: D% b% X3 {' y8 e
                UF_DRAW_define_view_auto_rect(botton_view_tag);; K2 G' c3 q2 h2 X
         }
' k: z- N" |9 u4 m) a) a6 f        if (front_view_tag!=NULL_TAG)' |; V" [+ ?; ?+ P$ J
        {9 N; }1 P% k9 k9 q" k$ O+ G
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);# z+ e& o& U" B
                UF_DRAW_define_view_auto_rect(left_view_tag);
. [8 N5 m' T7 z* D        }
! |" q% `+ ^4 y5 `. F- @- t: F* R4 l+ p7 v: W+ a
4 \" ?: q, }  W: ~/ s
        UF_DRAW_ask_num_views(NULL_TAG,&num_views);7 l9 f# ~* M( R) x. \% U8 Q
        UF_UI_open_listing_window();
, M& P' I! d# a+ h: e        sprintf(message,"当前图纸共有:%d个视图 ",num_views);
, v4 ~2 ^- z8 w- f7 o( i  X5 H        UF_UI_write_listing_window(message);
. H# P3 y: q1 w1 ?( L9 N3 o
7 m0 s5 c$ Y1 {% u" W0 w
3 v6 O8 Y! w0 A' W) Q
. Z4 M4 [; y9 \5 k! f# N        tag_t object=NULL_TAG, front_objects[6];2 U! B+ E# c+ ^6 j8 A2 l
        int    subtype, type, count=0;
* o8 x* |) I$ R9 H( L        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );) K) @/ `$ }3 Y, Q5 S! u
        while(object!=NULL_TAG)9 t; S( S4 I" t! j
        {
+ q$ k9 r4 p+ i                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );9 H8 q. d9 h1 e1 H0 k( s3 _
                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype ): ?6 F! x8 Z- m; Q
                {4 H) X8 {. j) H1 Y$ W1 ^; j# ]
                        front_objects[count] = object;
9 q5 u- O" i- u, p3 f8 u                        count++;
3 e6 K. G; M- Z0 \9 `                }
4 V: r5 G; [& f! K4 \3 Z' S                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );2 u, V4 x$ l* Z2 @; ]: w
        }        
$ x1 P5 o* l5 ~% d) U        UF_DRF_object_t object1;; D3 O% X! y: {& n! s5 `
        UF_DRF_object_t object2;
% ~  v$ `5 [6 w5 G        UF_DRF_init_object_structure( &object1 );
- S! Y# @5 o3 H7 F% t( V        UF_DRF_init_object_structure( &object2 );4 p, j) W  W# E
        object1.object_tag = front_objects[ 0 ];: H1 [5 v  S+ J6 n- f2 J
        object1.object_assoc_type = UF_DRF_end_point;  c  X/ Q' Q5 e2 E
        object1.object_assoc_modifier = UF_DRF_first_end_point;
: O" [6 d  J7 U% W        object1.object_view_tag = front_view_tag;
) j! s4 ^7 G  c' b        object2.object_tag = front_objects[ 1 ];
. K+ X3 v% p3 U$ \        object2.object_assoc_type = UF_DRF_end_point;
2 |  n( n7 E7 @        object2.object_assoc_modifier = UF_DRF_first_end_point;
6 U1 A2 [% L* A3 L" b( R7 n        object2.object_view_tag = front_view_tag;5 q* s# K) f3 C  \3 c
        UF_DRF_text_t dim_text;
6 {% M1 @. a' Z' j, D! r7 b( D2 p* f        dim_text.lines_app_text = 0;
: z, y+ \4 K/ I2 i        dim_text.appended_text = NULL;
" `! K7 s  [; [- m; ^' C        dim_text.user_dim_text = NULL;
  E0 u7 p! F' g4 _" @6 N$ X        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };( W7 j0 ^! x* G
        tag_t dimension_tag=NULL_TAG;
' X/ W) N: Y; F        UF_DRF_create_vertical_dim( &object1, &object2,# e# u9 P' n  }1 G0 u% r. y8 `7 i
                &dim_text, dimension_3d_origin, &dimension_tag );  
6 E1 y1 ?5 ]2 x3 z5 y, }/ Q6 _' T. B
2 \2 a( X7 n0 i. N( Y
        UF_DRAW_upd_out_of_date_views(drawing_tag);
1 D2 d9 P/ F( g/ L+ a3 z( b$ ?    /* Terminate the API environment */9 {/ E& f  ]# t7 F8 P
    UF_CALL(UF_terminate());
' R# ~. q; M( J/ |# t5 [}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本6 d/ Q/ t1 W( `- u! m
+ A- w3 B9 g  f* p' V" S4 q
如果是 " l' b# s# `- F7 `
那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下* }1 k7 `0 b. W: s+ W
4 @3 z5 o! ]; P/ j# k+ x3 ^9 o
如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接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 );  , `- q, W( O+ R- r% L8 f6 f
7 m0 t9 y1 @: J
书上用的是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[/img4 }$ v0 z9 c( j9 c3 [& o
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:6 \) ^1 k% [( F4 R
+++ Encountered unexpected NULL pointer. See system log for details
" b' x+ i1 H( R# H& `$ L2 [5 j* J7 VUF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );
: b! j4 L4 x7 n* d空指针,还是没找到!
上海点团信息科技有限公司,承接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:434 A! L$ ~4 r. K8 m0 U
C:\Users\pc\Desktop\捕获.PNG[/img) x9 ^( F5 O1 v9 v4 v1 W
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...

2 B+ E/ y1 `' O! U那就分析这个地方啦  6 k# |- C6 c: O! Y
  ?# z% }; r' b0 E9 K5 ^
我没法给你解答 没时间给你调试这个  {/ x6 E' R' g6 k3 y

9 a. V6 T% w: Z+ C你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了