IMdLine

Use this class to create a line by providing;

Namespace

interop.CimMdlrAPI

Compatibility

Cimatron 2024 or later

Properties

Get, Set

FirstEntity

interop.CimMdlrAPI.ICimEntity

Get, Set

SecondEntity

interop.CimMdlrAPI.ICimEntity

Get, Set

Mode

interop.CimMdlrAPI.eMdLineMode

Get, Set

FirstPoint

double[]

Get, Set

SecondPoint

double[]

Get, Set

FirstEntityTangNormal

int

Get, Set

SecondEntityTangNormal

int

Get, Set

DirectionVector

double[]

Get, Set

BasePointDirection

double[]

Get, Set

DirectionSize

double

Set

RemoveEntity

int

Methods

System.Object

Get

(interop.CimMdlrAPI.MdParameterTyp)

void

Set

(interop.CimMdlrAPI.MdParameterTyp, System.Object)

Events

NoneĀ 

Remarks

None

Example

Example 1: Mode 1- By Two EntitiesExample 1: Mode 1- By Two Entities
// 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
interop.CimBaseAPI.ICimDocument aDOC = (interop.CimBaseAPI.ICimDocument)CimApp.GetActiveDoc();
if (aDOC != null) // Check if document was found
{
// Set model container
interop.CimMdlrAPI.IModelContainer aModelCont = (interop.CimMdlrAPI.IModelContainer)aDOC;
// Create the Sketcher procedure depended on the type of the active document. For now we take part document
if (aDOC.Type == interop.CimBaseAPI.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 aModel =
(interop.CimMdlrAPI.IModel)aModelCont.Model;
//Create procedure of Line type.
interop.CimMdlrAPI.MdLine aLineProcedure =
(interop.CimMdlrAPI.MdLine)aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmLineProcedure);
//Get first entity with the help of PID
interop.CimMdlrAPI.ICimEntity aFirstEnt = aModel.GetEntityById(4,aModel);
//Get Second entity with the help of PID
interop.CimMdlrAPI.ICimEntity aSecondEnt = aModel.GetEntityById(10, aModel);

interop.CimMdlrAPI.IMdLine aLineProc = (interop.CimMdlrAPI.IMdLine)aLineProcedure;
aLineProc.Mode = interop.CimMdlrAPI.eMdLineMode.cmMod2Entities;
//Set the first entity to line procedure
aLineProc.FirstEntity = aFirstEnt;
aLineProc.FirstEntityTangNormal = 0;
//Set the second entity to line procedure
aLineProc.SecondEntity = aSecondEnt;
aLineProc.SecondEntityTangNormal = 0;
//Execute the procedure.
aLineProcedure.Execute();
}
}

Example 2: Mode 2- By DirectionExample 2: Mode 2- By Direction
// 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;

interop.CimMdlrAPI.MdLine aLineProcedure =
(interop.CimMdlrAPI.MdLine)
aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmLineProcedure);

interop.CimMdlrAPI.IMdLine aLineProc = (interop.CimMdlrAPI.IMdLine)aLineProcedure;
double[] aPoint1 = new double[3];
aPoint1[0] = 10;
aPoint1[1] = 10;
aPoint1[2] = 0;

double[] aDirVec = new double[3];
aDirVec[0] = 0;
aDirVec[1] = 1;
aDirVec[2] = 0;

aLineProc.Mode = interop.CimMdlrAPI.eMdLineMode.cmModByDir;
aLineProc.BasePointDirection = aPoint1;
aLineProc.DirectionVector = aDirVec;
aLineProc.DirectionSize = 50;
aLineProcedure.Execute();

}

}
}

Example 3: Mode 3- By Two PointsExample 3: Mode 3- By Two Points
// 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;

// Create the modeler procedure for the extrude procedure
interop.CimMdlrAPI.MdSketcher aLineProcedure =
(interop.CimMdlrAPI.MdSketcher)
aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmLineProcedure);

interop.CimMdlrAPI.IMdLine aLineProc = (interop.CimMdlrAPI.IMdLine)aLineProcedure;
aLineProc.Mode = interop.CimMdlrAPI.eMdLineMode.cmMod2Entities;
double[] aPoint1 = new double[3];
aPoint1[0] = 0;
aPoint1[1] = 0;
aPoint1[2] = 0;

double[] aPoint2 = new double[3];
aPoint2[0] = 100;
aPoint2[1] = 100;
aPoint2[2] = 100;

aLineProc.FirstPoint = aPoint1;
aLineProc.SecondPoint = aPoint2;
aLineProcedure.Execute();

}

}
}

Example 1: Mode 1- By Two EntitiesExample 1: Mode 1- By Two Entities
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)
aModel = (interop.CimMdlrAPI.IModel)(aModelCont.Model)

#Create MdLine procedure on Modeler Model
aLineProcedure = (interop.CimMdlrAPI.MdLine)(aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmLineProcedure))
aIMdLine = (interop.CimMdlrAPI.IMdLine)(aLineProcedure)
#Get first entity with the help of PID
aFirstEnt = aModel.GetEntityById(4, aModel)
#Get Second entity with the help of PID
aSecondEnt = aModel.GetEntityById(10, aModel)
aIMdLine.Mode = interop.CimMdlrAPI.eMdLineMode.cmMod2Entities;
#Set the first entity to line procedure
aIMdLine.FirstEntity = aFirstEnt
aIMdLine.FirstEntityTangNormal = 0
#Set the second entity to line procedure
aIMdLine.SecondEntity = aSecondEnt
aIMdLine.SecondEntityTangNormal = 0
aLineProcedure.Execute()

Example 2: Mode 2- By DirectionExample 2: Mode 2- By Direction
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())

aPdm = aCimApp.GetPdm()
aDoc = (interop.CimBaseAPI.ICimDocument)(aCimApp.GetActiveDoc())
aModelCont = (interop.CimMdlrAPI.IModelContainer)(aDoc)
aMdlrModel = (interop.CimMdlrAPI.MdlrModel)(aModelCont.Model)


#Create MdLine procedure on Modeler Model
aLineProcedure = (interop.CimMdlrAPI.MdLine)(aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmLineProcedure))
aIMdLine = (interop.CimMdlrAPI.IMdLine)(aLineProcedure)
from System import Array, Double
aBasePoint1 = Array[Double](3)
aBasePoint1[0] = 10
aBasePoint1[1] = 10
aBasePoint1[2] = 0

aDirVec = Array[Double](3)
aDirVec[0] = 0
aDirVec[1] = 1
aDirVec[2] = 0

aIMdLine.Mode = interop.CimMdlrAPI.eMdLineMode.cmModByDir
aIMdLine.BasePointDirection = aBasePoint1
aIMdLine.DirectionVector = aDirVec
aIMdLine.DirectionSize = 50
aLineProcedure.Execute()

Example 3: Mode 3- By Two PointsExample 3: Mode 3- By Two Points
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())

aPdm = aCimApp.GetPdm()
aDoc = (interop.CimBaseAPI.ICimDocument)(aCimApp.GetActiveDoc())
aModelCont = (interop.CimMdlrAPI.IModelContainer)(aDoc)
aMdlrModel = (interop.CimMdlrAPI.MdlrModel)(aModelCont.Model)

#Create MdLine procedure on Modeler Model
aLineProcedure = (interop.CimMdlrAPI.MdLine)(aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmLineProcedure))
aIMdLine = (interop.CimMdlrAPI.IMdLine)(aLineProcedure)
aIMdLine.Mode = interop.CimMdlrAPI.eMdLineMode.cmMod2Entities;
from System import Array, Double
aPoint1 = Array[Double](3)
aPoint1[0] = 0;
aPoint1[1] = 0;
aPoint1[2] = 0;

aPoint2 = Array[Double](3)
aPoint2[0] = 100;
aPoint2[1] = 100;
aPoint2[2] = 100;

aIMdLine.FirstPoint = aPoint1;
aIMdLine.SecondPoint = aPoint2;
aLineProcedure.Execute()