ISketcher::FindObject

Use this method to find a sketcher object by its Id. Every object added to Sketcher using ISketcher::AddObject method returns an SKId which can be used to find the Sketcher object.

Compatibility

Cimatron 2024 or later

Syntax

interop.CimServicesAPI.ISkObject FindObject(int iId);  

def FindObject(iId: int) -> interop.CimServicesAPI.ISkObject 

Return Type

Return: ISkObject

pObject—a reference to the ISkObject interface of a Sketcher object

   

Input Type

Input: int

iId—Id of Sketcher object to be searched

   

Remarks

None

Example

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 new sketcher object of required type
interop.CimServicesAPI.ISkObject aObj = aISketcher.CreateObject(interop.CimServicesAPI.SketchObjectType.cmSketchLine);
interop.CimServicesAPI.ISkLine aLine = (interop.CimServicesAPI.ISkLine)aObj;
double[] aPoint = new double[2];
aPoint[0] = 10;
aPoint[1] = 10;
// set start point of line
aLine.Start = aPoint;
// Set second point of line
aPoint[0] = 115;
aPoint[1] = 115;
aLine.End = aPoint;
//Add newly created sketcher object to sketcher. oId is SkId of added sketch object.
int oId = aISketcher.AddObject((interop.CimServicesAPI.ISkObject)aLine);
aISketcher.Evaluate();
//Refer class description for to aMdSketcherProcedure object.
aMdSketcherProcedure.Execute();

interop.CimServicesAPI.ISkObject aFoundObj = aISketcher.FindObject(oId);
}
}  

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 as CimAppAccess
import interop.CimatronE as CimatronE
import interop.CimServicesAPI as CimServicesAPI
import interop.CimBaseAPI as CimBaseAPI
import interop.CimMdlrAPI as CimMdlrAPI

#Getting AppAccess Object
aCimAppAccess = CimAppAccess.AppAccess()
#Getting instance of CimatronE Application
aCimApp = None
while (aCimApp == None) :
aCimApp = CimatronE.IApplication(aCimAppAccess.GetApplication())

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

#Creating Sketcher Procedure
aMdSketcherProcedure = CimMdlrAPI.MdSketcher(aMdlrModel.CreateProcedure(CimMdlrAPI.MdProcedureType.cmSketcherProcedure))
aIMdSketcher = CimMdlrAPI.IMdSketcher(aMdSketcherProcedure)
aISketcher = CimServicesAPI.ISketcher(aIMdSketcher.Sketcher)

#Create new sketcher object of required type
aObj = aISketcher.CreateObject(CimServicesAPI.SketchObjectType.cmSketchLine)
aLine = CimServicesAPI.ISkLine(aObj)
import System
aPoint = System.Array[System.Double](2)
aPoint[0] = 10
aPoint[1] = 10
# set start point of line
aLine.Start = aPoint
# Set second point of line
aPoint[0] = 115
aPoint[1] = 115
aLine.End = aPoint
# Add newly created sketcher object to sketcher. OId is SkId of added sketch object.
oId = aISketcher.AddObject(CimServicesAPI.ISkObject(aLine))
aISketcher.Evaluate()
aMdSketcherProcedure.Execute()

aFoundObj = aISketcher.FindObject(oId)