今天工作重点:
1. 根据特征列表,举例对Loop特征的生成过程模拟,确定生成过程的启发式规则;
2. 对特征列表进行修改和补充,提出一些问题。
一些启发式规则的想法:
1. 对方向的划分,主要是源自于绘制者的意图习惯:#1对于大小比较对等,绘制正面方向容易遮挡整体架构的,用户倾向于绘制侧面,对应到草图上是相邻关系居多;#2对于大小差异较大,从正面方向即可包含大多数特征的,用户倾向于绘制正面,对应到草图上是包含关系居多。
2. 对特征列表,每个Loop不仅给出了特征Loop的情况及附属Loop(这里不一定叫做附属Loop,可以叫做依赖Loop)的情况,在确定特征的情况下,如果上下文存在自己依赖的Loop,则依赖关系优先考虑。
3. 负特征被某个Loop A包含,则Loop A是正特征的概率比较大。
4. 有一些倒角圆角在模型库里面是直接绘制拉伸切除的,那么在模型库提取特征时候,做一些启发式规则去掉这些边角的小变化,还原到原来的形状。而在Sketch的时候,则是不考虑圆角倒角的。
5. 特征列表中,某个Loop的某个方向,不同时包含Ext和Rev或者Cut和RevCut,考虑模型可以用Ext或Cut生成的,那么就不采用Rev和RevCut。
#特征列表只给出在工程领域有意义的特征。
6. 对虚Loop的处理:
# 侧面方向的虚矩形,一般为孔Cut,正面方向的虚矩形,可能为矩形Cut或孔Cut,这个时候就要判 断是否靠近边缘,如果贴合边缘,则为孔Cut的可能性比较大,反之则为矩形Cut。【从边缘区分,但是侧面方向,有很多相邻关系,识别边缘较为复杂】
# 区分为盲孔、通孔
# 对于每个虚Loop,需要判断给出该Loop是否被哪个最大的Loop全包含,若未全包含,则给出跟哪些Loop相交,是否穿过相交Loop的边缘等等信息。
1)在包含类型当中,非边缘的虚Loop,一般是该模型背面的Cut,边缘的虚矩形,则最大可能是侧面打孔;
2)在相邻类型当中,虚矩形是孔的可能性最大了。虚Loop可能跟很多个直线相邻的Loop相交,并不仅仅包含在某个Loop里面,这个时候通孔的可能性很大,反之,若仅仅被直线相邻的其中某个Loop包含,那么是盲孔的可能性很大;
7. 有一些Loop在某个方向上无法对应到单个特征,如“直角梯形”,在上下方向中无法生成唯一的特征,实际上,在工程领域中,它是拉伸后再Cut的。
8. 有些半遮挡关系,如果用户不知道它的Shape,则不要绘制虚线了,因为会误导检索结果,有的实际Shape往往不是从某一方向看的那样简单。
网友评论