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

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

  [复制链接]

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

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

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

x
/*********************************************************/
4 m0 K5 N3 e- \6 @#include <stdio.h>* J# j0 O2 {) X6 s: ~
#include <stdlib.h>
4 T% Q9 x7 x( p#include <uf.h>
0 J8 \5 T6 _/ U0 k- a/ v% u#include <uf_attr.h>
" T, [; e: I# S6 F6 p#include <uf_cfi.h>) @3 V0 ], p; C7 I5 B+ L
#include <uf_curve.h>
, \( w0 C4 f( o+ d$ q4 }1 I: \' A#include <uf_ui.h>
* X0 ?$ o/ J0 U" E% D9 {#include <uf_modl.h>1 a# |3 P1 d  Z
#include <uf_disp.h>+ n2 _+ h; o# X- I2 u' L, L
#include <uf_obj.h>
0 F! `8 k2 i7 {* a  _* q#include <uf_csys.h>- N0 b) u5 C: _" M. Y
# N0 b  b' d; g; S( H
" J4 b# z* x; H2 x+ p7 y8 E
/************* unload alloc mem *************************/
4 Q+ R5 r# {; P2 b( N1 u+ ^- s/* UF_UNLOAD_SEL_DIALOG  _UG_TERMINATE  _IMMEDIATELY  *// ]0 J6 ~. [, O3 K4 Z2 C

' l8 I- D; }0 mstatic int init_proc(UF_UI_selection_p_t select,void* user_data)
: h4 T0 ^8 k2 d" d! J) m7 u" a$ ^{
8 f, }" y) f3 ]! r; [' I7 a        int num_triples = 1;   //只选择一种类型
6 Z7 Y: c/ e9 J4 ?, G8 I% o5 R, O( M        UF_UI_mask_t mask_triples[] = {UF_solid_type,0,0,};0 Y# e* t5 [! F9 V
        if((UF_UI_set_sel_mask(select," f, Z. ^+ E" A, a
                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
$ d2 y; E5 ^+ x& `: ]2 [                num_triples, mask_triples)) == 0)2 X0 Q0 f0 y5 p* z3 }2 S
        {
4 C+ H& G$ j) p" p                return (UF_UI_SEL_SUCCESS);8 s/ @# K$ v/ n' x" O2 z! r
        }6 p3 L8 a% ^9 o" E. x9 A
        else
4 C5 t- r" Q7 d; i' j: a8 L        {
$ u7 O" Z: X8 s6 k) \8 _0 g                return (UF_UI_SEL_FAILURE);
* c+ m6 I8 i- _1 l. Y        }
4 F1 d& L$ Y( F7 [6 `}: L! L8 c: u* B" F+ B% i" ?

! l0 N/ ], I5 r( Y
' d' b# X6 i! ?" U" Q1 V0 Cextern void ufusr( char *param, int *reTCod, int param_len )
+ _- k( y& Q) X- [, A% U. r8 L# M{7 f' {3 S8 v8 t( E5 o
        UF_initialize();' k  j. O' y) e/ H; V* b( ^
4 ]) o& f6 H- R' V* i
        , h) G( s  g+ F+ b1 _% d8 A4 H
        char cue[] = "简简单单:请选择单个体";0 F6 t- L5 k, k' `# T( K
        char title[] = "简简单单:请选择单个体";$ D8 h" d' }1 x* l
        int response=0;+ f/ ?! P5 B  W/ g6 n
        tag_t object;
: g! a( \0 z. c3 f8 I( j        int count=0;; A. {; }* ?- v" v! F* \; }2 d
        double cursor[3];
# i3 F- F# I' {+ ~0 R/ _4 o        tag_t view;- R3 K4 ]( O, E& p) {' ~  G
        int i=0;' `) f6 `9 E' g( {2 w& d+ z! h
        double pt[3]={0,0,0};- \+ D& x0 B( H) A* d% T+ e
        double z1[3]={0,0,1};
1 W: m# R7 v7 b. E: {( |% @        UF_OBJ_translucency_t cyt=0;
# h" ]( \! x$ b8 |5 O, sL10:' u* e, _% J* L* Q* R8 ^5 g- M5 n
        UF_UI_select_with_single_dialog(cue,title,0,init_proc, NULL,&response,&object,cursor,&view);
: J! ^+ Y" T, M! Q) W        if(response==UF_UI_BACK)   goto L10;  //如果点后退就跳转到L108 ?, X0 b. x, G  M1 f# H* |  A9 D
        if(response==UF_UI_CANCEL) return;    //如果点取消就退出
% R& N1 x* y% g% t% W2 R
( B8 A. l* i# w, r        UF_DISP_set_highlight(object,0);      //取消高亮显示
* L6 M% T% _7 a# W  h6 l6 ?0 Y- N        tag_t csys_tag; 5 o' z6 z! P" U4 G7 O3 ?  }3 F
        double min_corner [ 3 ] ;
3 ]) @$ y+ d, N        double directions [ 3 ] [ 3 ] ;
0 q1 |- I. u2 C- Y0 i2 I        double distances [ 3 ] ;, W0 f" j$ N" \; S- \$ P
        UF_CSYS_ask_wcs(&csys_tag);
$ p9 d5 p$ {& ~) {) p( Q% x        UF_MODL_ask_bounding_box_exact(object,csys_tag,min_corner,directions,distances);- A' N1 D/ Z- ]2 Q7 ^2 [" h
# d4 U; \: }& H& `" F9 s/ u2 z
        char mesg_x[256];! g& `5 i8 \6 X' N- I
        sprintf(mesg_x,"%f",distances[0]);3 W( L* `0 p8 t: o' b
                ( ~) ]7 q5 ^4 J& z; J$ ^3 u
        char mesg_y[256];; {' V: `! Z+ I' G6 _3 H8 R! S
        sprintf(mesg_y,"%f",distances[1]);
. e. I( v% P$ x( P/ x8 u3 d) f' S% K3 J8 v
        char mesg_z[256];- P" }& S$ r$ B/ ]5 y0 ~  g
        sprintf(mesg_z,"%f",distances[2]);( i  m5 U! ~( ^8 C3 M- B% J
        6 B; j& _% O1 ?# E. B7 X+ U
        char *edge[3] = {mesg_x,mesg_y,mesg_z};
, c! |) Y# g# C; k, b        tag_t blk_tag;; D4 r. E4 W& t3 _
        UF_MODL_create_block1(UF_NULLSIGN,min_corner,edge,&blk_tag);
" [' y4 N. b9 ]6 T8 h9 G- L$ E$ |9 T       
' s* v, x9 X/ H! X) ~% C6 p        UF_MODL_ask_feat_body(blk_tag,&blk_tag);
9 e/ ]! ~: X1 u: T" \        UF_OBJ_set_translucency(blk_tag,100);   //设置透明
9 ]4 ], H* s6 z& c( x: P. \  k        UF_OBJ_set_line_width(blk_tag,UF_OBJ_WIDTH_5 );        //设置线宽; d! o6 b1 T# i
        UF_OBJ_set_font(blk_tag,UF_OBJ_FONT_CENTERLINE);        //设置线型0 X5 q* w* g5 [6 M. ^8 l( h/ I

2 e2 H% b/ w2 `; o( h; K/*        uf_list_p_t ll;
( @) `- r9 e! S  P        UF_MODL_create_list(&ll);
5 B/ v% c+ d2 C/ R0 h0 K        UF_MODL_ask_body_edges(blk_tag,&ll);! ], l# J8 x) P% {; n4 p7 B
        int ww;
5 X. O: k4 X! a' ]' Y& u4 t        UF_MODL_ask_list_count(ll,&ww);% }' J( O. ]: g' E) g" U
                for (int i=0;i<ww;i++)( X- j6 r1 T. U3 g4 e3 ~/ |9 \; p
                {
6 k. r1 L& [) G2 }$ F' ]: F                        tag_t yy,curve1;        4 X/ k5 ~5 W% O& `! w2 z
                        UF_MODL_ask_list_item(ll,i,&yy);+ _3 F/ X* D& W' A% z. A, m; h
                        UF_MODL_create_curve_from_edge(yy,&curve1);        //抽取曲线
6 J- L" M4 p* V& x# y1 y                }*/5 T* M" R( Q' j6 w# n8 b6 p$ ^8 L
                char box[256];
/ p7 P: f& F. ~& z, l- N1 z, G$ L' Y                sprintf(box,"简简单单:对象尺寸(X-Y-Z):*%.2f X %.2f X %.2f",distances[0],distances[1],distances[2]);
3 S4 k  y1 _" |                uc1601(box,1);
# \2 e9 r) y0 s
) G8 \3 e& p$ x8 g        goto L10;  //透明之后继续回到选择的状态
7 l/ @2 A' A) U; O* K$ \* Y# X
6 b1 ^; d# I. G7 y) s; M) w        / [6 H1 K7 v) K% q( i: f
1 D  Q9 G2 w/ w" {4 K

. y4 f- C( q; v/ k/ ]8 j( E  Q4 ~% B2 N& D" f3 I
        UF_terminate();( ?2 `5 A4 _, Z, I6 R, w
        return;: v6 a. k( q6 O
}
6 [. V  L' w! a( s1 Q# u
9 [6 K& M. P' D: E# _8 ^4 s9 q: M/ t1 U# m1 }2 k) ?5 k
extern int ufusr_ask_unload()
/ w! z( Z" B! k$ R2 }6 e6 j: X) r{
/ l9 n  h: {% J3 ]        return UF_UNLOAD_IMMEDIATELY;
, ~6 D- x1 `" J+ F$ D}
7 A5 j" B/ O5 e8 a, `  c  H+ `- o% q! c+ G8 Y8 ]
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 y5 ~4 ^9 J3 e- |# O/ Q  c) [
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了