宏是否有可能在移除操作后生成边缘圆角(仅适用于移除的孔)。我尝试了很多次使用 AI 编码,但没有得到任何解决方案。我唯一做的事情就是录制一个宏。(但这个宏使用特定的边缘和名称)它不适用于不同的部件或操作名称。
Sub CATMain()
Dim partDocument1 As partDocument
Set partDocument1 = CATIA.activeDocument
Dim part1 As part
Set part1 = partDocument1.part
Dim shapeFactory1 As ShapeFactory
Set shapeFactory1 = part1.ShapeFactory
Dim reference1 As reference
Set reference1 = part1.CreateReferenceFromName("")
Dim constRadEdgeFillet1 As ConstRadEdgeFillet
Set constRadEdgeFillet1 = shapeFactory1.AddNewSolidEdgeFilletWithConstantRadius(reference1, catTangencyFilletEdgePropagation, 3#)
Dim bodies1 As bodies
Set bodies1 = part1.bodies
Dim body1 As body
Set body1 = bodies1.Item("PartBody")
Dim shapes1 As Shapes
Set shapes1 = body1.Shapes
Dim remove1 As Remove
Set remove1 = shapes1.Item("Remove.1")
Dim reference2 As reference
Set reference2 = part1.CreateReferenceFromBRepName("TgtIntersEdge:(GeneratedEdges;MfIE_R20SP4HFAA;TgtPropagationFillet;FirstOperands:(Remove.1);SecondOperands:();InitEdges:(REdge:(Edge:(Face:(Brp:(Solid.6;%21);None:();Cf11:());Face:(Brp:(Solid.5;%2);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)))", remove1)
constRadEdgeFillet1.AddObjectToFillet reference2
constRadEdgeFillet1.EdgePropagation = catTangencyFilletEdgePropagation
Dim reference3 As reference
Set reference3 = part1.CreateReferenceFromBRepName("TgtIntersEdge:(GeneratedEdges;MfIE_R20SP4HFAA;TgtPropagationFillet;FirstOperands:(Remove.1);SecondOperands:();InitEdges:(REdge:(Edge:(Face:(Brp:(Solid.6;%18);None:();Cf11:());Face:(Brp:(Solid.5;%2);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)))", remove1)
constRadEdgeFillet1.AddObjectToFillet reference3
constRadEdgeFillet1.EdgePropagation = catTangencyFilletEdgePropagation
Dim reference4 As reference
Set reference4 = part1.CreateReferenceFromBRepName("TgtIntersEdge:(GeneratedEdges;MfIE_R20SP4HFAA;TgtPropagationFillet;FirstOperands:(Remove.1);SecondOperands:();InitEdges:(REdge:(Edge:(Face:(Brp:(Solid.5;%3);None:();Cf11:());Face:(Brp:(Solid.6;%24);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)))", remove1)
constRadEdgeFillet1.AddObjectToFillet reference4
constRadEdgeFillet1.EdgePropagation = catTangencyFilletEdgePropagation
Dim reference5 As reference
Set reference5 = part1.CreateReferenceFromBRepName("TgtIntersEdge:(GeneratedEdges;MfIE_R20SP4HFAA;TgtPropagationFillet;FirstOperands:(Remove.1);SecondOperands:();InitEdges:(REdge:(Edge:(Face:(Brp:(Solid.5;%3);None:();Cf11:());Face:(Brp:(Solid.6;%27);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)))", remove1)
constRadEdgeFillet1.AddObjectToFillet reference5
constRadEdgeFillet1.EdgePropagation = catTangencyFilletEdgePropagation
part1.UpdateObject constRadEdgeFillet1
part1.Update
End Sub
您可以使用选择 -> 搜索来获取边,通过选择布尔运算并在选定的元素中搜索边。
下面是一个例子:
顺便说一句:这可以使用圆角功能中的传播模式“相交”手动完成,而无需选择边。