Use this method to indicate whether the parameter coordinate system of the surface is right- or left-handed.
Cimatron 2024 or later
int IsLeftHanded();
def IsLeftHanded() -> int
|
Return: int |
pVal
|
| Input: None | |
With a right-handed system, at any point the outward normal is given by the cross product of the increasing U direction with the increasing V direction, in that order.
With a left-handed system, the outward normal is in the opposite direction of this cross product.
interop.CimAppAccess.AppAccess AppAcc = new interop.CimAppAccess.AppAccess();
interop.CimatronE.IApplication CimApp = (interop.CimatronE.IApplication)AppAcc.GetApplication();
interop.CimatronE.ICimDocument aDOC = CimApp.GetActiveDoc();
interop.CimMdlrAPI.IModelContainer aContainer = (interop.CimMdlrAPI.IModelContainer)aDoc;
interop.CimMdlrAPI.IMdlrModel aMdlrModel = (interop.CimMdlrAPI.IMdlrModel)aContainer.Model;
interop.CimMdlrAPI.IEntityQuery aMdlrQuery = (interop.CimMdlrAPI.IEntityQuery)aMdlrModel;
interop.CimMdlrAPI.IEntityFilter aEntityFilterEdge = aMdlrQuery.CreateFilter(interop.CimMdlrAPI.EFilterEnumType.cmFilterEntityType);
interop.CimBaseAPI.FilterType aEdgeFilter = (interop.CimBaseAPI.FilterType)aEntityFilterEdge;
aEdgeFilter.Add(interop.CimBaseAPI.EntityEnumType.cmFace);
aMdlrQuery.SetFilter((interop.CimMdlrAPI.IEntityFilter)aEdgeFilter);
interop.CimMdlrAPI.ICimEntityList aFaceList = aMdlrQuery.Select();
int aFaceCount = aFaceList.Count;
interop.CimMdlrAPI.ICimEntity aFace = (interop.CimMdlrAPI.ICimEntity)aFaceList[1];
int aId = aFace.ID;
interop.CimMdlrAPI.IGeometry3D aGeom = aFace.Geometry;
if (aGeom.Type == interop.CimMdlrAPI.GeomType.cmGeomSurface)
{
interop.CimServicesAPI.IGeom3DSurface aSurface = aGeom as interop.CimServicesAPI.IGeom3DSurface;
if (aSurface.SurfType == interop.CimServicesAPI.GeomSurfaceType.cmGeomSurfSpline)
{
interop.CimServicesAPI.IGeom3DSplineaSplineSurf = aSurface as interop.CimServicesAPI.IGeom3DSpline;
int aIsLeftHanded = aSplineSurf.IsLeftHanded();
}
}
import clr
clr.AddReference("interop.CimAppAccess")
clr.AddReference("interop.CimatronE")
clr.AddReference("interop.CimServicesAPI")
clr.AddReference("interop.CimBaseAPI")
clr.AddReference("interop.CimMdlrAPI")
clr.AddReference("interop.CimNcAPI")
import interop.CimAppAccess
import interop.CimatronE
import interop.CimServicesAPI
import interop.CimBaseAPI
import interop.CimMdlrAPI
import interop.CimNcAPI
import System
aAppAcc = interop.CimAppAccess.AppAccess()
aCimApp = interop.CimatronE.IApplication(aAppAcc.GetApplication())
aDOC = aCimApp.GetActiveDoc()
aContainer = interop.CimMdlrAPI.IModelContainer(aDOC)
aMdlrModel = interop.CimMdlrAPI.IMdlrModel(aContainer.Model)
aMdlrQuery = interop.CimMdlrAPI.IEntityQuery(aMdlrModel)
aEntityFilterFace = aMdlrQuery.CreateFilter(interop.CimMdlrAPI.EFilterEnumType.cmFilterEntityType)
aFaceFilter = interop.CimBaseAPI.FilterType(aEntityFilterFace)
aFaceFilter.Add(interop.CimBaseAPI.EntityEnumType.cmFace)
aMdlrQuery.SetFilter(interop.CimMdlrAPI.IEntityFilter(aFaceFilter))
aFaceList = aMdlrQuery.Select()
aFaceCount = aFaceList.Count
# Get One Face
aFace = interop.CimMdlrAPI.ICimEntity(aFaceList[1])
aId = aFace.ID
aGeom = aFace.Geometry
aSurface = None
if aGeom.Type == interop.CimMdlrAPI.GeomType.cmGeomSurface:
aSurface = interop.CimServicesAPI.IGeom3DSurface(aGeom)
aSplineSurf = None
if aSurface.SurfType == interop.CimServicesAPI.GeomSurfaceType.cmGeomSurfSpline :
aSplineSurf = interop.CimServicesAPI.IGeom3DSpline(aSurface)
aIsLeftHanded = aSplineSurf.IsLeftHanded()
