IMd2DBounding

This class represents a modeler procedure for 2D Bounding in Cimatron. 2D Bound will always be created in the XY plane of the active UCS.

Namespace

interop.CimMdlrAPI

Compatibility

Cimatron 2026 or later

Properties

Get, Set

BoundingType

interop.CimMdlrAPI.

Get, Set

BoundingMode

interop.CimMdlrAPI.BoundingMode

Get, Set

WireCreationMode

interop.CimMdlrAPI.WireCreationMode

Get, Set

Offset

double

Get, Set

CornerRadius

double

Get, Set

ApproximateTolerance

double

Get, Set

Angle

double

Get, Set

Width

double

Get, Set

Height

double

Get, Set

CircleRadius

double

Get, Set

Entities

interop.CimMdlrAPI.ICimEntityList

Methods

None    
     
     
     
     
     
     
     
     
     
     

Events

None 

Remarks

None

Example

Example 1-Create bounding Box with Auto ModeExample 1-Create bounding Box with Auto Mode

// PREREQUISITE: Note PIDs of the entities around which you want to create the bounding box
//Get Active Cimatron Application
interop.CimAppAccess.AppAccess aAppAccess = new interop.CimAppAccess.AppAccess();
interop.CimatronE.IApplication CimApp = (interop.CimatronE.IApplication)aAppAccess.GetActiveApplication();
//Get Active Cimatron Document
interop.CimBaseAPI.ICimDocument aDoc = (interop.CimBaseAPI.ICimDocument)CimApp.GetActiveDoc();
interop.CimMdlrAPI.IModelContainer aContainer = (interop.CimMdlrAPI.IModelContainer)aDoc;
interop.CimMdlrAPI.IMdlrModel aMdlrModel = (interop.CimMdlrAPI.IMdlrModel)aContainer.Model;
interop.CimBaseAPI.IModel aModel = (interop.CimBaseAPI.IModel)aMdlrModel;
//Create a 2DBounding Procedure
interop.CimMdlrAPI.IMdProcedure aProc = aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cm2DBoundingProcedure);
interop.CimMdlrAPI.IMd2DBounding aIMd2DBounding = (interop.CimMdlrAPI.IMd2DBounding)aProc;
//Set Parameters to the procedure
interop.CimBaseAPI.ICimEntity aEnt = (interop.CimBaseAPI.ICimEntity)aModel.GetEntityById(11, aModel);
interop.CimBaseAPI.ICimEntity aEnt1 = (interop.CimBaseAPI.ICimEntity)aModel.GetEntityById(53, aModel);
interop.CimBaseAPI.ICimEntityList aEntList = new interop.CimBaseAPI.CimEntityList();
aEntList.Add(aEnt);
aEntList.Add(aEnt1);
aIMd2DBounding.Entities = (interop.CimMdlrAPI.ICimEntityList)aEntList;
aIMd2DBounding.BoundingType = interop.CimMdlrAPI.BoundingType.cmBox;
aIMd2DBounding.BoundingMode = interop.CimMdlrAPI.BoundingMode.cmAuto;
aIMd2DBounding.WireCreationMode = interop.CimMdlrAPI.WireCreationMode.cmWireWithUCS;
aIMd2DBounding.Offset = 10;
//Execute procedure
aProc.Execute();

Example 2-Create bounding box by giving width, height and angleExample 2-Create bounding box by giving width, height and angle

// PREREQUISITE: Note PIDs of the entities around which you want to create the bounding box
//Get Active Cimatron Application
interop.CimAppAccess.AppAccess aAppAccess = new interop.CimAppAccess.AppAccess();
interop.CimatronE.IApplication CimApp = (interop.CimatronE.IApplication)aAppAccess.GetActiveApplication();
//Get Active Cimatron Document
interop.CimBaseAPI.ICimDocument aDoc = (interop.CimBaseAPI.ICimDocument)CimApp.GetActiveDoc();
interop.CimMdlrAPI.IModelContainer aContainer = (interop.CimMdlrAPI.IModelContainer)aDoc;
interop.CimMdlrAPI.IMdlrModel aMdlrModel = (interop.CimMdlrAPI.IMdlrModel)aContainer.Model;
interop.CimBaseAPI.IModel aModel = (interop.CimBaseAPI.IModel)aMdlrModel;
//Create a 2DBounding Procedure
interop.CimMdlrAPI.IMdProcedure aProc = aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cm2DBoundingProcedure);
interop.CimMdlrAPI.IMd2DBounding aIMd2DBounding = (interop.CimMdlrAPI.IMd2DBounding)aProc;
//Set Parameters to the procedure
interop.CimBaseAPI.ICimEntity aEnt = (interop.CimBaseAPI.ICimEntity)aModel.GetEntityById(11, aModel);
interop.CimBaseAPI.ICimEntity aEnt1 = (interop.CimBaseAPI.ICimEntity)aModel.GetEntityById(53, aModel);
interop.CimBaseAPI.ICimEntityList aEntList = new interop.CimBaseAPI.CimEntityList();
aEntList.Add(aEnt);
aEntList.Add(aEnt1);
aIMd2DBounding.Entities = (interop.CimMdlrAPI.ICimEntityList)aEntList;
aIMd2DBounding.BoundingType = interop.CimMdlrAPI.BoundingType.cmBox;
aIMd2DBounding.BoundingMode = interop.CimMdlrAPI.BoundingMode.cmManual;
aIMd2DBounding.Angle = 20;
aIMd2DBounding.CornerRadius = 10;
aIMd2DBounding.WireCreationMode = interop.CimMdlrAPI.WireCreationMode.cmWireWithUCS;
aIMd2DBounding.Height = 50;
aIMd2DBounding.Width = 100;
//Execute procedure
aProc.Execute();

Example 3-Create enclosing polygon 2d boundingExample 3-Create enclosing polygon 2d bounding

// PREREQUISITE: Note PIDs of the entities around which you want to create the bounding box
//Get Active Cimatron Application
interop.CimAppAccess.AppAccess aAppAccess = new interop.CimAppAccess.AppAccess();
interop.CimatronE.IApplication CimApp = (interop.CimatronE.IApplication)aAppAccess.GetActiveApplication();
//Get Active Cimatron Document
interop.CimBaseAPI.ICimDocument aDoc = (interop.CimBaseAPI.ICimDocument)CimApp.GetActiveDoc();
interop.CimMdlrAPI.IModelContainer aContainer = (interop.CimMdlrAPI.IModelContainer)aDoc;
interop.CimMdlrAPI.IMdlrModel aMdlrModel = (interop.CimMdlrAPI.IMdlrModel)aContainer.Model;
interop.CimBaseAPI.IModel aModel = (interop.CimBaseAPI.IModel)aMdlrModel;
//Create a 2DBounding Procedure
interop.CimMdlrAPI.IMdProcedure aProc = aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cm2DBoundingProcedure);
interop.CimMdlrAPI.IMd2DBounding aIMd2DBounding = (interop.CimMdlrAPI.IMd2DBounding)aProc;
//Set Parameters to the procedure
interop.CimBaseAPI.ICimEntity aEnt = (interop.CimBaseAPI.ICimEntity)aModel.GetEntityById(11, aModel);
interop.CimBaseAPI.ICimEntity aEnt1 = (interop.CimBaseAPI.ICimEntity)aModel.GetEntityById(53, aModel);
interop.CimBaseAPI.ICimEntityList aEntList = new interop.CimBaseAPI.CimEntityList();
aEntList.Add(aEnt);
aEntList.Add(aEnt1);
aIMd2DBounding.Entities = (interop.CimMdlrAPI.ICimEntityList)aEntList;
aIMd2DBounding.BoundingType = interop.CimMdlrAPI.BoundingType.cmEnclosingPolygon;
aIMd2DBounding.WireCreationMode = interop.CimMdlrAPI.WireCreationMode.cmWireWithPoint;
aIMd2DBounding.Offset = -10;
//Execute procedure
aProc.Execute();

Example 4-Create Circular 2D boundingExample 4-Create Circular 2D bounding

// PREREQUISITE: Note PIDs of the entities around which you want to create the bounding box
//Get Active Cimatron Application
interop.CimAppAccess.AppAccess aAppAccess = new interop.CimAppAccess.AppAccess();
interop.CimatronE.IApplication CimApp = (interop.CimatronE.IApplication)aAppAccess.GetActiveApplication();
//Get Active Cimatron Document
interop.CimBaseAPI.ICimDocument aDoc = (interop.CimBaseAPI.ICimDocument)CimApp.GetActiveDoc();
interop.CimMdlrAPI.IModelContainer aContainer = (interop.CimMdlrAPI.IModelContainer)aDoc;
interop.CimMdlrAPI.IMdlrModel aMdlrModel = (interop.CimMdlrAPI.IMdlrModel)aContainer.Model;
interop.CimBaseAPI.IModel aModel = (interop.CimBaseAPI.IModel)aMdlrModel;
//Create a 2DBounding Procedure
interop.CimMdlrAPI.IMdProcedure aProc = aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cm2DBoundingProcedure);
interop.CimMdlrAPI.IMd2DBounding aIMd2DBounding = (interop.CimMdlrAPI.IMd2DBounding)aProc;
//Set Parameters to the procedure
interop.CimBaseAPI.ICimEntity aEnt = (interop.CimBaseAPI.ICimEntity)aModel.GetEntityById(11, aModel);
interop.CimBaseAPI.ICimEntity aEnt1 = (interop.CimBaseAPI.ICimEntity)aModel.GetEntityById(53, aModel);
interop.CimBaseAPI.ICimEntityList aEntList = new interop.CimBaseAPI.CimEntityList();
aEntList.Add(aEnt);
aEntList.Add(aEnt1);
aIMd2DBounding.Entities = (interop.CimMdlrAPI.ICimEntityList)aEntList;
aIMd2DBounding.BoundingType = interop.CimMdlrAPI.BoundingType.cmCircle;
aIMd2DBounding.WireCreationMode = interop.CimMdlrAPI.WireCreationMode.cmWireWithPoint;
aIMd2DBounding.Offset = 100;
//Execute procedure
aProc.Execute();  

Example 1-Create bounding Box with Auto ModeExample 1-Create bounding Box with Auto Mode

Example 2-Create bounding box by giving width, height and angleExample 2-Create bounding box by giving width, height and angle

Example 3-Create enclosing polygon 2d boundingExample 3-Create enclosing polygon 2d bounding

Example 4-Create Circular 2D boundingExample 4-Create Circular 2D bounding

#PREREQUISITE: Note PIDs of the entities around which you want to create the bounding box
#Get Active Cimatron Application
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
aAppAcc = interop.CimAppAccess.AppAccess()
cimApp = None
cimApp = interop.CimatronE.IApplication(aAppAcc.GetApplication())
#Get Active Cimatron Document
aDOC = interop.CimBaseAPI.ICimDocument(cimApp.GetActiveDoc())
aModelCont = interop.CimMdlrAPI.IModelContainer(aDOC)
aMdlrModel = interop.CimMdlrAPI.MdlrModel(aModelCont.Model)
aModel = interop.CimMdlrAPI.IModel(aMdlrModel)
aEntList = interop.CimBaseAPI.ICimEntityList(interop.CimBaseAPI.CimEntityList())
aEntList.Add(aModel.GetEntityById(23, aModel))
aEntList.Add(aModel.GetEntityById(18, aModel))
#Create a 2DBounding Procedure
aProc = aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cm2DBoundingProcedure)
aIMd2DBounding = interop.CimMdlrAPI.IMd2DBounding(aProc)
#Set Parameters to the procedure
aIMd2DBounding.Entities = interop.CimMdlrAPI.ICimEntityList(aEntList)
aIMd2DBounding.BoundingType = interop.CimMdlrAPI.BoundingType.cmEnclosingPolygon
aIMd2DBounding.WireCreationMode = interop.CimMdlrAPI.WireCreationMode.cmWireWithPoint
aIMd2DBounding.Offset = -10
#Execute procedure
aProc.Execute()