青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2009-1-7 15:59 | 显示全部楼层 |阅读模式
我在ug中自己手动画了一个直线,我想对它用程序进行编辑,可是不知怎么选定直线,还望高手指教,谢谢啦!!
发表于 2009-1-7 18:25 | 显示全部楼层
我也是新手,进来跟你讨论讨论~~~
- S2 ?* o* t( v6 R/ }' u还望多多指教!
) D& j# R; `8 W4 M我最近做的一个小程序是要选定点的,我是用了UF_UI_select_with_single_dialog()函数,从界面上选择你需要的实体就可以了!8 \6 X) j; ?7 l& p# @$ M
同时,如果用这个函数的话,要先定义个初始化进进程函数init_proc(),在这个函数里设定你需要选择的实体,比如:直线。。。
6 J( X  B, J) K. k9 X
( J  _9 `0 Z! |7 y5 Q2 r3 f% x我程序中用来选择点的部分程序:
) t" \: x. a9 L        // 调用选择对话框 [1/4/2009 %CREATED BY AUDREY LEE%]
1 Q; p- c$ \8 H' g        char message[] = "请选择点作为放置点!";% W( I/ b9 g. N
        char title[] = "放置点选择";# q+ O. v/ A2 Y5 ^2 `, O
        tag_t m_point_object;- `+ `, P& h  Z3 Y: h/ ^9 ~
        int scope = UF_UI_SEL_SCOPE_NO_CHANGE;
" p: j8 W- n5 q0 \# w        int response = 0;
( S# C- x9 A; o3 p        double cursor[3] = {0.0};
4 g8 v* u/ S' G( _9 P& e        tag_t view = NULL_TAG;
' m1 ]/ Y9 A1 _" o       
3 U3 e0 s) v4 g8 L9 @2 y        //加锁# n# o6 W* S8 g/ |, w6 w. }
        UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);
2 w( y& u; z3 Y( y
8 Z6 C: a& x" ]' O9 J0 Y        UF_UI_select_with_single_dialog(message, title, scope, init_proc, NULL, &response, &m_point_object, cursor, &view);                                    8 h* `  L" J, `; h/ i/ ~

1 V* P  q/ c6 E3 c- j$ I        //解锁
+ {# {7 |8 R# W  W  B2 q        UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);9 S9 ]/ Y: O& b7 s
6 N! Q* b  A' P( v7 p
另外:       用来定义你需要选择的实体类型的那个函数如下。。。
% G7 \, H! C5 R. D6 t//设置Selection
$ u) D8 e& c2 N# p$ I$ e) `! Z+ Rstatic int init_proc( UF_UI_selection_p_t select, void *user_data )! E; L/ B4 a" [9 u* H9 S1 C% c
{$ F$ W$ m1 T8 z5 S+ K5 H+ k' p3 m
        int  errorCode   = 0;
8 v! @' {# T& M% [        int  num_triples = 1;1 |7 W" y  v' h: x1 U
        UF_UI_mask_t mask_triples[] = {UF_point_type, 0, 0};
3 h, r) t. x/ V- W$ g
: ~, x  L8 n5 e( }9 S        //设置可选物体的类型
! l( M* Z) g; H! _% F        errorCode = UF_UI_set_sel_mask(select, UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,5 _1 ^/ d$ u* i2 n
                num_triples, mask_triples);
# ?% }0 j; v! `        if( errorCode == 0); e9 M. Z$ P/ ^2 ]3 T7 u9 R1 \+ o
        {% [& n3 N# R+ o2 C
                return UF_UI_SEL_SUCCESS;
0 H4 [% c5 I' H* b        }
( U4 f, Y8 O' n        else* t3 L) ^! q! h' X6 s# W5 k1 W2 C1 P) q
        {
' e( p" i) A6 \- m" a                return UF_UI_SEL_FAILURE;+ j1 z* t: M, w4 I
        }
- m5 V1 c) W& S% ^3 N}4 ?7 }5 \9 v. o1 l) Y: j
0 m# z( s# j& z, w
希望有所帮助!
 楼主| 发表于 2009-1-7 20:22 | 显示全部楼层
谢谢你啊,我通过你的思路自己改了改,成功了,这问题已经困扰我好几天了,谢谢你啊!!!
发表于 2009-1-9 10:53 | 显示全部楼层
呵呵。。。; c4 P7 W# Q: H) @$ B) v
不客气~~~: E$ N$ p+ I$ t  o* p
大家共同进步么~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-23 10:41 , Processed in 0.060356 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

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