做镜像时,你可以对特征镜像,也可对一个实体镜像。API的MirrorFeature对象的属性MirrorOfBody告知是否实体镜像。而对实体镜像,有两种场景,1)要么新生成的特征挂在原实体上,2)要么创建一个新实体。对于场景1, MirrorFeature.SurfaceBody返回原实体,而对于场景2,没有直接的API,但可通过对原实体面进行定位来获知原实体,因为每个镜像特征面和原实体面都有个位置变换关系,可以用LocateUsingPoint得到原实体面,从而得知是哪个实体。
以下VBA代码假定选择了一个镜像特征,它包括了以上两个场景的处理。
Sub FindOriginalBody()
Dim oPart As PartDocument
Set oPart = ThisApplication.ActiveDocument
Dim oPdef As PartComponentDefinition
Set oPdef = oPart.ComponentDefinition
Dim oMirrorF As MirrorFeature
Set oMirrorF = ThisApplication.ActiveDocument.SelectSet(1)
Dim oFPE As Fe