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

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

  [复制链接]

2014-8-13 21:53:12 4486 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 )" u# \6 D' t7 T5 t9 k5 ]( b( m
{
. H3 s. J8 K* Z! ]. C0 [  L    /* Initialize the API environment */9 y. Z* `. e3 m. x2 s3 F1 [  g+ g
    if( UF_CALL(UF_initialize()) ) ' a$ v1 M) l' S/ V( m5 P
    {0 \4 M" ^( `$ {& q# _+ a
        /* Failed to initialize */
/ k4 Y4 G* y( F) Q: u4 Y        return;
" i3 x6 I: K2 Q5 p, j    }
( i, e) M! _2 h2 q. v$ S+ B: S. Q    $ A/ B6 Q0 E; d0 @
    /* TODO: Add your application code here */
( F0 W' o0 a8 _/ M        tag_t part_tag;2 Q# O6 H: @0 N, z1 ~; |: z1 f
        part_tag=UF_PART_ask_display_part() ;
6 P6 f& V! k9 \5 K5 Y/ [        int num_views;% {5 y/ ?. d+ e$ q. m" l
        char message[MAX_LINE_SIZE];
; [0 L3 A+ \( P& i       
1 x0 f( w$ D, j1 O9 R, m. O        char drawing_name[MAX_ENTITY_NAME_SIZE]="my_drawing";& |, R) n( |% @% Q1 o; a3 \
        UF_DRAW_info_t drawing_info;
. k/ ~% n7 {. V+ u9 [        tag_t drawing_tag =NULL_TAG;- E, `! |: I) f! z9 m7 b" R& ^5 O* x
        tag_t view_tag=NULL_TAG;, b: R4 j: T9 t

9 j- M3 C2 X/ ]: `$ k: f$ [        tag_t front_view_tag=NULL_TAG;% T1 h% {0 J8 y+ G5 b+ a5 z: E
        char *front_view_name="FRONT";) b$ `) q0 S7 |3 A- ^" w
        double front_reference_point[2]={210,400};
% n7 m6 N* Q# i# q7 L( @( |6 N
6 u! ~! f- r/ ]) `# u" e3 i        tag_t tri_view_tag=NULL_TAG;) m7 w( `9 V, H  o  i0 O- X
        char *tri_view_name="TFR-TRI";
& c6 J; g" Z( F: L9 ~        double tri_reference_point[2]={630,120};
( `/ n  y1 A, @# O. y2 f1 v
( q. B- b& s1 M5 c        UF_DRAW_proj_dir_t botton_projection_direction=UF_DRAW_project_below;2 H+ f3 \( a$ S7 ]; O9 ]# k
        double botton_reference_piont[2]={210,120};
6 |, F0 t: j0 a" m+ ]3 l        tag_t botton_view_tag=NULL_TAG;
" L/ X. N6 M# b( J% i3 S3 k" ~# c; N* f: I5 K6 |( `1 R
        UF_DRAW_proj_dir_t left_projection_directiom=UF_DRAW_project_left;0 ^6 p! @+ @1 h6 J, g% [
        double left_reference_piont[2]={630,400};3 s$ u3 x  S, |- R- k! {5 P  |% V
        tag_t left_view_tag=NULL_TAG;( a$ Y8 M2 L8 ]1 k! p

' R5 u/ ^  z+ l3 a/ l        drawing_info.drawing_scale=1.0;3 o1 G$ T7 m; J% P
        drawing_info.projection_angle=UF_DRAW_THIRD_ANGLE_PROJECTION;, B8 G. ]1 F8 v5 ?, Z$ I6 L
        drawing_info.size .metric_size_code=UF_DRAW_A1;
) x. t$ T% n& ]# y        drawing_info.size_state=UF_DRAW_METRIC_SIZE;
- i6 f# ~+ l; _        drawing_info.units =UF_PART_METRIC;. j* S: ]% _+ z: S$ d* v

' D! T+ T4 T* ~        UF_DRAW_create_drawing(drawing_name,&drawing_info,&drawing_tag);& |8 R& U; {( O$ x" ~& }
        UF_DRAW_open_drawing(drawing_tag);
( C/ `" ?/ }3 c2 e
* L9 Y# s; |/ C+ r$ M. d        UF_DRAW_view_info_t view_info;# {  J8 ?! H* l
        UF_DRAW_initialize_view_info(&view_info);$ m3 L7 J$ O" B! I9 I# e

& ~/ O7 o1 x0 ?        view_info.view_status=UF_DRAW_ACTIVE_VIEW;
# ^9 p$ S" I  A$ q; i7 W8 p        view_info.anchor_point=NULL_TAG;1 S0 A5 r( U1 z# O3 i& S
        view_info.view_scale=1.0;
3 P$ `4 \8 z( W6 G  E5 x        view_info.use_ref_pt=TRUE;
9 E( u* v! z5 M8 W5 z        view_info.inherit_boundary=TRUE;
  i8 J3 d) p: d
- H+ C5 k% y3 r  I( R        UF_OBJ_cycle_by_name_and_type(part_tag,front_view_name,UF_view_type,TRUE,&view_tag);! X. i- p% B& C  R1 E  r
        if (view_tag!=NULL_TAG)
+ q$ N9 Q  k6 j8 U1 P& W& w        {
. a/ S4 q) ]" w% f* f                UF_DRAW_import_view(drawing_tag,view_tag,front_reference_point,&view_info,&front_view_tag);
8 I. t( v8 }$ d                UF_DRAW_define_view_auto_rect(front_view_tag);
! D& J$ |6 V5 R: S( T9 i  s1 b  l        }. T! M) ~# h* R  ^5 ?
        view_tag=NULL_TAG;+ e" G; v- `! V! P* r, L6 ?
) c1 g0 z. Q7 R
        UF_OBJ_cycle_by_name_and_type(part_tag,tri_view_name,UF_view_type,TRUE,&view_tag);4 K- V, U# D; p+ h( D, {, s; B3 i
        if (view_tag!=NULL_TAG)0 j$ |$ t. H; z
        {
# w0 P5 Y. H+ X) G( Z' s, d                UF_DRAW_import_view(drawing_tag,view_tag,tri_reference_point,&view_info,&tri_view_tag);
/ k( N3 E. @0 D: _                UF_DRAW_define_view_auto_rect(tri_view_tag);
. R5 r1 @* g3 p# B& \        }
8 e" W* t6 _, J7 l    if (front_view_tag!=NULL_TAG)# s' j$ i( S) v0 a
    {1 y2 I8 D' ~% r% [/ E6 n; N# o
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,botton_projection_direction,botton_reference_piont,&botton_view_tag);
0 D( H4 @, w7 d) K6 Y" \                UF_DRAW_define_view_auto_rect(botton_view_tag);
/ W0 E: G- ?; C2 h- d9 O9 {6 d. s9 A         }
/ Y9 M$ l9 X# e/ ]0 ^7 `2 @        if (front_view_tag!=NULL_TAG)9 f$ e% x. E  S) ]+ V2 j! _
        {% ^. m3 j6 N; p; z9 Z( u& i) b
                UF_DRAW_add_orthographic_view(drawing_tag,front_view_tag,left_projection_directiom,left_reference_piont,&left_view_tag);6 l: N" Y- a5 P' |5 s
                UF_DRAW_define_view_auto_rect(left_view_tag);! K2 l8 F/ x) T; w" c) x6 T
        }$ |- [! {/ D' p  |- o6 ~& t

1 o9 }4 F  Y; j9 n- a2 e
8 F7 ~8 D& C: m  c- F2 O" b7 y        UF_DRAW_ask_num_views(NULL_TAG,&num_views);" K; ^! l" [, a( n7 z/ O& B
        UF_UI_open_listing_window();
" ]4 H/ q9 C) i  i4 U2 z/ ?        sprintf(message,"当前图纸共有:%d个视图 ",num_views);8 A' J7 W7 r/ y& D( Q2 M6 v5 A
        UF_UI_write_listing_window(message);
2 l+ x' V6 [9 B$ W+ }% A
4 O: J2 o7 ]3 G5 c8 O/ z1 K% q  U: q+ I' P$ [

3 ]; V, G* L8 d8 N) O7 P        tag_t object=NULL_TAG, front_objects[6];
; h0 _1 I7 I1 a        int    subtype, type, count=0;
( {! Z: Z( v6 p3 P        UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );
8 D* W/ X/ i8 B  {+ ]        while(object!=NULL_TAG)
& s5 o' ~& Y$ P' ~        {" U/ l2 B) w1 M" D0 ?+ a7 y
                UF_OBJ_ask_type_and_subtype (object,&type, &subtype );
2 k) Z: Z' v( ]8 {, x. b                if(type==UF_solid_type  && subtype==UF_solid_edge_subtype )
2 r  k" a. |0 K$ U                {
! ]" C, [# J# i) O2 o5 _8 @1 c                        front_objects[count] = object;
; W7 X) s. Z) m* b$ u                        count++;
. T; y# V* |/ `7 d4 i                }
+ T8 @- X$ A) N1 G6 Y; i- W# r# T: M                UF_VIEW_cycle_objects( front_view_tag, UF_VIEW_VISIBLE_OBJECTS, &object );6 N+ Y7 @& V6 f
        }        6 Y: G; e# g) a, N* r1 Y
        UF_DRF_object_t object1;
3 M0 x, `) h2 O' [4 z- x, f, Z        UF_DRF_object_t object2;; @- ^& C; p; ?$ I* F2 E
        UF_DRF_init_object_structure( &object1 );' U. C/ i  G+ ^# \
        UF_DRF_init_object_structure( &object2 );
1 g; h6 X- Y6 X; _+ P) ^$ ^        object1.object_tag = front_objects[ 0 ];) Q! R' h. i7 k) [. ]( ?
        object1.object_assoc_type = UF_DRF_end_point;0 U% W% b4 y" ^4 D
        object1.object_assoc_modifier = UF_DRF_first_end_point;
: q$ B9 b8 z/ s        object1.object_view_tag = front_view_tag;, k7 _3 I8 ^* S% w+ a/ l
        object2.object_tag = front_objects[ 1 ];( O! a' k& h4 _
        object2.object_assoc_type = UF_DRF_end_point;
& ]+ s+ o3 M* y6 o        object2.object_assoc_modifier = UF_DRF_first_end_point;
+ q( [* u2 N) q' y8 a$ ]        object2.object_view_tag = front_view_tag;0 }' q% o, W1 N& N* [4 v: b
        UF_DRF_text_t dim_text;8 X; `* L' d) h+ m9 ~% X- z
        dim_text.lines_app_text = 0;
  G$ {1 r  A) {/ `, n) N! c1 C        dim_text.appended_text = NULL;
7 e4 X9 u/ x, X% W/ J! F        dim_text.user_dim_text = NULL;
  _, [% y; P; h/ Y: B        double dimension_3d_origin[ 3 ] = { 360, 400, 0.0 };
; `3 n& g1 @( o/ w5 Z2 ~        tag_t dimension_tag=NULL_TAG;
( y! f5 ]7 B1 E        UF_DRF_create_vertical_dim( &object1, &object2,
+ ]; P" W. q7 \                &dim_text, dimension_3d_origin, &dimension_tag );  * E5 @" o/ Q  p* j& R* e

  R! v* K2 }2 x4 X5 Y$ ~, X
3 v5 b/ c7 g, x: C3 `) S        UF_DRAW_upd_out_of_date_views(drawing_tag);
& l) {# _  i: x    /* Terminate the API environment */
! z0 ~, `) g! i' E    UF_CALL(UF_terminate());4 t" m2 v/ Y8 O4 [+ [7 d
}
上海点团信息科技有限公司,承接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

第一 确定你编译的版本 和 你说的 书上的 是不是 同一个版本
5 y9 x2 |, g# j# C  h5 ?) T9 e6 a% v$ M# |1 }$ v2 l, w4 E
如果是
3 f# \. q1 i1 P. r' l$ D4 k那就是书有问题 ,或者是你看书设置的环境有问题,那里报错,看code  debug下! J* b! D2 h% d1 |* O% X
9 H  M, s5 Y; `* k0 q
如果版本不一致,那很有可能, 这种问题 你自己通过报错哪一行解决了
上海点团信息科技有限公司,承接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 );  4 Q* u/ @! ?! \: m& L" r. u

8 R$ [' O' J' r, M) p) n书上用的是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
$ N3 O0 Y7 ]3 x; \# |. h当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_view.cpp:
4 j3 {2 ~$ [" M7 Q* L- ^+++ Encountered unexpected NULL pointer. See system log for details
5 U* V2 q+ t+ a7 cUF_DRF_create_vertical_dim( &object1, &object2, &dim_text, dimension_3d_origin, &dimension_tag );
3 L+ B9 F/ X+ I7 P5 C# n空指针,还是没找到!
上海点团信息科技有限公司,承接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
, ]/ J. o, B* `- _6 g7 L4 s# gC:\Users\pc\Desktop\捕获.PNG[/img: j: `4 a' @  `5 |5 w" ?% ?) W7 E
当前图纸共有:4个视图 *** ERROR code 68 at line 207 in drawing_vie ...

/ X7 C2 T# W" A+ H1 Y( ]; l1 D那就分析这个地方啦  
- i' a& X$ M% Y. F" G7 Q- d6 x  C# l. E  g5 M5 r5 c/ |5 j
我没法给你解答 没时间给你调试这个. z8 U4 I% q: A( i7 z$ [

) j1 o, X" O* B你多看看 我录的 NX9 的二次开发视频教程吧  书上的都是比较老的东西了
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了