Reference for exported types and functions

API docstrings

These types and functions are the exported API by this package.

BlankLocalizationCore.HoleLocalizationFeatureType
HoleLocalizationFeature(descriptor::FeatureDescriptor, rough::R, machined::M) where {R<:AbstractHoleGeometry,M<:AbstractHoleGeometry}

A holelike localization feature. The rough and machined geometries don't necessarily have to be the same type.

BlankLocalizationCore.LocalizationFeatureType
LocalizationFeature{R,M}

Supertype of any localization features. A localization feature contains a feature descriptor (FeatureDescriptor) and a rough and machined geometry (AbstractLocalizationGeometry). The two geometries must be of same type (hole, plane, etc.). If a feature doesn't have a rough of machined state, an empty object should be used (and the feature descriptor should also store this information). based on its rough geometry.

BlankLocalizationCore.MeshHoleType

MeshHole <: AbstractHoleGeometry

A simple mesh hole geometry, that contains the mesh of the hole's surface and the convex hull of the points (see our paper for details).

BlankLocalizationCore.MultiOperationProblemMethod
MultiOperationProblem(partzeros, holes, planes, tolerances, parameters)

Construct a multi operation problem. For usage, please see the example section in the documentation. The parameters for the optimization are also described there with greater details.

Arguments

  • partzeros::Vector{PartZero}: array of part zeros.
  • holes::Vector{HoleLocalizationFeature}: array of holes.
  • planes::Vector{PlaneLocalizationFeature}: array of planes.
  • tolerances::Vector{Tolerance}: array of tolerances.
  • parameters::Dict{String,Any}: parameters in the form of a dictionary. Keys include: minAllowance, OptimizeForToleranceCenter, UseTolerances, SetPartZeroPosition, maxPlaneZAllowance.
BlankLocalizationCore.PartZeroType
PartZero(name, position, rotationmatrix)

Define a part zero with name, position and rotationmatrix relative to the workpiece datum.

Example

julia> PartZero("front", [0,0,0], hcat([0,1,0], [0,0,1], [1,0,0]))
Part zero: "front"
[0.0 0.0 1.0 0.0; 1.0 0.0 0.0 0.0; 0.0 1.0 0.0 0.0; 0.0 0.0 0.0 1.0]
BlankLocalizationCore.PlaneLocalizationFeatureType
PlaneLocalizationFeature(descriptor::FeatureDescriptor, rough::R, machined::M) where {R<:AbstractPlaneGeometry,M<:AbstractPlaneGeometry}

A planelike localization feature. The rough and machined geometries don't necessarily have to be the same type.

BlankLocalizationCore.SimpleHoleType

SimpleHole <: AbstractHoleGeometry

A simple "hole" structure with a center point and a radius. Axis of the hole is defined by its partzero taken from the feature descriptor.

BlankLocalizationCore.SimplePlaneType

SimplePlane <: AbstractPlaneGeometry

A simple plane structure with one point. Normal vector of the plane is defined by its partzero taken from the feature descriptor.

BlankLocalizationCore.featureradiusFunction
featureradius()

Return the radius of a IsPrimitive geometry that is subtype of [AbstractHoleGeometry]. There is a default implementation that can be used: featureradius(::IsPrimitive, x) = x.r.

BlankLocalizationCore.filteredsurfacepointsFunction
filteredsurfacepoints()

Return the filtered points of the surface of an IsFreeForm geometry, that may define active constraints in the optimization task (for example convex hull of mesh). Definition signature should look like: filteredsurfacepoints(::IsFreeForm, x).

BlankLocalizationCore.isoptimumMethod
isoptimum(mop::MultiOperationProblem)

Tell if mop's solution is in an optimal state, either: OPTIMAL or LOCALLY_SOLVED.

Private functions

These functions and types are not exported, though they can be used if needed.

BlankLocalizationCore.getfeaturebynameMethod
getfeaturebyname(mop::MultiOperationProblem, featurename)

Get a hole or plane feature by its name. It is assumed that all features have distinct names. Return nothing, if no feature is found with featurename.

BlankLocalizationCore.getpartzerobynameMethod
getpartzerobyname(partzeros::Vector{PartZero}, partzeroname::AbstractString)

Return the first part zero from partzeros, thats name is partzeroname.