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

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

  [复制链接]

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

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

简简单单 楼主

2014-12-9 09:57:42

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

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

x
/*********************************************************/
* |& H3 p; o/ h$ e6 x#include <stdio.h>
) y* C$ k: A2 A& I. n$ h# k( W5 r/ G#include <stdlib.h>3 c  J, L) [5 p1 H  `( @( j1 I; D
#include <uf.h>) `$ k# i% U/ S- `, S1 v1 [+ w+ R1 Q
#include <uf_attr.h>% h: t; }9 T5 X! c+ a$ H
#include <uf_cfi.h>* ^7 e: d, b0 q5 n3 y
#include <uf_curve.h>3 c* p3 R* @! ]
#include <uf_ui.h>. e. e6 k2 I, R9 |
#include <uf_modl.h># k% p4 G2 u' n5 n5 G9 T* m. e
#include <uf_disp.h>
! w5 ^8 J+ Y% c' J6 I/ l0 E# w#include <uf_obj.h>1 n2 T& l$ i$ ~: V+ h6 z" n
#include <uf_csys.h>
& Q& ?6 v; s9 q, N) K' _7 L8 R; C
) n' [: G. r9 p
/************* unload alloc mem *************************/% E: O) |4 d- K4 I
/* UF_UNLOAD_SEL_DIALOG  _UG_TERMINATE  _IMMEDIATELY  */1 c3 m; D" b" T+ A" x; O! e0 H

" t. Q9 W' i4 @( \$ x' ]! R; `static int init_proc(UF_UI_selection_p_t select,void* user_data)
, ~- c' u: h0 n5 ]# j- {- c% |( K- N{: N  F( c8 m7 U& W9 \4 C) v
        int num_triples = 1;   //只选择一种类型, m9 t- ?/ B* \6 \! O# K
        UF_UI_mask_t mask_triples[] = {UF_solid_type,0,0,};
1 @) ]% p2 `$ Q* B. f        if((UF_UI_set_sel_mask(select,( k" m, T( a- M: e* o
                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,; ]0 r# |$ D  ?/ t  m: a8 v
                num_triples, mask_triples)) == 0)" c* \4 O1 a/ Z0 _
        {
/ t# w" F; O% M/ W- v; q2 h- E                return (UF_UI_SEL_SUCCESS);5 [7 ]1 r8 ^& h
        }
! @( A2 H6 u0 F  f        else
4 y" ]  j& _* K9 Q: ~/ C        {
0 o/ B6 W/ R+ _6 h$ v' s                return (UF_UI_SEL_FAILURE);0 O( D% \* ?. v& e1 ], f. C
        }
5 {; W, G3 [" b8 l2 I% M* e3 e}
2 Q. |- _& D) o" [; y
/ @2 r0 x- z- u0 Q
2 k% G  p9 r& ?* T; N; ]extern void ufusr( char *param, int *reTCod, int param_len ) 3 L( m# F/ p; B; f) F& e1 B
{* C3 q) s; Q5 d% M) w
        UF_initialize();3 \) Y& C, \( p6 q
$ f% d. `) G" y+ h
        1 M. S% N0 V4 l+ V) }  `! o1 _
        char cue[] = "简简单单:请选择单个体";
+ Z$ ?3 G$ O5 x6 z3 }7 H! S        char title[] = "简简单单:请选择单个体";; s& c" A% e0 O, q
        int response=0;
; N; L8 d3 t9 Y, g# i4 j/ D; l( W9 w: r        tag_t object;% _; z, }# [# f5 b
        int count=0;
% n; u5 h9 Z5 k" u        double cursor[3];1 x" [8 |/ B4 I. m7 C5 E% @0 D+ d4 j
        tag_t view;! U8 T& Z, _* v! |% M
        int i=0;
: ^5 M" [/ Y% {- I+ j! G# X        double pt[3]={0,0,0};
; O& a  A# n: b& K, I; F        double z1[3]={0,0,1};/ [; W2 W1 @3 Z) h
        UF_OBJ_translucency_t cyt=0;
- k8 e* t, o- D- O0 M3 xL10:" P* P' w9 o/ M( }" |$ U  o. o
        UF_UI_select_with_single_dialog(cue,title,0,init_proc, NULL,&response,&object,cursor,&view);% O# {- {1 `( n0 Y) q! _& g" @
        if(response==UF_UI_BACK)   goto L10;  //如果点后退就跳转到L10% Q+ s2 e1 V( a8 s, R
        if(response==UF_UI_CANCEL) return;    //如果点取消就退出* O3 v! `' Q3 z) D
! L: S, @9 ?2 {% W( H, P6 Y
        UF_DISP_set_highlight(object,0);      //取消高亮显示
+ P; d% M  m6 c        tag_t csys_tag; 6 o9 J9 j  F* U; O. l+ j/ O
        double min_corner [ 3 ] ; 5 g8 U. `- q. H8 ^( ~3 o
        double directions [ 3 ] [ 3 ] ;
$ `2 k) D1 {5 o- B" `  _        double distances [ 3 ] ;* G$ W, [2 V$ |; F+ L( Y9 ]
        UF_CSYS_ask_wcs(&csys_tag);
; i2 k! v9 S6 H9 x. U: I4 t4 C        UF_MODL_ask_bounding_box_exact(object,csys_tag,min_corner,directions,distances);3 L& S0 k& P2 d& S0 F/ L
7 {2 W2 |7 [+ A9 R+ p
        char mesg_x[256];" v1 e& R* Z; b1 l& S: {* x" z0 y
        sprintf(mesg_x,"%f",distances[0]);
. ]9 c4 W9 ^. c+ U$ y8 Z                : G* h# y9 H$ r0 h/ ?
        char mesg_y[256];7 B7 L( ?7 L: d* \
        sprintf(mesg_y,"%f",distances[1]);2 c' H# ?1 v8 Z+ ?7 q, t+ W, h$ _

7 `+ S" I! i1 b& V4 S, {+ N        char mesg_z[256];
0 }! p  k5 |( x& A9 l: |        sprintf(mesg_z,"%f",distances[2]);4 x4 C' f! B  {: w
        & v  I- D% N) ?+ O$ w! r
        char *edge[3] = {mesg_x,mesg_y,mesg_z};
, w+ f1 o# x+ N) O# v        tag_t blk_tag;
$ H" ]( f! w( t# Y0 g# A" g2 A8 l        UF_MODL_create_block1(UF_NULLSIGN,min_corner,edge,&blk_tag);2 V+ @# L# \4 D8 S" W/ M2 q
       
! F; W1 t7 U6 G        UF_MODL_ask_feat_body(blk_tag,&blk_tag);
+ Y1 `8 @! w9 R        UF_OBJ_set_translucency(blk_tag,100);   //设置透明
: ^# K" N- d: v" r; d+ e3 U        UF_OBJ_set_line_width(blk_tag,UF_OBJ_WIDTH_5 );        //设置线宽' }6 b  V  ^% D! e5 f
        UF_OBJ_set_font(blk_tag,UF_OBJ_FONT_CENTERLINE);        //设置线型
( m  I3 y7 v# j% H& f. d
0 N1 F/ {5 Q$ ?( A: ^( ~3 `/*        uf_list_p_t ll;6 A7 I  ?, m" N6 W+ ^: M, v! `- b
        UF_MODL_create_list(&ll);- \7 Z* B1 e8 B( }& H, N, \
        UF_MODL_ask_body_edges(blk_tag,&ll);
' }8 E6 I$ m; V        int ww;4 [, ]. y0 L) w" u5 X& ~3 J
        UF_MODL_ask_list_count(ll,&ww);
5 j+ Z4 h# ?4 @  |3 |. S                for (int i=0;i<ww;i++)
! D. l% b$ i1 H/ W                {
+ V6 R  j4 u- y' f                        tag_t yy,curve1;        $ U: P6 F' h2 V: J  F
                        UF_MODL_ask_list_item(ll,i,&yy);2 \, z% u( r  k3 }. H
                        UF_MODL_create_curve_from_edge(yy,&curve1);        //抽取曲线2 L' o0 y$ @* }! U* O# p
                }*/8 `6 X* H, o: U* A0 h
                char box[256];9 }/ Q7 m! ?  e% X3 S$ }8 I0 |
                sprintf(box,"简简单单:对象尺寸(X-Y-Z):*%.2f X %.2f X %.2f",distances[0],distances[1],distances[2]);
  H2 G4 e" R7 ?7 A( F" h+ l! D) [8 C                uc1601(box,1);* b# q; t) _5 _
; J& L8 M+ t. g) _% S9 _
        goto L10;  //透明之后继续回到选择的状态
6 k, i- r, _0 F2 R; f& O( o  z0 X- }8 C+ U4 m' G
       
( s/ y8 Q  J: a; v2 f) M
  A3 y7 B( B: R3 f/ s! w
# q8 P- Z) f* P) M* N  F3 R- u8 b0 f' E$ q
        UF_terminate();# \# ~) }6 x# P2 I5 @7 S! K
        return;" W7 e; {1 u& D; V8 L
}
/ x6 Y& ~% P0 v' B% Q* }
5 V: k% a8 y# e$ V) B, D# [# w* A, l0 V
extern int ufusr_ask_unload()9 t2 ?+ b$ P& l' o; }% @  {7 b6 c1 Z' N
{
) m: Z: ~2 \7 L  Z  {; v$ Z        return UF_UNLOAD_IMMEDIATELY;
' l. z" y# j' ?  G: _( o}
. C" T% d5 n; j- M8 f
+ s( c* O. x+ V, L
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录制的吗
" b8 P6 d7 J1 T* D
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了