青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 1640|回复: 3

[疑难] ug中直线的选定。

[复制链接]
发表于 2009-1-7 15:59 | 显示全部楼层 |阅读模式
我在ug中自己手动画了一个直线,我想对它用程序进行编辑,可是不知怎么选定直线,还望高手指教,谢谢啦!!
发表于 2009-1-7 18:25 | 显示全部楼层
我也是新手,进来跟你讨论讨论~~~! @0 Y: p- G8 |9 Q
还望多多指教!
" @; P; h7 n3 g1 W( L* Q) G* k) V我最近做的一个小程序是要选定点的,我是用了UF_UI_select_with_single_dialog()函数,从界面上选择你需要的实体就可以了!$ P5 D6 X$ r/ C+ m3 ~/ M* q0 ^
同时,如果用这个函数的话,要先定义个初始化进进程函数init_proc(),在这个函数里设定你需要选择的实体,比如:直线。。。, Y" T2 e' m5 J2 I! v
5 q  p4 a; ~1 r0 B$ |' c
我程序中用来选择点的部分程序:  B7 ]* N/ t) j; b
        // 调用选择对话框 [1/4/2009 %CREATED BY AUDREY LEE%]; d% w" j, x3 B9 K  |: m
        char message[] = "请选择点作为放置点!";
& N- J( v. I3 [        char title[] = "放置点选择";
0 h* y7 Q4 o6 O" V        tag_t m_point_object;
7 S/ H+ A' d) ~        int scope = UF_UI_SEL_SCOPE_NO_CHANGE;
. c% m" {1 \& I5 z2 r* s" G        int response = 0;
3 r1 _# |: D1 W4 N3 h; _        double cursor[3] = {0.0};4 b* O! ~2 n4 v, h0 i5 r
        tag_t view = NULL_TAG;7 n" I) u" _& a; U1 ^  e2 h$ V
        5 u) _$ L& S6 ^1 E* z
        //加锁  r1 b% |3 z: A9 t8 t6 M+ ?* |- Y
        UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);+ R8 |" X3 o2 f. S/ ~

, Z  _$ X8 `  y        UF_UI_select_with_single_dialog(message, title, scope, init_proc, NULL, &response, &m_point_object, cursor, &view);                                    
) j1 G4 `1 \5 F* B2 U/ W! L6 v
1 U& q. T1 f5 {& M6 A        //解锁
0 k/ n* b" M) K  N3 i# t        UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
0 W1 C+ f2 M1 Q' I6 p; H& m7 g7 w+ B: Q
另外:       用来定义你需要选择的实体类型的那个函数如下。。。2 |$ l7 A% a- G; g& X
//设置Selection( r. Y# I' P* z) k+ R
static int init_proc( UF_UI_selection_p_t select, void *user_data )
+ b- P. `8 T) W% ^4 B{8 ?) T) S1 P- i# h0 K/ r. Y/ h3 Q
        int  errorCode   = 0;" O7 i3 F5 B5 b0 p& U! v
        int  num_triples = 1;, l7 Y' h; J" \5 `
        UF_UI_mask_t mask_triples[] = {UF_point_type, 0, 0};
% O; c% b% F( C* O) @
6 [& {. A# g9 H9 Y        //设置可选物体的类型
& K) _3 f+ n& |        errorCode = UF_UI_set_sel_mask(select, UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
; Q2 V- R( w# D4 h5 U8 [4 p                num_triples, mask_triples);
( Z8 X! ]" Z2 q        if( errorCode == 0)# s, ^% g* _. Y2 t" \' m6 h' o0 j
        {
0 q4 z$ H; r2 _. ?                return UF_UI_SEL_SUCCESS;; D' P7 w. W9 ?
        }) R# S8 y: W" Q6 h  D6 h) T
        else
/ G" X2 w5 b4 D4 Z+ v        {
4 {1 l9 ]. f% r0 v! m* O                return UF_UI_SEL_FAILURE;9 x# e$ o8 S: `. T, q
        }( X( p$ ~3 j4 g, k& S# z# B2 I7 j
}
8 }9 [2 P+ X. I& K7 F; g, v$ o) P& [
希望有所帮助!
 楼主| 发表于 2009-1-7 20:22 | 显示全部楼层
谢谢你啊,我通过你的思路自己改了改,成功了,这问题已经困扰我好几天了,谢谢你啊!!!
发表于 2009-1-9 10:53 | 显示全部楼层
呵呵。。。/ Q( ^7 K0 n2 }, y3 P/ z: b
不客气~~~0 ?1 Z2 X3 m8 V4 D1 Q
大家共同进步么~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-10-13 23:02 , Processed in 0.059905 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表