iCAx开思网
标题:
用二次开发,怎样实现这个设想,高手指点下.
[打印本页]
作者:
cjthw
时间:
2008-8-2 17:44
标题:
用二次开发,怎样实现这个设想,高手指点下.
高手指点下. 用二次开发,怎样实现这个设想: 1. 用proe打开某个目录下的part; 2.搜索part中的孔特征; 3,获得孔特征的参数,计算其长径比 4 加亮显示长径比超过10的孔特征 5重复2-4步,搜索下一个孔特征,直到将part中所有长径比超过10的孔特征全部加亮显示出来 各位高手可否指点一下,最好能把函数代码贴出来,
作者:
DavidJiang
时间:
2008-8-6 21:13
这个做起来不是很难,首先你需要访问所有孔特征,然后取得孔的长度和直径尺寸,计算其比值,再将其高亮即可。
做这个东西需要一定的时间,估计没人会给完整的代码,还是楼主自动动手吧。
作者:
cjthw
时间:
2008-8-7 07:32
二楼的兄弟,能不能帮忙说明一下ProSolidFeatVisit函数如何使用?
作者:
DavidJiang
时间:
2008-8-7 17:16
ProSolidFeatVisit (
ProSolid p_handle
/* (In)
The solid handle.
*/
ProFeatureVisitAction visit_action
/* (In)
The visiting function. If it returns anything other than PRO_TK_NO_ERROR, visiting stops.
*/
ProFeatureFilterAction filter_action
/* (In)
The filter function. If NULL, all features in the specified solid are visited using the action function.
*/
ProAppData app_data
/* (In)
The application data passed to the filter and visiting functions.
*/
这个函数关键是动作函数的设计,在动作函数中你可以使用当前访问得到的特征句柄,有了特征句柄就可以做你想做的。
如果还不会建议你找李世国的书看看或者留下联系方式。
[
本帖最后由 jh 于 2008-8-9 15:37 编辑
]
作者:
sgzcw
时间:
2008-8-9 11:23
自动访问孔特征?
不好有时候,有一些孔,是CUT出来的,或是用旋转面做出来的,
这些地方,都不是孔命令做的,而且说实话,很多时候,
大家搞产品结构时,都是为了方便修改或是方便再生,用的都是面+面+面,
我个人就不喜欢直接用实体做东西,修改不便啊,为了方便更改,都是用面做的,
这个时候,访问这个面做出来的孔,不知道,怎样方便啊?
作者:
cjthw
时间:
2008-8-10 19:34
谢谢jh,我已经成功实现了对模型的所有特征的遍历,不过还想请教一下,在ProFeatureVisitAction函数中,(ProFeature* p_feature)是不是就是得到每次访问的特征的句柄?我应该在访问函数中使用哪一个函数得到孔特征的句柄,并得到孔特征的尺寸属性?
作者:
DavidJiang
时间:
2008-8-11 08:50
ProFeature* p_feature就是每次访问得到的特征句柄,你需要通过特征类型来判断是否为孔特征。当然这个动作也可以在过滤函数中完成,这样你在访问动作函数中取得都是孔特征啦。
作者:
cjthw
时间:
2008-8-16 18:29
多谢jh,我已经成功的实现了目标,把part中所有长径比超过10的孔特征全部加亮显示出来了。
不过我还有个疑问,我现在实现的孔其深度都是通过输深度尺寸都来创建的,如果孔特征的长度用的是穿过所有,我怎么获得这个孔的尺寸类型是穿过所有或者是穿过下一个或者是按深度尺寸?应该用哪一个函数获知这些信息?如果我还要获得孔的安放基准面ID以及其他一些属性的话,应该怎么做呢?希望能得到JH以及各位高手的指点
作者:
DavidJiang
时间:
2008-8-16 23:03
如果想要判断是否孔为穿透型,有个简单的办法,通过判断孔特征尺寸数量就可以。更详细的信息需要通过解析特征树来完成,这个比较复杂。
作者:
cjthw
时间:
2008-8-17 14:18
用特征树的话,是不是我要访问某一特征的具体某个属性的话,先要得到具体元素的特征路径,然后访问特征,得到他的值?某个元素的特征路径怎么得到?
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3