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

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

  [复制链接]

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

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

简简单单 楼主

2014-12-9 09:57:42

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

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

x
/*********************************************************/6 S) a+ P" T- S6 j' G7 K7 M2 v
#include <stdio.h>! ~! Z1 `; w1 Z: {
#include <stdlib.h>3 C9 F  `+ R  ]
#include <uf.h>7 u) R% n$ f% r% Q& y
#include <uf_attr.h>
0 P  k) ~% a1 \( r) s5 N9 w2 q#include <uf_cfi.h>
; Y! b  [0 k  |' n5 R3 l#include <uf_curve.h>5 ?& R' Y# t' @
#include <uf_ui.h>( \0 D/ T+ s) m4 s
#include <uf_modl.h>
( z  J! o' P. N# ?3 c#include <uf_disp.h>
. c2 Z) G: G& _' d# Q0 }5 z& Q7 f#include <uf_obj.h># S1 r2 [4 `" ^- E6 i& j
#include <uf_csys.h>: R- ]$ Q/ |; N  I' b- Y2 Z

2 b( t; F" w6 `4 s( H" _: Z$ f9 H, l, {' [; d8 X& K
/************* unload alloc mem *************************/3 c/ @$ S+ L- ^7 a0 Q. g6 A& ]& Q
/* UF_UNLOAD_SEL_DIALOG  _UG_TERMINATE  _IMMEDIATELY  */3 Y" p& L4 |# L: G
; Z( d8 A2 S  L" z; B; L$ r
static int init_proc(UF_UI_selection_p_t select,void* user_data)
  P# k3 a5 i! ?( E( e9 d1 ?. @+ w{
! i/ R* t2 M! I. c0 i0 O        int num_triples = 1;   //只选择一种类型
. Z( N& M* W) H" t        UF_UI_mask_t mask_triples[] = {UF_solid_type,0,0,};0 W" A4 u% ?8 r0 N4 e
        if((UF_UI_set_sel_mask(select,
1 D6 a/ k) U7 `. R                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,8 J% `# a( V: N( k/ J4 Y1 D1 ?# R2 i7 p
                num_triples, mask_triples)) == 0)* r: G+ x  _7 r
        {9 X: U3 w4 T' O3 `* T  h
                return (UF_UI_SEL_SUCCESS);
' l( S- [' X. ^+ e/ ~2 d        }
! Z0 o5 ]$ M6 `# X% H5 t        else
2 S3 y1 Q) O! F9 L: w8 e        {, w* j& ?; A% N( i0 e
                return (UF_UI_SEL_FAILURE);8 p6 y* W+ @3 w; E* x) g8 t  O
        }, k" N+ {/ K* J' a+ S
}
! ?+ T8 m1 R* Y) b5 m* ?# T; ~, K) j- B2 m7 ^) \
) F- |+ |" D! f- d( Y
extern void ufusr( char *param, int *reTCod, int param_len ) 5 n4 U5 `; o* H' y' a1 E( M) }
{
5 M7 f/ A' B: r# V        UF_initialize();6 c- k6 |6 [9 y% k% B0 V  G9 |

; o6 o. q7 o$ W. B  G+ u       
/ z  q" L8 T) Q; |        char cue[] = "简简单单:请选择单个体";
$ _( ?+ w4 P, M4 @' u1 z        char title[] = "简简单单:请选择单个体";
4 E' ~1 n' O8 i/ w9 ~5 X        int response=0;
8 _2 d2 b/ O, ]* X6 [        tag_t object;
: P  j$ \! q" |6 T2 w. x9 c! A7 {        int count=0;9 e9 v9 K6 D! ~$ Z. v4 F$ Z# _+ D
        double cursor[3];
9 d" r$ Z/ t$ L2 v        tag_t view;- o" \; g; m0 K* R3 D) D! A1 w
        int i=0;
$ ?5 M  P: U+ j. \$ }4 X: X+ d7 c        double pt[3]={0,0,0};
4 \9 T# z+ w, u# Z        double z1[3]={0,0,1};
: P2 C" M# ^% L$ n        UF_OBJ_translucency_t cyt=0;3 A7 e5 g) P1 L$ O) z% n
L10:  V  w7 ^- W( o: C  ^/ c
        UF_UI_select_with_single_dialog(cue,title,0,init_proc, NULL,&response,&object,cursor,&view);
' c; {4 M4 y% R; K8 ]4 Z, D, K. F        if(response==UF_UI_BACK)   goto L10;  //如果点后退就跳转到L10
' I) |4 c* Q; [$ W7 @        if(response==UF_UI_CANCEL) return;    //如果点取消就退出
9 W1 [8 [( O* v3 E' l1 o# Q# t8 b5 l  H  _2 L- [+ t: n. u
        UF_DISP_set_highlight(object,0);      //取消高亮显示9 t9 j+ X( U" _7 v4 D# ]7 m. I# s8 q
        tag_t csys_tag;
+ e3 m4 s- O" g! Z! E9 c! Q        double min_corner [ 3 ] ;
: N2 P) d2 L5 F. A. {        double directions [ 3 ] [ 3 ] ; 2 I/ E& [& E# e' u; D& J$ Q
        double distances [ 3 ] ;
) Z' m' i- E" F& g$ n3 a. ^# q        UF_CSYS_ask_wcs(&csys_tag);8 E% c: g5 M! u# G
        UF_MODL_ask_bounding_box_exact(object,csys_tag,min_corner,directions,distances);
0 X, L$ d+ Z# g3 K$ I2 }8 x* d) P  |8 x) X5 o. n& \( a# X, u( j& |
        char mesg_x[256];. J6 Q% [0 B8 L" c7 w; y; f% Z7 T
        sprintf(mesg_x,"%f",distances[0]);
9 H4 ?  g# ]' s% P                2 m' C/ ~; s& f* s
        char mesg_y[256];! T: j  P, ?8 P* G- j" Z* F8 d' R
        sprintf(mesg_y,"%f",distances[1]);
* @) P# H7 P  i% o$ n  l! p, Y/ q; s& w+ J
        char mesg_z[256];
6 F* n: p6 c! T/ f        sprintf(mesg_z,"%f",distances[2]);
# h# F" H7 W8 k. p8 G        6 h) W0 j$ \! w, M' j; g3 r
        char *edge[3] = {mesg_x,mesg_y,mesg_z};* @( Y2 N) R$ B
        tag_t blk_tag;
2 S( j4 I- k' |/ B        UF_MODL_create_block1(UF_NULLSIGN,min_corner,edge,&blk_tag);
4 N+ w% a5 Z/ ]0 k5 y0 ^7 n1 u       
7 j  j- v, \7 y9 D        UF_MODL_ask_feat_body(blk_tag,&blk_tag);# K) _) }, J" [) L/ ^
        UF_OBJ_set_translucency(blk_tag,100);   //设置透明
  p1 i! M: J/ |; S; p        UF_OBJ_set_line_width(blk_tag,UF_OBJ_WIDTH_5 );        //设置线宽
8 c- K* O. R7 x# T' m        UF_OBJ_set_font(blk_tag,UF_OBJ_FONT_CENTERLINE);        //设置线型! A' C4 f7 [% w) ^, r2 x

8 {3 \  l( h6 {4 a/*        uf_list_p_t ll;
" ^, @* O4 B; q1 s3 Z0 O        UF_MODL_create_list(&ll);
! A" P4 Y5 o: G1 Z! i; d! w        UF_MODL_ask_body_edges(blk_tag,&ll);/ N, Y8 S2 m% }6 F
        int ww;; O9 Q7 L8 T9 W7 e/ Z
        UF_MODL_ask_list_count(ll,&ww);! f1 g4 I# A) @, ]
                for (int i=0;i<ww;i++)% S' @; K. B1 X. {0 T6 o6 N# [, d: {3 e
                {
+ r$ f8 @  s" J1 a  c                        tag_t yy,curve1;        8 r5 _7 U) @8 R+ H8 w
                        UF_MODL_ask_list_item(ll,i,&yy);# C0 T1 c# I# j9 \
                        UF_MODL_create_curve_from_edge(yy,&curve1);        //抽取曲线
# Z& C1 N: T  ]5 }                }*/+ w, ^! Q4 f$ @9 E% \# i
                char box[256];
) b) t1 H% x$ U                sprintf(box,"简简单单:对象尺寸(X-Y-Z):*%.2f X %.2f X %.2f",distances[0],distances[1],distances[2]);
$ A( f9 T$ d7 U$ _( g                uc1601(box,1);$ h+ Y3 A4 D( K+ m  B

8 B5 ?" F3 {5 w; y        goto L10;  //透明之后继续回到选择的状态! o' u" A% s. g# ]) t$ h

3 X% G! p' [3 U3 n' P       
! c2 V& u9 M% j$ x/ Q5 o- W9 w, S% x1 H) k* a( W5 L4 o/ N* V& |8 G

1 h3 d5 j4 z/ g# G- v' T
. K* _& f$ T: F) J5 @        UF_terminate();4 S- k2 h, d9 P7 S5 C
        return;( `5 l& J' i& P  ^, h" T
}
7 Z( r" M. Q/ ^; i$ ]$ e0 O, D4 z; R6 u5 d/ j3 Y/ G' @, Y- j; F

* t& y5 c/ r/ A6 C! {extern int ufusr_ask_unload()
; {( h- P2 w" e# r{8 m4 {! N+ I1 x2 a$ B: O9 ~( T/ `! e9 a
        return UF_UNLOAD_IMMEDIATELY;$ Q$ w0 T, ?6 ~* s5 e8 u* Z: b
}
9 l7 I# V7 X* k+ `2 P
  ^0 O) n+ i" O6 O/ g
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录制的吗& k# B, o3 G* Y' k% p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了