找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 20554|回复: 12
打印 上一主题 下一主题

[求助] UISTYLER对话框选择对象问题

[复制链接]
跳转到指定楼层
1
发表于 2010-7-5 17:15:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
调出UISTYLER对话框的同时选取对象,执行完“应用”后仍然会累加(释放不了),怎么办,怎么样在执行完“应用”后可以重新选取对象,并且不会影响上一步选取的对象?
期待高手的回答,感激!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2010-7-6 16:09:41 | 只看该作者
CUI821228 发表于 2010-7-5 17:15
调出UISTYLER对话框的同时选取对象,执行完“应用”后仍然会累加(释放不了),怎么办,怎么样在执行完“应用”后可以重新选取对象,并且不会影响上一步选取的对象?
期待高手的回答,感激!


你写一段代码让它释放不就行了!
3
发表于 2010-7-6 21:46:29 | 只看该作者
UF_free()不行,UF_STYLER_free_value();也不行,我现在用的是把对象从选取列表中移除:UF_UI_remove_from_sel_list();但是达不到满意的效果,郁闷了好久了
4
发表于 2010-7-6 22:02:24 | 只看该作者
UF_UI_remove_from_sel_list哪个地方你不满意呀???说来听听........
UF_UI_remove_all_from_sel_list应该可以达到你的要求吧?????

本帖最后由 qindongjun88 于 2010-7-6 22:05 编辑
5
发表于 2010-7-6 22:53:16 | 只看该作者
  • 非常感谢楼上的热心,是这样的。
    当调出UISTYLER对话框时可以在UG窗口选取指定类型的对象,比如选一个面改颜色,我执行“应用”后,对象颜色更改,此时我再选一个面,提示区显示对象数自动累加为2个,改颜色,这个时候前面所选的那个面的颜色也跟着变了。后来我在“应用”回调的最后用了UF_UI_remove_from_sel_list();这样只要一点应用就会把选取列表中的对象移除。也基本上可以满足需要,但是觉得还没有达到满意的效果,我想要的是在执行“应用”后如果没有再次选取对象则仍然可以对上一步操作中所选的对象继续操作(记忆上次选取内容),如果又选取了对象,则只可对本次所选的对象操作。也就是第二次选取对象可以冲掉第一步所选的对象。记忆但不会累加。
  • 就好像是有一个单独的“选择”回调函数,选取对象时自动清空上次选取的对象,并记录本次所选对象。不知道我把问题说清楚了没有,期待中。
    谢谢!


本帖最后由 CUI821228 于 2010-7-6 23:00 编辑
6
发表于 2010-7-7 16:54:12 | 只看该作者
如果选择只有一个对象的话,你可以定义一个全局变量,重新选择以后替换这个全局变量的值,就能达到你想要的效果;
7
发表于 2010-7-7 22:10:00 | 只看该作者
是可选很多对象,能否支一招???
8
发表于 2010-7-7 22:58:27 | 只看该作者
这个很简单呀!!
建议你使用UF_UI_remove_all_from_sel_list而不要用UF_UI_remove_from_sel_list函数.
首先用UF_UI_ask_sel_list_count函数计算出当前所选择的对象数量........
你在调用UF_UI_remove_all_from_sel_list函数之前再一次调用UF_UI_ask_sel_list_count函数来求出对象的数量,比较两次的数量是否相同不就得出你想要的结果了吗?????
9
发表于 2010-7-8 10:03:57 | 只看该作者
非常感谢楼上的热情帮助,终于实现了我想要的效果,不过我用的不是你的方案,这个程序让我再一次深深的体会到了思路在写程序过程中的重要性。
我的方法是这样的,调用回调函数时,在进行操作之前先用UF_UI_ask_sel_object_list(select,&count1,&obj1)判断有无选取对象,如果有则对选取对象obj1操作,并在操作完之后再一次调用UF_UI_ask_sel_object_list(select,&count1,&obj2)也就是把obj1变成obj2记录下来,回调函数末尾用你说的UF_UI_remove_all_from_sel_list函数清空选择,这样在第一次判断时如果obj1的count1为空则直接对obj2操作。这样就实现了我所说的,点“应用”如果没有选取对象则对上次选取对象obj2操作,如果“应用”之前又重新选取了对象,则对本次所选的对象进行操作。
谢谢楼上几位的热心,我把我的思路和方法帖出来,希望对像我这样的初学者有些帮助,少走些弯路。在这个论坛里现在是问问题的多,回答的少。对我们这些初学者来说找些资料真不容易啊。希望大家多顶几下,不要让贴子沉下去。
最后再问题大家一个问题,UGOPEN API里怎么样通过种子面和边界面来获得对象?谢谢!!
10
发表于 2010-7-8 11:35:04 | 只看该作者
楼上问题主要是判断条件的定义,和循环嵌套的写法,其中牵扯到运行效率的问题与数据结构有关,还是很复杂的,期待啊!!牛人!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-25 14:06 , Processed in 0.032815 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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