ISkPoint::Object2

Use this property to get a second sketcher object (such as object2 of SkPoint) or set a second sketcher object in the case of an intersection point of two sketcher curves.

Compatibility

Cimatron 2024 or later

Syntax

interop.CimServicesAPI.ISkObject Object2 {get; set;} 

Object2:interop.CimServicesAPI.ISkObject 

Return Type

Input: (interop.CimServicesAPI.ISkObject) Object

Reference to interface of Sketcher object, such as object2 of SkPoint.

   

Input Type

Input: (interop.CimServicesAPI.ISkObject) Object

Sketcher object to be set

   

Remarks

None

Example

// 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
{
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 model container
interop.CimMdlrAPI.MdlrModel aMdlrModel = (interop.CimMdlrAPI.MdlrModel)aModelCont.Model;
//Create sketcher procedure on Modeler Model
interop.CimMdlrAPI.MdSketcher aMdSketcherProcedure =
(interop.CimMdlrAPI.MdSketcher)aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmSketcherProcedure);
// Cast MdSketcher to IMdSketcher to get sketcher object
interop.CimMdlrAPI.IMdSketcher aIMdSketcher = (interop.CimMdlrAPI.IMdSketcher)aMdSketcherProcedure;
interop.CimServicesAPI.ISketcher aISketcher = (interop.CimServicesAPI.ISketcher)aIMdSketcher.Sketcher;
//Create Line object for to be set as object1 for SKPoint
interop.CimServicesAPI.ISkObject aLineObj1 = aISketcher.CreateObject(interop.CimServicesAPI.SketchObjectType.cmSketchLine);
interop.CimServicesAPI.ISkLine aSkLine1 = (interop.CimServicesAPI.ISkLine)aLineObj1;
double[] aPoint = new double[2];
aPoint[0] = -50;
aPoint[1] = -50;
// set start point of line
aSkLine1.Start = aPoint;
// Set second point of line
aPoint[0] = 115;
aPoint[1] = 115;
aSkLine1.End = aPoint;
// Get created line ID
int oID1 = aISketcher.AddObject(aLineObj1);

//Create Line object for to be set as object2 for SKPoint
interop.CimServicesAPI.ISkObject aLineObj2 = aISketcher.CreateObject(interop.CimServicesAPI.SketchObjectType.cmSketchLine);
interop.CimServicesAPI.ISkLine aSkLine2 = (interop.CimServicesAPI.ISkLine)aLineObj2;
aPoint[0] = 50;
aPoint[1] = 0;
// set start point of line
aSkLine2.Start = aPoint;
// Set second point of line
aPoint[0] = 0;
aPoint[1] = 70;
aSkLine2.End = aPoint;
// Get created line ID
int oID2 = aISketcher.AddObject(aLineObj2);
interop.CimServicesAPI.ISkObject aPointObj = aISketcher.CreateObject(interop.CimServicesAPI.SketchObjectType.cmSketchPoint);
interop.CimServicesAPI.ISkPoint aSkPoint = (interop.CimServicesAPI.ISkPoint)aPointObj;
aSkPoint.Object1 = aLineObj1;
aSkPoint.Object2 = aLineObj2;
int oID3 = aISketcher.AddObject(aPointObj);

//Refer class description for aMdSketcherProcedure object
aISketcher.Evaluate();
aMdSketcherProcedure.Execute();

//Get the object1 set for aPointObj
interop.CimServicesAPI.ISkObject aobject1 = aSkPoint.Object1;
//Get the object2 set for aPointObj
interop.CimServicesAPI.ISkObject aobject2 = aSkPoint.Object2;
}
}  

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())
aDocument = (interop.CimatronE.ICimDocument)(aCimApp.GetActiveDoc())
if (aDocument != None) :
if (aDocument.Type == interop.CimatronE.DocumentEnumType.cmPart) :
aModelCont = (interop.CimMdlrAPI.IModelContainer)(aDocument)
#If active document is part then get the MdlrModel from model container
aMdlrModel = (interop.CimMdlrAPI.MdlrModel)(aModelCont.Model)
aMdSketcherProcedure = (interop.CimMdlrAPI.MdSketcher)(aMdlrModel.CreateProcedure(interop.CimMdlrAPI.MdProcedureType.cmSketcherProcedure))
# Cast MdSketcher to IMdSketcher to get sketcher object
aIMdSketcher = (interop.CimMdlrAPI.IMdSketcher)(aMdSketcherProcedure)
aISketcher = (interop.CimServicesAPI.ISketcher)(aIMdSketcher.Sketcher)

#Create Line object for to be set as object1 for SKPoint
aLineObj1 =(interop.CimServicesAPI.ISkObject)(aISketcher.CreateObject(interop.CimServicesAPI.SketchObjectType.cmSketchLine))
aSkLine1 = (interop.CimServicesAPI.ISkLine)(aLineObj1)
from System import Array, Double
aPoint = Array[Double](2)
aPoint[0] = -10;
aPoint[1] = -10;
#Set start point of line
aSkLine1.Start = aPoint
#Set second point of line
aPoint[0] = 115
aPoint[1] = 115
aSkLine1.End = aPoint
#Get created line ID
oID1 = aISketcher.AddObject(aLineObj1)

#Create Line object for to be set as object2 for SKPoint
aLineObj2 =(interop.CimServicesAPI.ISkObject)(aISketcher.CreateObject(interop.CimServicesAPI.SketchObjectType.cmSketchLine))
aSkLine2 = (interop.CimServicesAPI.ISkLine)(aLineObj2)
from System import Array, Double
aPoint = Array[Double](2)
aPoint[0] = 40
aPoint[1] = 10
#Set start point of line
aSkLine2.Start = aPoint
#Set second point of line
aPoint[0] = 10
aPoint[1] = 115
aSkLine2.End = aPoint
#Get created line ID
oID2 = aISketcher.AddObject(aLineObj2)

#Create SkPoint type object
aSkPointObj= (interop.CimServicesAPI.ISkObject)(aISketcher.CreateObject(interop.CimServicesAPI.SketchObjectType.cmSketchPoint))
aSkPoint = (interop.CimServicesAPI.ISkPoint)(aSkPointObj)
aSkPoint.Object1 = aLineObj1
aSkPoint.Object2 = aLineObj2
oID3 = aISketcher.AddObject(aSkPointObj)
aISketcher.Evaluate()
aMdSketcherProcedure.Execute()
#Get the object2 set for aPointObj
aObject2 = (interop.CimServicesAPI.ISkObject)(aSkPoint.Object2)