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

[交作业] 选择体绘制包裹体

  [复制链接]

2022-12-21 19:55:33 4949 4

简简单单 发表于 2014-12-9 09:57:42 |阅读模式

简简单单 楼主

2014-12-9 09:57:42

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

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

x
/*********************************************************/
7 T! `! O" H5 s5 G  f#include <stdio.h>+ M, L3 A. N" }: O9 k$ {, T) u1 M
#include <stdlib.h>
( B' g8 T: u8 A5 _9 `#include <uf.h>
3 n5 z  u6 }$ h% L4 E+ ]9 f' g) u1 u#include <uf_attr.h>0 n6 w" E. A! b# H; p
#include <uf_cfi.h>
3 G" g; @2 P2 M: d0 u, c9 F#include <uf_curve.h>
  f) Q" \: _6 H* S8 L0 f#include <uf_ui.h>
  x& T' o  J+ P, |3 O7 {#include <uf_modl.h>
# [4 [$ k! e2 L5 R. ~#include <uf_disp.h>( Q' s+ M, R! F1 j; |" S8 j( A" {
#include <uf_obj.h>
7 S, `. {6 o; D0 }#include <uf_csys.h>" C5 L1 p1 B; l: L

) o( g. ]4 x6 {7 S# ]# Q# Z* E+ p: v9 P# ~
/************* unload alloc mem *************************/
5 i! j$ ?. @- b0 _( Y/* UF_UNLOAD_SEL_DIALOG  _UG_TERMINATE  _IMMEDIATELY  */1 I$ Y7 v# d* M; W! h

! n% l2 D* u; Bstatic int init_proc(UF_UI_selection_p_t select,void* user_data)4 V3 i( F6 M% E" r
{
( @9 N; I6 U* S6 ?0 d! h# ]( c, z' Z        int num_triples = 1;   //只选择一种类型
1 n8 [3 ^' Y6 ?& Q        UF_UI_mask_t mask_triples[] = {UF_solid_type,0,0,};: T" i6 ]- [+ h5 |& A: V
        if((UF_UI_set_sel_mask(select,2 @8 D3 x$ l5 ?5 s
                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,& ]) D/ `, [, ^! m) l, s
                num_triples, mask_triples)) == 0)* y& l, |0 t; g% e4 A
        {
% z/ o- S1 |5 h                return (UF_UI_SEL_SUCCESS);/ T6 Q5 m1 u! t# T
        }# M# E+ h, @6 V& l8 F
        else5 d* k0 p6 ?4 Z4 Q
        {
' M" [6 x% O3 I  {- @- {                return (UF_UI_SEL_FAILURE);: W; j' u9 y9 {, v2 B6 s
        }& C% p! L2 [& E, u7 a- b% R+ \
}
% }6 W( O' E: e$ m) c: d  m/ N8 H5 \. L
! r5 K0 |& O( ^, F9 F; |5 D& D
extern void ufusr( char *param, int *reTCod, int param_len ) 4 J9 z; A' }, }+ _' M  r6 F
{
% S5 u- L: g) D% G% b        UF_initialize();& s0 p# I/ Z: h1 Y! E6 h
  F) {% B' B6 X5 I& O* a
        : E/ g+ i+ Z9 [+ n' R! f8 {
        char cue[] = "简简单单:请选择单个体";
3 u; K" ?1 d1 B/ q8 D& i: b* k        char title[] = "简简单单:请选择单个体";
9 t* v: V# X2 {" N. m/ O$ m        int response=0;
& f" h- J: d& @: b0 m5 |7 X        tag_t object;$ a: Z. H8 B7 ^5 R+ |
        int count=0;
5 |( ?! ?. r$ f4 y/ S( r' X0 [        double cursor[3];; a! I4 L! [6 a. y
        tag_t view;' ~  A* C9 m( L6 Y
        int i=0;
5 [5 X5 i7 a$ O* r! I- q/ K6 o        double pt[3]={0,0,0};  z3 W6 a, |- ~, {% }3 Z7 {( j/ h
        double z1[3]={0,0,1};/ ]- h0 b, S0 s8 R
        UF_OBJ_translucency_t cyt=0;
! H2 X* b  J: O9 i# l7 PL10:$ v& m. l$ N5 _5 U
        UF_UI_select_with_single_dialog(cue,title,0,init_proc, NULL,&response,&object,cursor,&view);1 |1 J. j# J1 j# w- I; ^  w- ]
        if(response==UF_UI_BACK)   goto L10;  //如果点后退就跳转到L10$ d1 a8 d' f( J
        if(response==UF_UI_CANCEL) return;    //如果点取消就退出+ X- }0 x0 j0 Y3 e
& E* I3 p5 P; ~8 T2 K
        UF_DISP_set_highlight(object,0);      //取消高亮显示
( Z  Q* ]% t; e  B" M5 f% _        tag_t csys_tag;
1 k" V8 z; c& N& z4 r        double min_corner [ 3 ] ; 6 H3 l+ P7 t6 w% [6 l
        double directions [ 3 ] [ 3 ] ;
- d' s8 s: _0 w( `+ {        double distances [ 3 ] ;
# e  B( S9 Q! [0 H* C        UF_CSYS_ask_wcs(&csys_tag);+ u" q+ v( f6 D7 t
        UF_MODL_ask_bounding_box_exact(object,csys_tag,min_corner,directions,distances);
: U5 M! M' f1 E; h, L0 H  s
: O+ G/ f/ V; u' ~  P' }! I2 W        char mesg_x[256];0 `( ]4 s3 ]; m3 \1 @
        sprintf(mesg_x,"%f",distances[0]);  G5 E3 ~8 `/ M& }& \
               
6 R6 S( c9 N8 m1 Q8 j        char mesg_y[256];5 |: V! n* w& _* t+ A: A9 t+ m
        sprintf(mesg_y,"%f",distances[1]);# a8 \: @. }1 X$ ~7 |4 e, i9 S
" w; r- m! _, m5 a+ w) g6 W* t( x
        char mesg_z[256];
. w, m% e  }+ R4 D        sprintf(mesg_z,"%f",distances[2]);
8 {6 S+ D6 f; x( c# }, Y" u1 \% ^        4 p( y# O  w  }. o# B7 k; F# Q" X
        char *edge[3] = {mesg_x,mesg_y,mesg_z};
3 G. @! {6 q! K; {* S! T        tag_t blk_tag;; h& D9 N1 ?; U. V, e" m
        UF_MODL_create_block1(UF_NULLSIGN,min_corner,edge,&blk_tag);9 k2 T# e4 e9 G9 u; P, y6 z
        7 a9 E6 U5 T( w# s8 i5 x+ u
        UF_MODL_ask_feat_body(blk_tag,&blk_tag);( d7 `/ f, y: w6 H/ a# S. ^9 x8 [; X
        UF_OBJ_set_translucency(blk_tag,100);   //设置透明, A4 o% T  U6 j/ _, {
        UF_OBJ_set_line_width(blk_tag,UF_OBJ_WIDTH_5 );        //设置线宽
* c9 y% K6 r( J$ w3 ~. [        UF_OBJ_set_font(blk_tag,UF_OBJ_FONT_CENTERLINE);        //设置线型
2 m8 Z, a) ?$ Q$ Z2 S7 E- ?- |& z9 G+ d' ~( ~' }+ m
/*        uf_list_p_t ll;
/ R1 E( d) j1 p; V3 c7 r        UF_MODL_create_list(&ll);
/ i" ^& I. V+ d6 H: o        UF_MODL_ask_body_edges(blk_tag,&ll);' @) f8 s: f9 S2 W, |1 Q
        int ww;
* B* ~3 C1 e- q! G        UF_MODL_ask_list_count(ll,&ww);4 d$ F2 G$ G! v" q/ S% O2 V
                for (int i=0;i<ww;i++)
5 @0 E; @. F2 q. }  h9 T                {
8 N; b* A* Q  V' h- R                        tag_t yy,curve1;       
! u- K8 K" C2 R: K; s( d/ l6 z' x                        UF_MODL_ask_list_item(ll,i,&yy);* U2 K  w& ?3 o
                        UF_MODL_create_curve_from_edge(yy,&curve1);        //抽取曲线% y& K) s7 `- `4 B8 n. P1 P& S3 K$ t
                }*/
# k2 L1 e$ c5 J! c4 I( u                char box[256];9 R. U' i5 }7 A5 T8 g5 f
                sprintf(box,"简简单单:对象尺寸(X-Y-Z):*%.2f X %.2f X %.2f",distances[0],distances[1],distances[2]);
7 ]9 O) M2 M$ t7 t0 a! D) r: ]                uc1601(box,1);* s0 d4 T3 Y: l& E

6 b5 B" B4 q. X# w' x$ z        goto L10;  //透明之后继续回到选择的状态- G& ^, a8 n% s- v3 G1 X
* k$ @/ Q8 x; R4 S* j7 I0 m
       
( E, l" j# k! \' S
( k$ c  i" m  r  j0 S
, T+ G/ b: Q- j' u' h9 S
- t' G: d4 C( `  ^. e$ _        UF_terminate();! k$ |1 W- n4 Q1 @  M! j& v
        return;
. C. P1 D% A) v4 T8 t, y}
! {9 ^5 ?" [* [, @% f
$ ^0 D/ v8 G1 B$ {. A9 o9 D; Q0 Z/ M6 p; j1 s' T1 ~
extern int ufusr_ask_unload()
  P+ q! [- e3 }% o. K# Z8 Y" o{
6 \2 {8 I0 O# G/ `1 {$ w5 o! ~        return UF_UNLOAD_IMMEDIATELY;
4 U( o+ l7 [" ~}
" m. v( \5 w. ~/ _) W0 T% @. e5 S2 M6 C- Q
QQ截图20141209095616.jpg
QQ截图20141209095701.jpg

评分

参与人数 1PLM币 +3 收起 理由
admin + 3

查看全部评分

上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复4

秋爱 发表于 2015-7-29 16:04:22

秋爱 地板

2015-7-29 16:04:22

请问这个是用JA录制的吗
5 {) J8 B% o5 v; D! a4 n/ r4 {% S
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

freshapp 发表于 2022-12-21 19:55:33

freshapp 5#

2022-12-21 19:55:33

楼主好人啊,好人一生平安!
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了