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

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

  [复制链接]

2014-8-13 21:53:12 4356 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 )" R/ R/ T! @. V% ~7 H* b
{
9 c( {2 r) x/ C& w$ K' {" i    /* Initialize the API environment */
6 u6 A* v+ f: J! x    if( UF_CALL(UF_initialize()) ) 4 G+ K" N" @' n0 w- W0 z1 Y0 f
    {
- R$ b0 U1 A+ B1 D: B9 X% p: n        /* Failed to initialize */
2 ^0 X6 ?: b( u) S2 W# G4 |        return;  e" |0 s8 H! T- w7 b6 c
    }
/ a( F$ v  J, d/ S5 {( c    2 y2 g& }8 o+ [/ h! u5 Z+ y
    /* TODO: Add your application code here */
' [8 g5 o2 P0 s" b' O1 L        tag_t part_tag;+ n2 G7 e8 Z+ U! n# H0 I
        part_tag=UF_PART_ask_display_part() ;& \: _' ]) h5 h# N  A! ^. Y
        int num_views;- C9 U+ G& {7 R& b3 ?; U
        char message[MAX_LINE_SIZE];8 l/ D1 n/ P  j; j; H
        % p' D& v3 q0 h
        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";% C+ Q4 P: D3 n) S" h4 Z& o0 l
        UF_DRAW_info_t drawing_info;
) W6 G9 L; R; u$ K8 f: i; t( [        tag_t drawing_tag =NULL_TAG;, o9 z- h0 p3 b9 [0 G) n+ L9 }
        tag_t view_tag=NULL_TAG;
+ D3 h1 Q% f, g$ S6 r" w8 O
; ?' i. Z+ ]/ x" a' d        tag_t front_view_tag=NULL_TAG;
- ^  W$ x; C% q- G' `        char *front_view_name="FRONT";
4 H( M( i  w+ d$ p% O8 N$ |        double front_reference_point[2]={210,400};
! g2 v2 n6 Z" K7 [  t- v* V% ^
& V9 O$ t# A2 B3 f& e' K        tag_t tri_view_tag=NULL_TAG;
" ]5 f5 @6 Z5 m/ N8 e+ ?' Y9 O) z        char *tri_view_name="TFR-TRI";
; {1 ^+ L& q. Z" P        double tri_reference_point[2]={630,120};
* J) K* x4 J8 s
0 x" T$ P/ c% q  k. U        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;
5 _9 U# [/ s; G3 F        double botton_reference_piont[2]={210,120};
9 k; m2 ?8 O7 I4 V' L0 S* Q0 e        tag_t botton_view_tag=NULL_TAG;& T1 d7 S1 a/ c% w. u

6 Z, P! }+ B1 G% {5 T        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;
6 m$ E* r& }' D! m! P* n( i        double left_reference_piont[2]={630,400};4 a, x3 l3 c0 ?$ V3 y
        tag_t left_view_tag=NULL_TAG;
' f5 j: n& i, Q
+ g3 u3 ^9 O7 h/ c, z: P        drawing_info.drawing_scale=1.0;
/ c& H" P5 C- g" y/ c        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;
! q1 C: F% S5 Y9 p# n        drawing_info.size .metric_size_code=UF_DRAW_A1;
+ o, K& P5 }1 c# Y        drawing_info.size_state=UF_DRAW_METRIC_SIZE;8 f1 ^* m/ x0 F2 l- O
        drawing_info.units =UF_PART_METRIC;; W7 J" e  F2 A$ |

/ Z8 l) y, L( q) d" E# j        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);8 ]+ r$ {) l* B. \) M
        UF_DRAW_open_drawing(drawing_tag);
3 C$ x+ I/ O9 l9 A( j0 k+ K5 \8 M2 |0 ]
        UF_DRAW_view_info_t view_info;! c1 H. g  T# S1 O% _) y2 O
        UF_DRAW_initialize_view_info(&view_info);
/ u- e3 g* @. B" r" `/ |% x6 L1 W  p, d: b3 R
        view_info.view_status=UF_DRAW_ACTIVE_VIEW;
& ?! B+ W7 m+ D3 j' s        view_info.anchor_point=NULL_TAG;) S8 T" C& ~3 Y& p- I
        view_info.view_scale=1.0;
# O2 x* v; a4 A) @, F0 [# l        view_info.use_ref_pt=TRUE;
$ p% ?. y  m7 @, `8 k+ S! m1 s' [' f        view_info.inherit_boundary=TRUE;
& R+ n- Y' X* I* a
2 {$ U# F8 [8 O  P        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);
, N7 T9 [( i* T, {3 [        if (view_tag!=NULL_TAG)$ W2 A% k3 e0 U* [- t
        {0 S( I2 B7 `1 I& a1 S: A8 }* W/ \' T5 v
                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);# a) _$ I$ ^( ?3 u. g+ v0 N* o
                UF_DRAW_define_view_auto_rect(front_view_tag);
. c0 g, T4 S( X3 O( \& u# C        }1 y* x8 y4 `+ E' i* T2 J: I
        view_tag=NULL_TAG;
  @/ E1 |% N: M) w4 _9 a8 H  i5 s, E9 S( K
        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);( }- I* O9 H1 H7 @+ `
        if (view_tag!=NULL_TAG)
+ _4 g; H0 B$ `2 c- b        {
; c  g( d' L# b! `2 ~3 S8 T0 S                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
$ Q/ P1 T  ~1 a; x# w                UF_DRAW_define_view_auto_rect(tri_view_tag);! p' s& ]- q7 ]; B/ n/ b$ x& Q
        }
. I% U! K( _4 l3 O. U    if (front_view_tag!=NULL_TAG)+ E  V: y7 B. H7 @& j
    {
( ~7 H# T" ]  O. R. z                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);5 X; r: [# O. Q4 C
                UF_DRAW_define_view_auto_rect(botton_view_tag);
- f7 p' a) t2 `$ s/ M- @         }1 l: Y% Y; i5 ?7 Z0 B
        if (front_view_tag!=NULL_TAG)
2 \, r& r; ~8 z( e! p        {
  n* p" C% q  {6 \) C  m( E9 W                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);
4 |( L0 L* v0 g! p) ^$ e                UF_DRAW_define_view_auto_rect(left_view_tag);
% `& J/ r, f8 Y, X4 c! @9 Z9 m: w" Y        }
, C1 ^- l3 _5 s0 Y1 A) U; E; A6 h
% v; P) U- t6 ?- t- N) f4 p; p% `5 q8 @# E" O) I$ [* `
        UF_DRAW_ask_num_views(NULL_TAG,&num_views);
2 Y0 Z; y8 O  A* @8 e4 s        UF_UI_open_listing_window();' _- d$ y. [7 R3 N& B/ h" y; j4 _
        sprintf(message,"当前图纸共有:%d个视图 ",num_views);5 X& W: Z5 u' z% l4 Z. T. b
        UF_UI_write_listing_window(message);
8 T5 `4 o2 w9 E' @6 r7 A1 d2 Z/ `1 Y2 L- K0 u9 z7 w

9 K0 v6 [( g: m3 l/ ^! T' X' H, U' `8 c
        tag_t object=NULL_TAG, front_objects[6];! \* w) P5 C% a3 x  {7 |! q  }
        int    subtype, type, count=0;
% v  z, C( c5 K$ |        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );" G5 Y$ ^1 T# o
        while(object!=NULL_TAG)
: i8 k, b- {! ^) h1 ]        {
7 c+ B3 {: }1 C  Y. r0 s                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );) l* D% w/ b5 V. o" a7 v! t
                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )
0 M! T$ V6 b: h; r& n8 B                {
- m# V0 [7 H& K* l; E# U) N3 }5 ?                        front_objects[count] = object;  i5 @; X  }% K! D
                        count++;
6 \) a& t/ V5 p4 g( c: a                }
- t9 D: g9 u- D0 r, S$ f$ v                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );+ P1 d( x( f4 {, s& f; f
        }        
$ Y$ j' P, v) ]; V6 V$ U! b% w5 l        UF_DRF_object_t object1;$ P4 S/ P+ h4 h" ^
        UF_DRF_object_t object2;% j% }9 I$ \& m" Z* l
        UF_DRF_init_object_structure( &object1 );- @' r- @$ E# c, S6 c4 K) J
        UF_DRF_init_object_structure( &object2 );& h8 c$ u3 h) u0 ^
        object1.object_tag = front_objects[ 0 ];* ?! \$ C0 U; r9 }8 x
        object1.object_assoc_type = UF_DRF_end_point;
" t  W# @" U+ U+ n1 Q        object1.object_assoc_modifier = UF_DRF_first_end_point;
. E/ b. ~5 x8 f9 [        object1.object_view_tag = front_view_tag;
6 n% a) ]2 E6 q5 r5 j# B        object2.object_tag = front_objects[ 1 ];* X. l- T1 v: D2 u  T& Y$ g
        object2.object_assoc_type = UF_DRF_end_point;
& F# @# j/ ^1 W  U+ Y/ L        object2.object_assoc_modifier = UF_DRF_first_end_point;% Y% R: p& t1 f
        object2.object_view_tag = front_view_tag;
* Z1 B/ V% }: \2 s1 U) t6 M        UF_DRF_text_t dim_text;
& b$ q9 d  t: M; g, \' r9 \        dim_text.lines_app_text = 0;9 p; t* n6 D2 T7 p5 s, I" p
        dim_text.appended_text = NULL;& ~( l4 N) t! J* s& y
        dim_text.user_dim_text = NULL;' V) v' c% l8 f3 Y7 W3 c& h* \
        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };
9 h0 [) N: T/ h; h4 T% k' ]        tag_t dimension_tag=NULL_TAG;
: A- {% A3 n8 Z: K# ?        UF_DRF_create_vertical_dim( &object1, &object2,! G2 w' a1 d0 q% p
                &dim_text, dimension_3d_origin, &dimension_tag );  
% t( M, ^3 w8 Y; g
5 `. m. W" i6 C* l, @+ j
. ~' J  M0 R# z5 T7 ?  k! F2 L        UF_DRAW_upd_out_of_date_views(drawing_tag);
' x1 N4 m( W/ a    /* Terminate the API environment */0 a9 o6 ]& j% N' X0 p2 a* n
    UF_CALL(UF_terminate());' H8 F! @6 m) _0 O! [
}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本& h. B" o) U- F) [$ \* v  k
. X( V/ ?" @3 Q
如果是 . g. e; H# _+ V$ n# F; S$ G) \
那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下
* y* h$ N# W( d1 O6 G7 w6 ?
4 C' s: i# T) J/ z* i1 Z2 y8 W如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接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 );  
. V# `; H1 w* g3 o5 Y( \7 ?* a# {4 B( T; B6 F% ~. `
书上用的是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' W0 l% |& g/ e: o, S/ S5 M
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:) ?/ U$ A1 Y5 I9 u4 a* @) Z% ^
+++ Encountered unexpected NULL pointer. See system log for details9 [7 c, c$ w3 x/ o: j; A4 F6 z2 S5 G* \
UF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );
/ d! R2 `1 a6 a1 p% Y' C空指针,还是没找到!
上海点团信息科技有限公司,承接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& `9 Z8 \( W3 {# j* [5 \# n' l
C:\Users\pc\Desktop\捕获.PNG[/img
; X1 ?1 Y8 R7 E当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...

- E* w. D( n# p5 E  i那就分析这个地方啦  $ N/ H, i1 E6 E1 J4 Y( p; l4 H7 e3 K# c; C
# |0 \8 c+ ~. o& P! \  E
我没法给你解答 没时间给你调试这个
) c! X0 _, j( r/ Z
, W5 Q. V" R5 r你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了