青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2009-1-7 15:59 | 显示全部楼层 |阅读模式
我在ug中自己手动画了一个直线,我想对它用程序进行编辑,可是不知怎么选定直线,还望高手指教,谢谢啦!!
发表于 2009-1-7 18:25 | 显示全部楼层
我也是新手,进来跟你讨论讨论~~~
: ]8 g* L# @; V6 B还望多多指教!
7 g1 y7 m, A  ]我最近做的一个小程序是要选定点的,我是用了UF_UI_select_with_single_dialog()函数,从界面上选择你需要的实体就可以了!1 C6 H# w/ l! K  ]* ~8 c
同时,如果用这个函数的话,要先定义个初始化进进程函数init_proc(),在这个函数里设定你需要选择的实体,比如:直线。。。
9 I2 Y+ n# t& k# `# h. h6 A5 {' z  D. g" [! x
我程序中用来选择点的部分程序:
* Y/ C) D7 H9 k. S        // 调用选择对话框 [1/4/2009 %CREATED BY AUDREY LEE%]
  \" J( G7 }$ @" b" y; h4 u) k        char message[] = "请选择点作为放置点!";, X, R  x3 ~& o% j9 G
        char title[] = "放置点选择";
' ]1 g; e2 k7 x2 l" g0 r        tag_t m_point_object;" ]& S5 `- K0 y7 V+ ^; N5 c
        int scope = UF_UI_SEL_SCOPE_NO_CHANGE;" b. a9 F. z. ?" n2 |. D% t/ [8 }/ F$ I
        int response = 0;
1 H/ j8 S* i- k6 Y        double cursor[3] = {0.0};
# f7 q+ D5 Q* h1 w: Q& Y        tag_t view = NULL_TAG;
  C6 M# E- ]( Q/ A       
% r0 z. B) h, c" x        //加锁
! n2 R: K% |, x6 a+ c        UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);; `/ `/ }+ s* |# f9 j
. [% [$ v& s0 ~9 L6 m' _
        UF_UI_select_with_single_dialog(message, title, scope, init_proc, NULL, &response, &m_point_object, cursor, &view);                                    
& m$ ^4 t& N" z) v- z  }% B) H0 o- \
        //解锁
& r% b. I2 k/ J3 M+ D) I' C        UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
1 }; w+ `3 b) t! Q
" g  E1 L( E. R6 y另外:       用来定义你需要选择的实体类型的那个函数如下。。。
7 m/ |2 }. {- L' }! F) O//设置Selection6 d& n( i( t' P  b) M! {
static int init_proc( UF_UI_selection_p_t select, void *user_data )
$ i8 p  l9 L8 |9 Y% Y{% i* H" g3 x( s4 ^7 m% S
        int  errorCode   = 0;9 q# r( \# e/ m
        int  num_triples = 1;
+ E/ b/ p' @" }7 z        UF_UI_mask_t mask_triples[] = {UF_point_type, 0, 0};7 ?9 S8 |' d( t0 H3 M0 f

/ a; r, P% ~" D: \/ J% `        //设置可选物体的类型3 b) k2 f  Y5 Q
        errorCode = UF_UI_set_sel_mask(select, UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
5 T% u' B6 d5 [$ B+ t; x9 b8 F                num_triples, mask_triples);
: t+ D" G# p0 P; ]1 i3 |        if( errorCode == 0)
, o: z1 }% @( Q* Q4 ~        {
3 ?7 ^$ ?' S: S' f1 d* b                return UF_UI_SEL_SUCCESS;5 z3 d. b& K# W5 ~+ R
        }* t' U. ^! [  D/ f1 a, I* j5 m$ B
        else
: J8 H) ?; I  F$ S* u! E        {
+ ]9 T9 e2 U, J3 `$ Y3 c                return UF_UI_SEL_FAILURE;
2 I6 ~" `  Y% Z  c/ q8 ]        }
- H2 D# z9 f0 n8 t& Z3 o$ C}
5 y0 }# ?) @' p+ G9 g4 g; \, v0 _; H( ]- d- Y2 R1 f: m
希望有所帮助!
 楼主| 发表于 2009-1-7 20:22 | 显示全部楼层
谢谢你啊,我通过你的思路自己改了改,成功了,这问题已经困扰我好几天了,谢谢你啊!!!
发表于 2009-1-9 10:53 | 显示全部楼层
呵呵。。。
, r8 F( Y4 i  w2 M不客气~~~4 C6 ?9 c3 N, b. S$ s# F
大家共同进步么~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-27 21:27 , Processed in 0.053559 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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