existe alguma possibilidade de uma macro gerar filete de aresta após a operação de remoção (apenas para furos removidos)? Tentei muito usando codificação de IA, mas não obtive nenhuma solução. A única coisa que fiz foi gravar uma macro. (mas essa macro usa arestas e nomes específicos) que não funcionam para diferentes peças ou nomes de operação.
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
Você pode obter as arestas usando seleção -> pesquisa, selecionando a operação booleana e pesquisando as arestas no elemento selecionado.
Aqui está um exemplo:
A propósito: isso pode ser feito manualmente usando o modo de propagação "intersect" na função filete sem selecionar arestas.