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

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

  [复制链接]

2014-8-13 21:53:12 4524 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( d* @, E2 Q1 T" \
{. a" a, d6 E* b1 C+ ~
    /* Initialize the API environment */% H( d# G' c1 L
    if( UF_CALL(UF_initialize()) )
- }3 h% {  X, E0 t4 s$ P    {
6 p# n' H% |) T' h        /* Failed to initialize */- }! h7 \% M6 Y! Y
        return;
9 \( [. T, a7 D0 `! m$ ~3 F    }
. [% [# ~  W2 B, K   
; a! L0 ]( N: Z  r5 n0 R% j5 v    /* TODO: Add your application code here */# k- k+ w( C9 z0 f
        tag_t part_tag;
$ p( m$ u$ m+ m$ e  \& h        part_tag=UF_PART_ask_display_part() ;+ {7 `2 F, V/ R- M
        int num_views;
. Q$ L4 ?  a+ u+ R- J& G9 ?        char message[MAX_LINE_SIZE];
1 R8 N, b/ F$ {2 ]6 Z       
  D8 q) D) G8 U% m# y  W5 r        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";+ ^1 L8 m% W0 h0 L, b8 c; w8 J
        UF_DRAW_info_t drawing_info;1 T( |: O7 R5 \7 c/ ?
        tag_t drawing_tag =NULL_TAG;
1 L( F' R1 Y6 }3 C3 G: W* P! l        tag_t view_tag=NULL_TAG;
( ]- E; W% U( d/ x+ w9 n/ ^6 K% f, w, S/ m9 ^2 R% @
        tag_t front_view_tag=NULL_TAG;) ?' c5 P/ X  D
        char *front_view_name="FRONT";
4 ]; L) X( ?) N5 n        double front_reference_point[2]={210,400};
; j, n' t  ^/ d# d  K
5 G2 D* C4 ^9 ^0 j% D# w        tag_t tri_view_tag=NULL_TAG;3 s! B2 A0 ~$ ]+ s. r: I
        char *tri_view_name="TFR-TRI";6 f& M4 c3 Z6 f, a9 G, p" j; a4 e
        double tri_reference_point[2]={630,120};" C4 X, ~( N5 V# a! |- P
' G( c; n; s, D* a
        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;7 n( u/ ~3 @/ }% S" l8 N% b- f
        double botton_reference_piont[2]={210,120};
8 ^4 P% ]! A9 K% L4 H. p0 A        tag_t botton_view_tag=NULL_TAG;3 }2 I- S5 j' S$ _
/ o* e0 U0 s# [; v- y
        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;$ {/ x' G/ _9 S( `
        double left_reference_piont[2]={630,400};/ _) m5 k) z" k
        tag_t left_view_tag=NULL_TAG;
. ~0 Q1 W! N; B: B$ {  t# \  W% X2 g/ u
        drawing_info.drawing_scale=1.0;; T0 e% Y5 o9 O) i5 u
        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;0 n3 K  F: G; h- r
        drawing_info.size .metric_size_code=UF_DRAW_A1;
, e" P* H& [' t0 ]        drawing_info.size_state=UF_DRAW_METRIC_SIZE;9 B9 p; Y& R0 u' a0 {/ ]! O8 k4 V: k
        drawing_info.units =UF_PART_METRIC;' j8 m3 }  `: ^7 @; X" l
: W( N4 L5 H7 Z
        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);
0 Y( r% }5 T. d' [        UF_DRAW_open_drawing(drawing_tag);! I: G: W" p0 B3 N, g' n% x

% r$ U4 E* ^) O+ L( g; z        UF_DRAW_view_info_t view_info;8 H! W# h# X1 f! @
        UF_DRAW_initialize_view_info(&view_info);# B( u7 ^! E3 I5 K
: v, H4 l# ^: X& y
        view_info.view_status=UF_DRAW_ACTIVE_VIEW;
9 h$ T2 S5 ?  u( t% _" d9 s- U        view_info.anchor_point=NULL_TAG;
$ O; S7 }9 y( b4 A& d/ l        view_info.view_scale=1.0;
4 L9 ~* \6 y& O1 X+ l" T3 v3 M0 r        view_info.use_ref_pt=TRUE;  H' ]9 |$ _! A& l: W
        view_info.inherit_boundary=TRUE;' i* v  S$ N+ e- L( z& r3 `8 X
  w8 R1 d6 n2 c8 r0 o4 w( r
        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);
, [' ?. U0 X1 o; R* s        if (view_tag!=NULL_TAG)
' T6 k5 i  Q: U' q        {; Y/ d% \& \! U2 r& T
                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);: S3 _8 f0 A2 y
                UF_DRAW_define_view_auto_rect(front_view_tag);% M( s; F0 ]2 T, Z
        }$ W7 W8 `0 [7 y1 w; H
        view_tag=NULL_TAG;3 J# T( E' D1 p; H5 H3 E

; j0 V" ]  J. U1 L$ C* d        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);
' T) u4 d( y: A& Z4 I6 R- Y        if (view_tag!=NULL_TAG)
6 Z9 m- l4 T$ V, J% p" \        {
6 `6 ]1 j! O# j! j; |7 Y                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);1 e& q* a6 C: `/ ?3 e
                UF_DRAW_define_view_auto_rect(tri_view_tag);
$ ?5 t. u; c! Q4 a        }: Q! X$ M1 a8 {% I0 Z9 R, R9 [
    if (front_view_tag!=NULL_TAG)
. f7 f2 ]  g: G" d( l) }1 a9 Y    {! |# h( k4 Y; d  S7 ^- p7 H
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);
8 I2 ]- M% z( q$ g                UF_DRAW_define_view_auto_rect(botton_view_tag);
: W* s- `# x: j' l4 H( k* W         }
, H! y. x6 M" B, `        if (front_view_tag!=NULL_TAG)& k2 p+ y! M& `, }6 {8 Q9 h7 D
        {/ }' E2 ~+ z. k! L) ~
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);6 o0 ~% X. m5 X( ]- t! x
                UF_DRAW_define_view_auto_rect(left_view_tag);4 w' O) N& L1 [/ f( D6 Q+ ]6 L
        }
* f& @+ r0 k( r' h; {, e) j+ a7 K- f. U6 J* r

8 g$ y0 U- s% y3 E# O        UF_DRAW_ask_num_views(NULL_TAG,&num_views);$ m( i- ~& ]) U8 [# q9 ~1 V
        UF_UI_open_listing_window();* S, ?2 ?( t* a) s- a* _& l2 E* O
        sprintf(message,"当前图纸共有:%d个视图 ",num_views);$ Z, }9 M( U( |/ W/ _/ b
        UF_UI_write_listing_window(message);. }! l& F9 M# \% b7 {3 R

5 X5 T1 ]1 t/ V1 d4 n) c# M0 m
' @/ p* m+ ^. V# ?9 n' w7 X, b: ?- `$ J- d0 y8 c0 Y$ o# X
        tag_t object=NULL_TAG, front_objects[6];
# R# i2 V: v+ L/ x/ ^6 O: Z2 |        int    subtype, type, count=0;
/ U$ @5 `" o, \- k, }5 e- O4 }        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
4 E0 i8 y* b0 T# Z        while(object!=NULL_TAG)
% @! X! ]' d4 A3 C. [        {* A2 Q9 P) o, F7 T2 Q' s7 m3 F
                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );5 ^5 {+ V7 [3 _9 m3 K
                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )
3 e' P1 ]* f) n! [6 W* S                {
, ?7 r# z6 ]! Z* `" I  s2 r                        front_objects[count] = object;
) }' z1 H5 e, j) Z; U# e                        count++;
3 [# Y- N& I4 `) G, ?6 }& `                }* q, U/ ], d( L8 j0 G2 b6 t
                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );' A# F. m; B( c2 x+ c
        }          T9 W1 A3 `) S
        UF_DRF_object_t object1;0 j: p5 V7 u+ M& R. O) `4 o
        UF_DRF_object_t object2;' S) ]5 ^% m% p. B+ C
        UF_DRF_init_object_structure( &object1 );  X# K+ n, y/ B- T3 w
        UF_DRF_init_object_structure( &object2 );
) }6 f# n' K' `8 K1 U        object1.object_tag = front_objects[ 0 ];- d4 ?8 p( }9 c1 T+ _! J4 V" A  R+ d
        object1.object_assoc_type = UF_DRF_end_point;
4 V, J7 [  i: J* S        object1.object_assoc_modifier = UF_DRF_first_end_point;
0 n) ~7 C% E% S6 o0 ], r' q* X) T& i        object1.object_view_tag = front_view_tag;6 \: {, Q; z; ]% T1 \* _
        object2.object_tag = front_objects[ 1 ];' d5 k1 }4 M7 a
        object2.object_assoc_type = UF_DRF_end_point;0 c0 C3 M# b) y& |4 @" z
        object2.object_assoc_modifier = UF_DRF_first_end_point;7 D9 n. E# `9 m# F$ J; z
        object2.object_view_tag = front_view_tag;0 [# B  q: f- @  |1 K! j
        UF_DRF_text_t dim_text;3 |0 T0 b6 I+ K
        dim_text.lines_app_text = 0;" A# i; |+ c) k: b
        dim_text.appended_text = NULL;; e9 w, _" p6 O6 ?* |/ C- E
        dim_text.user_dim_text = NULL;& b3 A) l& W, p8 ]
        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };1 x8 C$ S; N3 F/ |9 V: R8 B6 g
        tag_t dimension_tag=NULL_TAG;( z% f) H4 s6 H' N
        UF_DRF_create_vertical_dim( &object1, &object2,
2 C. S; {+ t/ C" ~9 K' H                &dim_text, dimension_3d_origin, &dimension_tag );  4 v* ^' L2 b+ l& D+ W
- q$ d6 Y- |1 t1 I: [4 I5 l# ~1 `

; l/ \) E! F: z) l& G        UF_DRAW_upd_out_of_date_views(drawing_tag);; J/ V# m+ o: ~; A
    /* Terminate the API environment */" i9 A; C3 N5 d" [  o
    UF_CALL(UF_terminate());
9 ]3 W8 n$ c( Q) l3 i}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本
. E0 ?% [! M; L8 p7 W" L) b
, o2 p, N6 _4 R3 U& P( j: A( T如果是
0 a- Z: Y/ s9 ?$ F+ y# B* q那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下9 d  G& W/ W- E- l7 n# ~

  N: r1 Y9 u4 d6 t; z如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接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 );  
$ J* a; m! S  r( g1 H
4 E6 R8 V. q$ T4 }! l书上用的是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
  c6 Y5 N: i6 R. B: v6 l+ q# R6 r当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:
8 D3 x, B8 Y0 i0 h+++ Encountered unexpected NULL pointer. See system log for details' _3 x2 t, a$ L  m5 n
UF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );5 C: Y+ }  w9 V+ p% ]: `, e
空指针,还是没找到!
上海点团信息科技有限公司,承接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
% H; x' n8 ~- H0 wC:\Users\pc\Desktop\捕获.PNG[/img& v5 g  ]! @+ d# A: {2 e, @
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...
7 D' ~+ [& f8 {$ q& D
那就分析这个地方啦  0 U3 o, n$ ]7 D# z- i, w7 P; g3 s' e

% c( d. L* {, I/ i我没法给你解答 没时间给你调试这个
& A+ {( c0 R  H& Q  d  q
& j5 ^3 p$ x- u你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了