IMdRemoveFaces

Use this interface to Remove faces and extend adjacent faces to fill the gap. This function can be used to: Automatically select all adjacent smooth faces, remove round corners, extend the adjacent faces and create sharp corners instead, remove holes, heal faces that were previously split, extend adjacent faces, and add cap faces.

Namespace

interop.CimMdlrAPI

Compatibility

Cimatron 2024 or later

Properties

Get, Set

Entities

interop.CimMdlrAPI.ICimEntityList

Get, Set

MergeAdjacentFaces

interop.CimMdlrAPI.MergeAdjacentFaces

Get, Set

CapRoundFaces

interop.CimMdlrAPI.CapRoundFaces

Get, Set

RestoreOriginalAndExtend

interop.CimMdlrAPI.RestoreOriginalAndExtend

Methods

None 

Events

None 

Remarks

This interface is used in the Remove & Extend function in the Cimatron UI.

Example

Example 1-Remove Faces And MergeExample 1-Remove Faces And Merge
// create Cimatron App Access object
interop.CimAppAccess.AppAccess aAppAccess = new interop.CimAppAccess.AppAccess();
//Get application object from App access
interop.CimatronE.IApplication CimApp = (interop.CimatronE.IApplication)aAppAccess.GetApplication();
// Get active document from application
if (CimApp != null)
{
interop.CimatronE.ICimDocument aDoc = CimApp.GetActiveDoc();
if (aDoc != null)
{
// Set model container
interop.CimMdlrAPI.IModelContainer aModelCont = (interop.CimMdlrAPI.IModelContainer)aDoc;
// Create the Sketcher procedure depended on the type of the active document.
// Get model type (can be Part/Assembly/NC)
if (aDoc.Type == interop.CimatronE.DocumentEnumType.cmPart)
{
// If active document is part then get the MdlrModel from document
interop.CimMdlrAPI.MdlrModel aMdlrModel =
(interop.CimMdlrAPI.MdlrModel)aModelCont.Model;
interop.CimMdlrAPI.IModel aIModel = (interop.CimMdlrAPI.IModel)aModelCont.Model;
//Create Remove Faces type procedure
interop.CimMdlrAPI.MdRemoveFaces aMdRemoveFacesProcedure =
(interop.CimMdlrAPI.MdRemoveFaces)aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmRemoveFacesProcedure);
interop.CimMdlrAPI.IMdRemoveFaces aIMdRemoveFaces = (interop.CimMdlrAPI.IMdRemoveFaces)aMdRemoveFacesProcedure;
//Get All Round Faces with PID
interop.CimMdlrAPI.ICimEntity aFirstSelectedEntity = (interop.CimMdlrAPI.ICimEntity)aIModel.GetEntityById(172, aIModel);
interop.CimMdlrAPI.ICimEntity aSecondSelectedEntity = (interop.CimMdlrAPI.ICimEntity)aIModel.GetEntityById(177, aIModel);
interop.CimMdlrAPI.ICimEntity aThirdSelectedEntity = (interop.CimMdlrAPI.ICimEntity)aIModel.GetEntityById(178, aIModel);
interop.CimMdlrAPI.ICimEntity aFourthSelectedEntity = (interop.CimMdlrAPI.ICimEntity)aIModel.GetEntityById(163, aIModel);
interop.CimMdlrAPI.ICimEntity aFifthSelectedEntity = (interop.CimMdlrAPI.ICimEntity)aIModel.GetEntityById(176, aIModel);
interop.CimMdlrAPI.ICimEntity aSixthSelectedEntity = (interop.CimMdlrAPI.ICimEntity)aIModel.GetEntityById(175, aIModel);
interop.CimMdlrAPI.ICimEntity aSeventhSelectedEntity = (interop.CimMdlrAPI.ICimEntity)aIModel.GetEntityById(169, aIModel);
interop.CimMdlrAPI.ICimEntity aEighthSelectedEntity = (interop.CimMdlrAPI.ICimEntity)aIModel.GetEntityById(166, aIModel);
interop.CimMdlrAPI.ICimEntityList aSelectedEntities = (interop.CimMdlrAPI.ICimEntityList)new interop.CimBaseAPI.CimEntityList();
aSelectedEntities.Add(aFirstSelectedEntity);
aSelectedEntities.Add(aSecondSelectedEntity);
aSelectedEntities.Add(aThirdSelectedEntity);
aSelectedEntities.Add(aFourthSelectedEntity);
aSelectedEntities.Add(aFifthSelectedEntity);
aSelectedEntities.Add(aSixthSelectedEntity);
aSelectedEntities.Add(aSeventhSelectedEntity);
aSelectedEntities.Add(aEighthSelectedEntity);
//Set/assign required properties and methods
aIMdRemoveFaces.Entities = aSelectedEntities;
aIMdRemoveFaces.MergeAdjacentFaces = interop.CimMdlrAPI.MergeAdjacentFaces.cmMergeAdjacentFacesOn;
aIMdRemoveFaces.CapRoundFaces = interop.CimMdlrAPI.CapRoundFaces.cmCapRoundFacessOn;
aMdRemoveFacesProcedure.Execute();
}
}
}

Example 2-Restore Original And ExtendExample 2-Restore Original And Extend
// create Cimatron App Access object
interop.CimAppAccess.AppAccess aAppAccess = new interop.CimAppAccess.AppAccess();
//Get application object from App access
interop.CimatronE.IApplication CimApp = (interop.CimatronE.IApplication)aAppAccess.GetApplication();
// Get active document from application
if (CimApp != null)
{
interop.CimatronE.ICimDocument aDoc = CimApp.GetActiveDoc();
if (aDoc != null)
{
// Set model container
interop.CimMdlrAPI.IModelContainer aModelCont = (interop.CimMdlrAPI.IModelContainer)aDoc;
// Create the Sketcher procedure depended on the type of the active document.
// Get model type (can be Part/Assembly/NC)
if (aDoc.Type == interop.CimatronE.DocumentEnumType.cmPart)
{
// If active document is part then get the MdlrModel from document
interop.CimMdlrAPI.MdlrModel aMdlrModel =
(interop.CimMdlrAPI.MdlrModel)aModelCont.Model;
interop.CimMdlrAPI.IModel aIModel = (interop.CimMdlrAPI.IModel)aModelCont.Model;
//Create Remove Faces type procedure
interop.CimMdlrAPI.MdRemoveFaces aMdRemoveFacesProcedure =
(interop.CimMdlrAPI.MdRemoveFaces)aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmRemoveFacesProcedure);
interop.CimMdlrAPI.IMdRemoveFaces aIMdRemoveFaces = (interop.CimMdlrAPI.IMdRemoveFaces)aMdRemoveFacesProcedure;
//Get Round Face Entity
interop.CimMdlrAPI.ICimEntity aFirstSelectedEntity = (interop.CimMdlrAPI.ICimEntity)aIModel.GetEntityById(183, aIModel);
interop.CimMdlrAPI.ICimEntityList aSelectedEntities = (interop.CimMdlrAPI.ICimEntityList)new interop.CimBaseAPI.CimEntityList();
aSelectedEntities.Add(aFirstSelectedEntity);
//Set/assign required properties and methods
aIMdRemoveFaces.Entities = aSelectedEntities;
aIMdRemoveFaces.MergeAdjacentFaces = interop.CimMdlrAPI.MergeAdjacentFaces.cmMergeAdjacentFacesOn;
aIMdRemoveFaces.CapRoundFaces = interop.CimMdlrAPI.CapRoundFaces.cmCapRoundFacessOn;
aIMdRemoveFaces.RestoreOriginalAndExtend = interop.CimMdlrAPI.RestoreOriginalAndExtend.cmExtendFace;
aMdRemoveFacesProcedure.Execute();
}
}
}

Example 1-Remove Faces And MergeExample 1-Remove Faces And Merge
import clr
#Adding references of required interop dlls
clr.AddReference("interop.CimAppAccess")
clr.AddReference("interop.CimatronE")
clr.AddReference("interop.CimServicesAPI")
clr.AddReference("interop.CimBaseAPI")
clr.AddReference("interop.CimMdlrAPI")
#importing modules from interop dlls
import interop.CimAppAccess
import interop.CimatronE
import interop.CimServicesAPI
import interop.CimBaseAPI
import interop.CimMdlrAPI
#Getting AppAccess Object
aCimAppAccess = interop.CimAppAccess.AppAccess()
#Getting instance of CimatronE Application
aCimApp = None
while (aCimApp == None) :
aCimApp = (interop.CimatronE.IApplication)(aCimAppAccess.GetApplication())
aDoc = (interop.CimBaseAPI.ICimDocument)(aCimApp.GetActiveDoc())
aModelCont = (interop.CimMdlrAPI.IModelContainer)(aDoc)
aMdlrModel = (interop.CimMdlrAPI.MdlrModel)(aModelCont.Model)
#Create MdRemoveFaces procedure on Modeler Model
aMdRemoveFacesProcedure = (interop.CimMdlrAPI.MdRemoveFaces)(aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmRemoveFacesProcedure))
aIMdRemoveFaces = (interop.CimMdlrAPI.IMdRemoveFaces)(aMdRemoveFacesProcedure)
aIModel = (interop.CimMdlrAPI.IModel)(aModelCont.Model)
#Get All Round Faces with PID
aFirstSelectedEntity = aIModel.GetEntityById(172, aIModel)
aSecondSelectedEntity = aIModel.GetEntityById(177, aIModel)
aThirdSelectedEntity = aIModel.GetEntityById(178, aIModel)
aFourthSelectedEntity = aIModel.GetEntityById(163, aIModel)
aFifthSelectedEntity = aIModel.GetEntityById(176, aIModel)
aSixthSelectedEntity = aIModel.GetEntityById(175, aIModel)
aSeventhSelectedEntity = aIModel.GetEntityById(169, aIModel)
aEighthSelectedEntity = aIModel.GetEntityById(166, aIModel)
aSelectedEntities = interop.CimMdlrAPI.ICimEntityList(interop.CimBaseAPI.CimEntityList())
aSelectedEntities.Add(aFirstSelectedEntity)
aSelectedEntities.Add(aSecondSelectedEntity)
aSelectedEntities.Add(aThirdSelectedEntity)
aSelectedEntities.Add(aFourthSelectedEntity)
aSelectedEntities.Add(aFifthSelectedEntity)
aSelectedEntities.Add(aSixthSelectedEntity)
aSelectedEntities.Add(aSeventhSelectedEntity)
aSelectedEntities.Add(aEighthSelectedEntity)
#Set / assign required properties and methods
aIMdRemoveFaces.Entities = aSelectedEntities
aIMdRemoveFaces.MergeAdjacentFaces = interop.CimMdlrAPI.MergeAdjacentFaces.cmMergeAdjacentFacesOn
aIMdRemoveFaces.CapRoundFaces = interop.CimMdlrAPI.CapRoundFaces.cmCapRoundFacessOn
aMdRemoveFacesProcedure.Execute()
 

Example 2-Restore Original And ExtendExample 2-Restore Original And Extend
import clr
#Adding references of required interop dlls
clr.AddReference("interop.CimAppAccess")
clr.AddReference("interop.CimatronE")
clr.AddReference("interop.CimServicesAPI")
clr.AddReference("interop.CimBaseAPI")
clr.AddReference("interop.CimMdlrAPI")
#importing modules from interop dlls
import interop.CimAppAccess
import interop.CimatronE
import interop.CimServicesAPI
import interop.CimBaseAPI
import interop.CimMdlrAPI
#Getting AppAccess Object
aCimAppAccess = interop.CimAppAccess.AppAccess()
#Getting instance of CimatronE Application
aCimApp = None
while (aCimApp == None) :
aCimApp = (interop.CimatronE.IApplication)(aCimAppAccess.GetApplication())
aDoc = (interop.CimBaseAPI.ICimDocument)(aCimApp.GetActiveDoc())
aModelCont = (interop.CimMdlrAPI.IModelContainer)(aDoc)
aMdlrModel = (interop.CimMdlrAPI.MdlrModel)(aModelCont.Model)
#Create MdRemoveFaces procedure on Modeler Model
aMdRemoveFacesProcedure = (interop.CimMdlrAPI.MdRemoveFaces)(aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmRemoveFacesProcedure))
aIMdRemoveFaces = (interop.CimMdlrAPI.IMdRemoveFaces)(aMdRemoveFacesProcedure)
aIModel = (interop.CimMdlrAPI.IModel)(aModelCont.Model)
#Get Round Face Entity
aFirstSelectedEntity = aIModel.GetEntityById(172, aIModel)
aSelectedEntities = interop.CimMdlrAPI.ICimEntityList(interop.CimBaseAPI.CimEntityList())
aSelectedEntities.Add(aFirstSelectedEntity)
#Set / assign required properties and methods
aIMdRemoveFaces.Entities = aSelectedEntities
aIMdRemoveFaces.MergeAdjacentFaces = interop.CimMdlrAPI.MergeAdjacentFaces.cmMergeAdjacentFacesOn
aIMdRemoveFaces.CapRoundFaces = interop.CimMdlrAPI.CapRoundFaces.cmCapRoundFacessOn
aIMdRemoveFaces.RestoreOriginalAndExtend = interop.CimMdlrAPI.RestoreOriginalAndExtend.cmExtendFace
aMdRemoveFacesProcedure.Execute()