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

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

  [复制链接]

2014-8-13 21:53:12 4498 4

2

主题

21

回帖

211

积分

培训VIP会员

积分
211
发表于 2014-8-13 11:23:26 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
extern DllExport void ufsta( char *param, int *returnCode, int rlen )2 M3 Y1 E. L7 N: B' e
{
3 R& j9 C/ J& T7 M; ]) \, }    /* Initialize the API environment */2 l' R5 l1 J* Q" g. ?
    if( UF_CALL(UF_initialize()) )
7 ?/ g9 z: V2 X3 }2 |8 }3 F4 r    {. Q1 a. U+ s% Y2 A7 V3 z( q4 O
        /* Failed to initialize */8 J+ r5 z2 R% [7 m
        return;2 q& U% ]9 U5 r; w) e1 p
    }" y& }. @1 G! T: y7 j! B  @
    % I+ S- v# W$ C) g/ D8 H. L
    /* TODO: Add your application code here */6 T. u! J6 U6 w( [3 s5 |  n
        tag_t part_tag;1 f1 W1 W# m1 i' c
        part_tag=UF_PART_ask_display_part() ;
; J' i! W% [) V6 w        int num_views;% u( P$ R. _. l7 J& S
        char message[MAX_LINE_SIZE];! n. r! {9 c1 t) }
        ! K4 K8 Q7 A; `/ k! H9 V/ @- S
        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";
) O4 J/ ~4 C7 _2 @/ O        UF_DRAW_info_t drawing_info;
) ?3 O; m, y2 I. g        tag_t drawing_tag =NULL_TAG;
& S( s8 o5 m* D5 c) k5 T        tag_t view_tag=NULL_TAG;
; g1 M) M! r+ m: v- I3 ]; P
+ x! Y. k$ Q8 @. L$ \- ^        tag_t front_view_tag=NULL_TAG;+ e) Q- J. _% \3 @
        char *front_view_name="FRONT";7 l6 {2 k& X* M& b7 [
        double front_reference_point[2]={210,400};) R' I7 j' M0 F0 z/ K# G

+ {- @1 W0 l; P% ?        tag_t tri_view_tag=NULL_TAG;% a/ M2 K1 m: w, A
        char *tri_view_name="TFR-TRI";: f6 o' z" @/ L+ w2 Z1 K  J
        double tri_reference_point[2]={630,120};
+ x/ j7 d; l# P1 W. i' f7 A( O( \, y) s& T; C5 [. x. E( W7 B
        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;
, m9 l: c) [2 m" ?        double botton_reference_piont[2]={210,120};* p! S8 a9 C  w" v. w
        tag_t botton_view_tag=NULL_TAG;; R% s2 @( c  U' S

# Y4 y3 G6 N$ h% `$ l& C& c9 M# o        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;
, U9 _1 A9 W; ?        double left_reference_piont[2]={630,400};$ H" Y" `4 l3 w% ?$ t6 a
        tag_t left_view_tag=NULL_TAG;
" ]$ R6 l$ G) Z( y6 s  Z, z7 D" x. T' o; J# U
        drawing_info.drawing_scale=1.0;
, V" h0 l  I+ g* a6 y8 u* |        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;
; v7 D  r% N7 v, s+ F        drawing_info.size .metric_size_code=UF_DRAW_A1;
1 H" K' O, @3 Z' B9 t        drawing_info.size_state=UF_DRAW_METRIC_SIZE;
$ z+ Y) M* `. C( t" v" _/ E        drawing_info.units =UF_PART_METRIC;: Q' s2 A- a1 {1 k
& H0 J8 z: T" n! |5 ^
        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);/ u2 m  N0 z. f
        UF_DRAW_open_drawing(drawing_tag);" w+ x% l- L" N  I: n7 X. U  C( [% c
* R3 H+ h- D# ~# D* {( A
        UF_DRAW_view_info_t view_info;
  q3 T3 D* s# w9 \9 x9 S        UF_DRAW_initialize_view_info(&view_info);
$ Z8 x- X" I* l* J& ?1 @6 |  f; s- V" Y0 d7 j. ~+ T1 v( @
        view_info.view_status=UF_DRAW_ACTIVE_VIEW;
0 O5 S5 B4 B' r        view_info.anchor_point=NULL_TAG;: P7 m, u# u4 q% j6 P# [' i% f3 a7 U
        view_info.view_scale=1.0;
9 K1 N% c( |" u" a+ u        view_info.use_ref_pt=TRUE;: F9 N8 {: ]) P1 A' }5 I' P, c
        view_info.inherit_boundary=TRUE;$ z3 L: S4 ~1 P' m
* ^0 w/ a  D9 K, W7 O- L$ R% |
        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);/ d+ d* v' m3 p& R1 Y0 N
        if (view_tag!=NULL_TAG)
( [% x8 t! `8 O, g& z) R        {2 n/ p$ A- Z/ P' Q7 A: r: U
                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);
  G/ O( k: v% c( I                UF_DRAW_define_view_auto_rect(front_view_tag);
7 a* H" @% O2 t. I# A5 d        }
( x: e  e) s  p        view_tag=NULL_TAG;) d8 w# Z  t* J: m
; d6 s9 `$ h# m, C0 j
        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);
% _! a* G# x2 \. Z5 p        if (view_tag!=NULL_TAG)
; h3 V4 J% ^8 w( k        {
# @. H: w) f# ]# H0 i/ q# w; F& e                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
8 `$ z" k, {  X4 G4 D3 d                UF_DRAW_define_view_auto_rect(tri_view_tag);% |9 z( M& D2 `' }
        }
- _/ s6 T. n. ^    if (front_view_tag!=NULL_TAG)
! ~3 f! S" A" l1 Y  j) \    {
& R  S- U# S* u5 v% w9 q# \0 B                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);
* n& x0 c! j, ]" a1 j3 T                UF_DRAW_define_view_auto_rect(botton_view_tag);
: h) f1 z* _( h: k+ _$ @( F         }
/ d8 `% F( S- Y% N& m        if (front_view_tag!=NULL_TAG)
8 K2 w+ c. t  t( p7 |0 ~        {
3 T4 g: j% ?- S                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);
2 ~8 r% R- j9 P0 I3 [; ^' A                UF_DRAW_define_view_auto_rect(left_view_tag);  D, H6 E# B, p, E9 C# l
        }
( W. B) w& C) C
1 K) ~8 d* I, K# K# u% @- T, S* F5 X  D; z  d! t
        UF_DRAW_ask_num_views(NULL_TAG,&num_views);
3 o: _) ~) }4 f1 W' C9 [; W- _- Y        UF_UI_open_listing_window();( T% ?$ C6 f* k. T9 E/ t& H+ i
        sprintf(message,"当前图纸共有:%d个视图 ",num_views);
$ b$ N4 ]1 B( J. H4 E/ ]4 [        UF_UI_write_listing_window(message);
% |% q  d+ ?, |) ?# I5 q* \% }- T
; U% S9 _4 [4 k
9 W8 e3 p$ O4 k4 S' ~; s7 v
+ f/ H3 b# o* S, m% z4 c        tag_t object=NULL_TAG, front_objects[6];
) y; t% S2 z* n        int    subtype, type, count=0;5 ~) r8 k, R3 D' F& i# `
        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
- I, F: W& _5 `. Z! K: F7 u        while(object!=NULL_TAG)3 k' c% J2 B( I' d  K
        {7 o+ T2 o! m% G; z( V
                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );9 S' W' h2 m% n6 T0 A! B- v; h: _
                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )$ ^1 E% A" g5 @6 a  o0 q- j2 V' g
                {
0 X$ p, H; H) o, f, ]7 n                        front_objects[count] = object;
% n. p( F; K- k: L2 h' l8 R) A                        count++;! m# g' `) m, i$ X# c8 Q( [
                }6 j) ~# R8 B8 o3 v
                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );' t. R5 V2 o8 i; f7 F, D/ h
        }        
4 ?; J, g3 G. Y+ [( r. j! {$ g        UF_DRF_object_t object1;
" }; y! S2 `) `$ g0 D        UF_DRF_object_t object2;* U+ o% R/ p2 D  q1 y( M& F
        UF_DRF_init_object_structure( &object1 );
3 d- x6 G6 M6 h# f+ R3 j        UF_DRF_init_object_structure( &object2 );
! y* s0 [" x* a- _( u; K/ F! M4 x        object1.object_tag = front_objects[ 0 ];4 V. A& l, J6 i9 B1 a3 i' M5 O
        object1.object_assoc_type = UF_DRF_end_point;
1 }7 M9 k& c+ g% k* u: B( U* T+ K& E; Y        object1.object_assoc_modifier = UF_DRF_first_end_point;( O4 N! ?$ k* T# X: I
        object1.object_view_tag = front_view_tag;0 H1 q/ \. x; D
        object2.object_tag = front_objects[ 1 ];
( E- J1 K0 L4 s& h        object2.object_assoc_type = UF_DRF_end_point;
6 h- z4 g0 P" _! C        object2.object_assoc_modifier = UF_DRF_first_end_point;
4 @* {9 s9 q/ l( I& E        object2.object_view_tag = front_view_tag;
+ Z! U  R+ g2 f6 O& R' o/ w# G        UF_DRF_text_t dim_text;
; R; h4 x" a- J( P2 G' n        dim_text.lines_app_text = 0;
' h5 U) S0 B- l7 ?8 P. {        dim_text.appended_text = NULL;& ~& H* F$ o4 R, [
        dim_text.user_dim_text = NULL;6 q1 Y; a" U0 K6 C' ^
        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };
0 Y4 h/ l1 k3 C( O1 S1 r        tag_t dimension_tag=NULL_TAG;6 d" ~, _. Z, ~* M( p# ?2 U& t
        UF_DRF_create_vertical_dim( &object1, &object2,
! V# n4 V: R1 [4 H8 ?7 N* f9 q                &dim_text, dimension_3d_origin, &dimension_tag );  8 k( _, U& p  ^) w* A

' z- O2 B" k+ y2 c5 _1 E5 l, R0 \& f, u- A& m% @7 \& F2 f; S! v
        UF_DRAW_upd_out_of_date_views(drawing_tag);
& k- F9 y: O5 ?+ Y" L    /* Terminate the API environment */" V$ k) E) O: ^1 d; \! w
    UF_CALL(UF_terminate());* f& i. `5 X  P0 d0 V1 {3 O* \
}
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

全部回复4

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2014-8-13 15:15:49 | 显示全部楼层
第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本- {/ j* q6 ~2 T. i! W. W' P

: k: z8 k+ f' a+ `如果是
* r% }0 Q4 P$ t) H那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下% Y; x! D1 h' v/ Z. Z* I. \( a" ]
5 e6 w. m: L1 U& W4 f  K
如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

2

主题

21

回帖

211

积分

培训VIP会员

积分
211
 楼主| 发表于 2014-8-13 19:08:40 | 显示全部楼层
UF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );  1 t. q2 M/ n: u1 v0 e2 B7 o" v: N
! o  m* \; t5 B
书上用的是NX7.5我用的是NX8.5,就知道这行出错了。这一行错误但是我找不错误原因。
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

2

主题

21

回帖

211

积分

培训VIP会员

积分
211
 楼主| 发表于 2014-8-13 20:43:32 | 显示全部楼层
[img]C:\Users\pc\Desktop\捕获.PNG[/img
& ?2 M6 G4 B: R* [当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:2 v: U% B: X% x" E
+++ Encountered unexpected NULL pointer. See system log for details; l- n9 u0 }% y# n0 C& G6 m5 z! v
UF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );) J8 x" Z/ Q: U% b
空指针,还是没找到!
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

320

主题

226

回帖

9784

积分

管理员

PLM之家NX|TC专家

积分
9784
发表于 2014-8-13 21:53:12 | 显示全部楼层
北方的候鸟 发表于 2014-8-13 20:43
5 a5 |" F, X' YC:\Users\pc\Desktop\捕获.PNG[/img$ ^; N6 o' o/ [; s
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...
& l. e0 P% h2 G' X
那就分析这个地方啦  9 t$ N% G3 p% w% s8 m

" S: W5 ~6 s; Y6 j1 |我没法给你解答 没时间给你调试这个1 ]% B) a, ?6 \& h1 l$ J6 a- H8 ~
9 y4 x6 H8 _9 p# g2 {0 ?
你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了