IGeom3DStraight

This interface represents an infinite straight line represented by a point and a unit vector specifying the direction. A straight also has a scale factor for the parameterization, so the parameter values can be made invariant under transformation.

Namespace

interop.CimServicesAPI

Compatibility

Cimatron 2024 or later

Properties

Get

Direction

double[]

Get

Scale

double

Get

RootPoint

double[]

Methods

None

Events

NoneĀ 

Remarks

A straight line is an open curve that is not periodic. It is parameterized as:

Point = RootPoint + t * Scale * Direction

where t is the parameter.

Example

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.cmEdge);
aMdlrQuery.SetFilter((interop.CimMdlrAPI.IEntityFilter)aEdgeFilter);
interop.CimMdlrAPI.ICimEntityList aEdgeList = aMdlrQuery.Select();
//Get One Edge
interop.CimMdlrAPI.ICimEntity aEdge = (interop.CimMdlrAPI.ICimEntity)aEdgeList[1];
int aId = aEdge.ID;
interop.CimMdlrAPI.IGeometry3D aGeom = aEdge.Geometry;
var aType = aGeom.Type;
interop.CimServicesAPI.IGeom3DCurve aCurve = aGeom as interop.CimServicesAPI.IGeom3DCurve;
if (aCurve != null)
{
if (aCurve.CurveType == interop.CimServicesAPI.GeomCurveType.cmGeomCurveStraight)
{
interop.CimServicesAPI.IGeom3DStraight aStraight = aCurve as interop.CimServicesAPI.IGeom3DStraight;
}
}

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)
aEntityFilterEdge = aMdlrQuery.CreateFilter(interop.CimMdlrAPI.EFilterEnumType.cmFilterEntityType)
aEdgeFilter = interop.CimBaseAPI.FilterType(aEntityFilterEdge)

aEdgeFilter.Add(interop.CimBaseAPI.EntityEnumType.cmEdge)
aMdlrQuery.SetFilter(interop.CimMdlrAPI.IEntityFilter(aEdgeFilter))

aEdgeList = aMdlrQuery.Select()
aEdgeCount = aEdgeList.Count

# Get One Edge
aEdge = interop.CimMdlrAPI.ICimEntity(aEdgeList[1])
aId = aEdge.ID
aGeom = aEdge.Geometry
aCurve = None
if aGeom.Type == interop.CimMdlrAPI.GeomType.cmGeomCurve:
aCurve = interop.CimServicesAPI.IGeom3DCurve(aGeom)

aStraight = None
if aCurve.CurveType == interop.CimServicesAPI.GeomCurveType.cmGeomCurveStraight :
aStraight = interop.CimServicesAPI.IGeom3DStraight(aCurve)