Reference for exported types and functions

API docstrings

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

BlankLocalizationCore.HoleLocalizationFeature — Type
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.

source
BlankLocalizationCore.LocalizationFeature — Type
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.

source
BlankLocalizationCore.MeshHole — Type

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).

source
BlankLocalizationCore.MultiOperationProblem — Method
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.
source
BlankLocalizationCore.PartZero — Type
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]
source
BlankLocalizationCore.PlaneLocalizationFeature — Type
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.

source
BlankLocalizationCore.SimpleHole — Type

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.

source
BlankLocalizationCore.SimplePlane — Type

SimplePlane <: AbstractPlaneGeometry

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

source
BlankLocalizationCore.Tolerance — Type
Tolerance

A toleranced distance of two features. This struct stores the names of the features, if their rough or machined "form" is toleranced and also along which axis is their distance toleranced. The nominal, lower and upper values are self-explanatory and a comment can be also added as a string.

source
BlankLocalizationCore.filteredsurfacepoints — Function
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).

source

Private functions

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

BlankLocalizationCore.getfeaturebyname — Method
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.

source