This class represents a modeler procedure for creating a Advanced line.
There are several properties used with Line creation modes:
interop.CimMdlrAPI
Cimatron 2024 or later
Get, Set |
interop.CimMdlrAPI.ICimEntity |
|
Get, Set |
interop.CimMdlrAPI.ICimEntity |
|
Get, Set |
interop.CimMdlrAPI.eMdAdvancedLineMode |
|
Get, Set |
interop.CimMdlrAPI.eMdChainOption |
|
Get, Set |
int |
|
Get, Set |
interop.CimMdlrAPI.eMdTangentNormalOption |
|
Get, Set |
interop.CimMdlrAPI.eMdTangentNormalOption |
|
Get, Set |
interop.CimMdlrAPI.eMdTangentNormalOption |
|
Get, Set |
System.Object[] |
|
Get, Set |
double |
|
Get, Set |
double[] |
|
Get, Set |
interop.CimMdlrAPI.IPointData |
|
Get, Set |
double[] |
|
Get, Set |
int |
|
Get, Set |
interop.CimMdlrAPI.IPointData |
|
Get, Set |
interop.CimMdlrAPI.IPointData |
None |
||
None
None
Mode 1-cmMod2PointsMode 1-cmMod2Points
// 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.MdAdvancedLine aLineProcedure =
(interop.CimMdlrAPI.MdAdvancedLine)
aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmAdvancedLineProcedure);
interop.CimMdlrAPI.IMdAdvancedLine aIMdAdvancedLine = (interop.CimMdlrAPI.IMdAdvancedLine)aLineProcedure;
aIMdAdvancedLine.Mode = interop.CimMdlrAPI.eMdAdvancedLineMode.cmMod2Points;
double[] aPointArr = new double[9];
aPointArr[0] = 0;
aPointArr[1] = 0;
aPointArr[2] = 0;
aPointArr[3] = 80;
aPointArr[4] = 100;
aPointArr[5] = 0;
aPointArr[6] = 200;
aPointArr[7] = 0;
aPointArr[8] = 0;
aIMdAdvancedLine.PointsArray = aPointArr;
double[] aLengthArr = aIMdAdvancedLine.LengthsArray;
//double[] aLengthArr = { 10, 20 };
//aIMdAdvancedLine.LengthsArray = aLengthArr;
aIMdAdvancedLine.ChainOption = interop.CimMdlrAPI.eMdChainOption.cmLineChain;
//aIMdAdvancedLine.SecondEntityPickPoint= aPoint2;
aLineProcedure.Execute();
double[] aLengthArr2 = aIMdAdvancedLine.LengthsArray;
}
}
}
Mode 2-cmMod2CurvesMode 2-cmMod2Curves
// 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 aModel =
(interop.CimMdlrAPI.IModel)aModelCont.Model;
// Create the modeler procedure for the extrude procedure
interop.CimMdlrAPI.MdAdvancedLine aLineProcedure =
(interop.CimMdlrAPI.MdAdvancedLine)
aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmAdvancedLineProcedure);
interop.CimMdlrAPI.IMdAdvancedLine aIMdAdvancedLine = (interop.CimMdlrAPI.IMdAdvancedLine)aLineProcedure;
aIMdAdvancedLine.Mode = interop.CimMdlrAPI.eMdAdvancedLineMode.cmMod2Curves;
interop.CimMdlrAPI.ICimEntity aFirstEnt = aModel.GetEntityById(14, aModel);
interop.CimMdlrAPI.ICimEntity aSecondEnt = aModel.GetEntityById(17, aModel);
//First curve entity
aIMdAdvancedLine.FirstEntity = aFirstEnt;
//PickPoint on First curve
double[] aPoint1 = new double[3];
aPoint1[0] = 0;
aPoint1[1] = 0;
aPoint1[2] = 0;
aIMdAdvancedLine.FirstEntityPickPoint = aPoint1;
//Second curve entity
aIMdAdvancedLine.SecondEntity = aSecondEnt;
//PickPoint on Second curve
double[] aPoint2 = new double[3];
aPoint2[0] = 160;
aPoint2[1] = 0;
aPoint2[2] = 0;
aIMdAdvancedLine.SecondEntityPickPoint = aPoint2;
aLineProcedure.Execute();
}
}
}
Mode 3-cmModPointToCurveFaceMode 3-cmModPointToCurveFace
// 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 aModel =
(interop.CimMdlrAPI.IModel)aModelCont.Model;
// Create the modeler procedure for the extrude procedure
interop.CimMdlrAPI.MdAdvancedLine aLineProcedure =
(interop.CimMdlrAPI.MdAdvancedLine)
aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmAdvancedLineProcedure);
interop.CimMdlrAPI.IMdAdvancedLine aIMdAdvancedLine = (interop.CimMdlrAPI.IMdAdvancedLine)aLineProcedure;
aIMdAdvancedLine.Mode = interop.CimMdlrAPI.eMdAdvancedLineMode.cmModPointToCurveFace;
double[] aPoint1 = new double[3];
aPoint1[0] = 0;
aPoint1[1] = 0;
aPoint1[2] = 200;
aIMdAdvancedLine.FirstPoint = aPoint1;
//Face entity
interop.CimMdlrAPI.ICimEntity aFaceEnt = aModel.GetEntityById(19, aModel);
aIMdAdvancedLine.FirstEntity = aFaceEnt;
aLineProcedure.Execute();
}
}
}
Mode 4-cmModPointFromCurveFaceMode 4-cmModPointFromCurveFace
// 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 aModel =
(interop.CimMdlrAPI.IModel)aModelCont.Model;
// Create the modeler procedure for the extrude procedure
interop.CimMdlrAPI.MdAdvancedLine aLineProcedure =
(interop.CimMdlrAPI.MdAdvancedLine)
aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmAdvancedLineProcedure);
interop.CimMdlrAPI.IMdAdvancedLine aIMdAdvancedLine = (interop.CimMdlrAPI.IMdAdvancedLine)aLineProcedure;
aIMdAdvancedLine.Mode = interop.CimMdlrAPI.eMdAdvancedLineMode.cmModPointFromCurveFace;
double[] aPoint1 = new double[3];
aPoint1[0] = 0;
aPoint1[1] = 0;
aPoint1[2] = 0;
aIMdAdvancedLine.FirstEntityPickPoint = aPoint1;
//Face entity
interop.CimMdlrAPI.ICimEntity aFaceEnt = aModel.GetEntityById(19, aModel);
aIMdAdvancedLine.FirstEntity = aFaceEnt;
aIMdAdvancedLine.Length = 200;
aLineProcedure.Execute();
}
}
}
Mode 5-cmModByDirectionMode 5-cmModByDirection
// 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.MdAdvancedLine aLineProcedure =
(interop.CimMdlrAPI.MdAdvancedLine)
aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmAdvancedLineProcedure);
interop.CimMdlrAPI.IMdAdvancedLine aIMdAdvancedLine = (interop.CimMdlrAPI.IMdAdvancedLine)aLineProcedure;
aIMdAdvancedLine.Mode = interop.CimMdlrAPI.eMdAdvancedLineMode.cmModByDirection;
double[] aDir = new double[3];
aDir[0] = 0;
aDir[1] = 0;
aDir[2] = 1;
aIMdAdvancedLine.DirectionVector = aDir;
double[] aPoint1 = new double[3];
aPoint1[0] = 0;
aPoint1[1] = 0;
aPoint1[2] = 0;
aIMdAdvancedLine.FirstPoint = aPoint1;
aIMdAdvancedLine.Length = 100;
aLineProcedure.Execute();
}
}
}
Mode 1-cmMod2PointsMode 1-cmMod2Points
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 = CimatronE.IApplication(aCimAppAccess.GetApplication())
aDoc = (interop.CimBaseAPI.ICimDocument)(aCimApp.GetActiveDoc())
aContainer = (interop.CimMdlrAPI.IModelContainer)(aDoc)
aMdlrModel = (interop.CimMdlrAPI.MdlrModel)(aContainer.Model)
aIModel = (interop.CimMdlrAPI.IModel)(aContainer.Model)
# Create the modeler procedure for the extrude procedure
aLineProcedure = interop.CimMdlrAPI.MdAdvancedLine(aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmAdvancedLineProcedure))
aIMdAdvancedLine = interop.CimMdlrAPI.IMdAdvancedLine(aLineProcedure)
aIMdAdvancedLine.Mode = interop.CimMdlrAPI.eMdAdvancedLineMode.cmMod2Points
# Define points using an array
aPointArr = array.array('d', [0, 0, 0, 80, 100, 0, 200, 0, 0])
aIMdAdvancedLine.PointsArray = aPointArr
import array
# Get lengths array
aLengthArr = array.array('d', aIMdAdvancedLine.LengthsArray)
aIMdAdvancedLine.ChainOption = interop.CimMdlrAPI.eMdChainOption.cmLineChain
# Execute the procedure
aLineProcedure.Execute()
# Get updated lengths array
aLengthArr2 = array.array('d', aIMdAdvancedLine.LengthsArray)
Mode 2-cmMod2CurvesMode 2-cmMod2Curves
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 = CimatronE.IApplication(aCimAppAccess.GetApplication())
aDoc = (interop.CimBaseAPI.ICimDocument)(aCimApp.GetActiveDoc())
aContainer = (interop.CimMdlrAPI.IModelContainer)(aDoc)
aMdlrModel = (interop.CimMdlrAPI.MdlrModel)(aContainer.Model)
aIModel = (interop.CimMdlrAPI.IModel)(aContainer.Model)
# Create the modeler procedure for the extrude procedure
aLineProcedure = interop.CimMdlrAPI.MdAdvancedLine(aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmAdvancedLineProcedure))
aIMdAdvancedLine = interop.CimMdlrAPI.IMdAdvancedLine(aLineProcedure)
# Set the mode to create a line between two curves
aIMdAdvancedLine.Mode = interop.CimMdlrAPI.MdAdvancedLineMode.cmMod2Curves
# Get references to the first and second curves by their IDs
aFirstEnt = aModelCont.GetEntityById(14, aModel)
aSecondEnt = aModelCont.GetEntityById(17, aModel)
import array
# Set the first curve entity and pick point
aIMdAdvancedLine.FirstEntity = aFirstEnt
aIMdAdvancedLine.FirstEntityPickPoint = array.array("d", [0, 0, 0])
# Set the second curve entity and pick point
aIMdAdvancedLine.SecondEntity = aSecondEnt
aIMdAdvancedLine.SecondEntityPickPoint = array.array("d", [160, 0, 0])
# Execute the procedure
aLineProcedure.Execute()
Mode 3-cmModPointToCurveFaceMode 3-cmModPointToCurveFace
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 = CimatronE.IApplication(aCimAppAccess.GetApplication())
aDoc = (interop.CimBaseAPI.ICimDocument)(aCimApp.GetActiveDoc())
aContainer = (interop.CimMdlrAPI.IModelContainer)(aDoc)
aMdlrModel = (interop.CimMdlrAPI.MdlrModel)(aContainer.Model)
aIModel = (interop.CimMdlrAPI.IModel)(aContainer.Model)
# Create the modeler procedure for the advanced line
aLineProcedure = aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmAdvancedLineProcedure)
aIMdAdvancedLine = interop.CimMdlrAPI.IMdAdvancedLine(aLineProcedure)
aIMdAdvancedLine.Mode = interop.CimMdlrAPI.MdAdvancedLineMode.cmModPointToCurveFace
from array import array
# Set the point on the curve
aPoint1 = array('d',[0, 0, 200])
aIMdAdvancedLine.FirstPoint = aPoint1
# Face entity
aFaceEnt = aModel.GetEntityById(19, aModel)
aIMdAdvancedLine.FirstEntity = aFaceEnt
# Execute the procedure
aLineProcedure.Execute()
Mode 4-cmModPointFromCurveFaceMode 4-cmModPointFromCurveFace
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 = CimatronE.IApplication(aCimAppAccess.GetApplication())
aDoc = (interop.CimBaseAPI.ICimDocument)(aCimApp.GetActiveDoc())
aContainer = (interop.CimMdlrAPI.IModelContainer)(aDoc)
aMdlrModel = (interop.CimMdlrAPI.MdlrModel)(aContainer.Model)
aIModel = (interop.CimMdlrAPI.IModel)(aContainer.Model)
# Create the modeler procedure for the advanced line
aLineProcedure = aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmAdvancedLineProcedure)
aIMdAdvancedLine = interop.CimMdlrAPI.IMdAdvancedLine(aLineProcedure)
aIMdAdvancedLine.Mode = interop.CimMdlrAPI.eMdAdvancedLineMode.cmModPointFromCurveFace
from array import array
# Set pick point on the curve
aPoint1 = array('d',[0, 0, 0])
aIMdAdvancedLine.FirstEntityPickPoint = aPoint1
# Face entity
aFaceEnt = aModel.GetEntityById(19, aModel)
aIMdAdvancedLine.FirstEntity = aFaceEnt
# Set length
aIMdAdvancedLine.Length = 200
# Execute the procedure
aLineProcedure.Execute()
Mode 5-cmModByDirectionMode 5-cmModByDirection
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 = CimatronE.IApplication(aCimAppAccess.GetApplication())
aDoc = (interop.CimBaseAPI.ICimDocument)(aCimApp.GetActiveDoc())
aContainer = (interop.CimMdlrAPI.IModelContainer)(aDoc)
aMdlrModel = (interop.CimMdlrAPI.MdlrModel)(aContainer.Model)
aIModel = (interop.CimMdlrAPI.IModel)(aContainer.Model)
# Create the modeler procedure for the advanced line
aLineProcedure = aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmAdvancedLineProcedure)
aIMdAdvancedLine = interop.CimMdlrAPI.IMdAdvancedLine(aLineProcedure)
aIMdAdvancedLine.Mode = interop.CimMdlrAPI.eMdAdvancedLineMode.cmModByDirection
from array import array
# Set direction vector
aDir = array('d',[0, 0, 1])
aIMdAdvancedLine.DirectionVector = aDir
# Set starting point
aPoint1 = array('d', [0, 0, 0])
aIMdAdvancedLine.FirstPoint = aPoint1
# Set length
aIMdAdvancedLine.Length = 100
# Execute the procedure
aLineProcedure.Execute()