PathScripts.PathCircularHoleBase.ObjectOp Class Reference

Public Member Functions

def applyInverseAngle (self, obj, clnBase, clnStock, axis, angle)
 
def applyRotationalAnalysis (self, obj, base, angle, axis, subCount)
 
def baseIsArchPanel (self, obj, base)
 
def circularHoleExecute (self, obj, holes)
 
def circularHoleFeatures (self, obj)
 
def cloneBaseAndStock (self, obj, base, angle, axis, subCount)
 
def faceRotationAnalysis (self, obj, norm, surf)
 
def findAllHoles (self, obj)
 
def findHoles (self, obj, baseobject)
 
def getArchPanelEdge (self, obj, base, sub)
 
def getFaceNormAndSurf (self, face)
 
def guiMessage (self, title, msg, show=False)
 
def holeDiameter (self, obj, base, sub)
 
def holePosition (self, obj, base, sub)
 
def initCircularHoleOperation (self, obj)
 
def initOperation (self, obj)
 
def isHoleEnabled (self, obj, base, sub)
 
def opDetermineRotationRadii (self, obj)
 
def opExecute (self, obj)
 
def opFeatures (self, obj)
 
def sortTuplesByIndex (self, TupleList, tagIdx)
 
def useTempJobClones (self, cloneName)
 
def visualAxis (self)
 
def warnDisabledAxis (self, obj, axis, sub='')
 
- Public Member Functions inherited from PathScripts.PathOp.ObjectOp
def addBase (self, obj, base, sub)
 
def addBaseProperty (self, obj)
 
def addOpValues (self, obj, values)
 
def applyExpression (self, obj, prop, expr)
 
def execute (self, obj)
 
def getCycleTimeEstimate (self, obj)
 
def getJob (self, obj)
 
def onChanged (self, obj, prop)
 
def onDocumentRestored (self, obj)
 
def opOnChanged (self, obj, prop)
 
def opOnDocumentRestored (self, obj)
 
def opRejectAddBase (self, obj, base, sub)
 
def opSetDefaultValues (self, obj, job)
 
def opUpdateDepths (self, obj)
 
def setDefaultValues (self, obj)
 
def setEditorModes (self, obj, features)
 
def updateDepths (self, obj, ignoreErrors=False)
 

Public Attributes

 axialFeed
 
 axialRapid
 
 clearHeight
 
 cloneNames
 
 guiMsgs
 
 rotateFlag
 
 safeHeight
 
 stockBB
 
- Public Attributes inherited from PathScripts.PathOp.ObjectOp
 addNewProps
 
 commandlist
 
 horizFeed
 
 horizRapid
 
 job
 
 model
 
 radius
 
 stock
 
 tool
 
 vertFeed
 
 vertRapid
 

Static Public Attributes

 defValsSet
 
 docRestored
 
 initOpFinalDepth
 
 initOpStartDepth
 
 initWithRotation
 

Detailed Description

Base class for proxy objects of all operations on circular holes.

Member Function Documentation

◆ applyInverseAngle()

def PathScripts.PathCircularHoleBase.ObjectOp.applyInverseAngle (   self,
  obj,
  clnBase,
  clnStock,
  axis,
  angle 
)
applyInverseAngle(obj, clnBase, clnStock, axis, angle)
    Apply rotations to incoming base and stock objects.

◆ applyRotationalAnalysis()

def PathScripts.PathCircularHoleBase.ObjectOp.applyRotationalAnalysis (   self,
  obj,
  base,
  angle,
  axis,
  subCount 
)
applyRotationalAnalysis(obj, base, angle, axis, subCount)
    Create temp clone and stock and apply rotation to both.
    Return new rotated clones

References PathScripts.PathCircularHoleBase.ObjectOp.cloneBaseAndStock(), and PathScripts.PathAreaOp.ObjectOp.cloneBaseAndStock().

◆ baseIsArchPanel()

def PathScripts.PathCircularHoleBase.ObjectOp.baseIsArchPanel (   self,
  obj,
  base 
)

◆ circularHoleExecute()

def PathScripts.PathCircularHoleBase.ObjectOp.circularHoleExecute (   self,
  obj,
  holes 
)
circularHoleExecute(obj, holes) ... implement processing of holes.
holes is a list of dictionaries with 'x', 'y' and 'r' specified for each hole.
Note that for Vertexes, non-circular Edges and Locations r=0.
Must be overwritten by subclasses.

Reimplemented in PathScripts.PathDrilling.ObjectDrilling, and PathScripts.PathHelix.ObjectHelix.

◆ circularHoleFeatures()

def PathScripts.PathCircularHoleBase.ObjectOp.circularHoleFeatures (   self,
  obj 
)
circularHoleFeatures(obj) ... overwrite to add operations specific features.
Can safely be overwritten by subclasses.

Reimplemented in PathScripts.PathDrilling.ObjectDrilling, and PathScripts.PathHelix.ObjectHelix.

Referenced by PathScripts.PathCircularHoleBase.ObjectOp.opFeatures().

◆ cloneBaseAndStock()

def PathScripts.PathCircularHoleBase.ObjectOp.cloneBaseAndStock (   self,
  obj,
  base,
  angle,
  axis,
  subCount 
)
cloneBaseAndStock(obj, base, angle, axis, subCount)
    Method called to create a temporary clone of the base and parent Job stock.
    Clones are destroyed after usage for calculations related to rotational operations.

References PathScripts.PathCircularHoleBase.ObjectOp.cloneNames, PathScripts.PathAreaOp.ObjectOp.cloneNames, PathScripts.PathCircularHoleBase.ObjectOp.useTempJobClones(), and PathScripts.PathAreaOp.ObjectOp.useTempJobClones().

Referenced by PathScripts.PathCircularHoleBase.ObjectOp.applyRotationalAnalysis().

◆ faceRotationAnalysis()

def PathScripts.PathCircularHoleBase.ObjectOp.faceRotationAnalysis (   self,
  obj,
  norm,
  surf 
)
faceRotationAnalysis(obj, norm, surf)
    Determine X and Y independent rotation necessary to make normalAt = Z=1 (0,0,1) 

References PathScripts.PathCircularHoleBase.ObjectOp.rotateFlag, and PathScripts.PathAreaOp.ObjectOp.rotateFlag.

◆ findAllHoles()

def PathScripts.PathCircularHoleBase.ObjectOp.findAllHoles (   self,
  obj 
)
findAllHoles(obj) ... find all holes of all base models and assign as features.

References PathScripts.PathCircularHoleBase.ObjectOp.baseIsArchPanel(), PathScripts.PathCircularHoleBase.ObjectOp.findHoles(), PathScripts.PathOp.ObjectOp.getJob(), PathScripts.PathJobDlg.JobCreate.model, PartGui::TaskCheckGeometryResults.model, PathScripts.PathOp.ObjectOp.model, and ArchMaterial._ArchMultiMaterialTaskPanel.model.

◆ findHoles()

def PathScripts.PathCircularHoleBase.ObjectOp.findHoles (   self,
  obj,
  baseobject 
)
findHoles(obj, baseobject) ... inspect baseobject and identify all features that resemble a straight cricular hole.

Referenced by PathScripts.PathCircularHoleBase.ObjectOp.findAllHoles().

◆ getArchPanelEdge()

def PathScripts.PathCircularHoleBase.ObjectOp.getArchPanelEdge (   self,
  obj,
  base,
  sub 
)
getArchPanelEdge(obj, base, sub) ... helper function to identify a specific edge of an Arch.Panel.
Edges are identified by 3 numbers:
    <holeId>.<wireId>.<edgeId>
Let's say the edge is specified as "3.2.7", then the 7th edge of the 2nd wire in the 3rd hole returned
by the panel sheet is the edge returned.
Obviously this is as fragile as can be, but currently the best we can do while the panel sheets
hide the actual features from Path and they can't be referenced directly.

Referenced by PathScripts.PathCircularHoleBase.ObjectOp.holeDiameter(), and PathScripts.PathCircularHoleBase.ObjectOp.holePosition().

◆ getFaceNormAndSurf()

def PathScripts.PathCircularHoleBase.ObjectOp.getFaceNormAndSurf (   self,
  face 
)
getFaceNormAndSurf(face)
    Return face.normalAt(0,0) or face.normal(0,0) and face.Surface.Axis vectors

◆ guiMessage()

def PathScripts.PathCircularHoleBase.ObjectOp.guiMessage (   self,
  title,
  msg,
  show = False 
)
guiMessage(title, msg, show=False)
    Handle op related GUI messages to user

References PathScripts.PathCircularHoleBase.ObjectOp.guiMsgs, and PathScripts.PathAreaOp.ObjectOp.guiMsgs.

◆ holeDiameter()

def PathScripts.PathCircularHoleBase.ObjectOp.holeDiameter (   self,
  obj,
  base,
  sub 
)
holeDiameter(obj, base, sub) ... returns the diameter of the specified hole.

References PathScripts.PathCircularHoleBase.ObjectOp.baseIsArchPanel(), and PathScripts.PathCircularHoleBase.ObjectOp.getArchPanelEdge().

◆ holePosition()

def PathScripts.PathCircularHoleBase.ObjectOp.holePosition (   self,
  obj,
  base,
  sub 
)
holePosition(obj, base, sub) ... returns a Vector for the position defined by the given features.
Note that the value for Z is set to 0.

References PathScripts.PathCircularHoleBase.ObjectOp.baseIsArchPanel(), and PathScripts.PathCircularHoleBase.ObjectOp.getArchPanelEdge().

◆ initCircularHoleOperation()

def PathScripts.PathCircularHoleBase.ObjectOp.initCircularHoleOperation (   self,
  obj 
)
initCircularHoleOperation(obj) ... overwrite if the subclass needs initialisation.
Can safely be overwritten by subclasses.

Reimplemented in PathScripts.PathDrilling.ObjectDrilling, and PathScripts.PathHelix.ObjectHelix.

Referenced by PathScripts.PathCircularHoleBase.ObjectOp.initOperation().

◆ initOperation()

def PathScripts.PathCircularHoleBase.ObjectOp.initOperation (   self,
  obj 
)
initOperation(obj) ... adds Disabled properties and calls initCircularHoleOperation(obj).
Do not overwrite, implement initCircularHoleOperation(obj) instead.

Reimplemented from PathScripts.PathOp.ObjectOp.

References PathScripts.PathCircularHoleBase.ObjectOp.initCircularHoleOperation().

◆ isHoleEnabled()

def PathScripts.PathCircularHoleBase.ObjectOp.isHoleEnabled (   self,
  obj,
  base,
  sub 
)
isHoleEnabled(obj, base, sub) ... return true if hole is enabled.

◆ opDetermineRotationRadii()

def PathScripts.PathCircularHoleBase.ObjectOp.opDetermineRotationRadii (   self,
  obj 
)
opDetermineRotationRadii(obj)
    Determine rotational radii for 4th-axis rotations, for clearance/safe heights 

References PathScripts.PathAreaOp.ObjectOp.stockBB, and PathScripts.PathCircularHoleBase.ObjectOp.stockBB.

◆ opExecute()

def PathScripts.PathCircularHoleBase.ObjectOp.opExecute (   self,
  obj 
)
opExecute(obj) ... processes all Base features and Locations and collects
them in a list of positions and radii which is then passed to circularHoleExecute(obj, holes).
If no Base geometries and no Locations are present, the job's Base is inspected and all
drillable features are added to Base. In this case appropriate values for depths are also
calculated and assigned.
Do not overwrite, implement circularHoleExecute(obj, holes) instead.

Reimplemented from PathScripts.PathOp.ObjectOp.

Referenced by PathScripts.PathOp.ObjectOp.execute().

◆ opFeatures()

def PathScripts.PathCircularHoleBase.ObjectOp.opFeatures (   self,
  obj 
)
opFeatures(obj) ... calls circularHoleFeatures(obj) and ORs in the standard features required for processing circular holes.
Do not overwrite, implement circularHoleFeatures(obj) instead

Reimplemented from PathScripts.PathOp.ObjectOp.

References PathScripts.PathCircularHoleBase.ObjectOp.circularHoleFeatures().

Referenced by PathScripts.PathOp.ObjectOp.addOpValues(), PathScripts.PathOp.ObjectOp.execute(), PathScripts.PathOp.ObjectOp.onDocumentRestored(), PathScripts.PathEngraveBase.ObjectOp.opSetDefaultValues(), PathScripts.PathOp.ObjectOp.setDefaultValues(), and PathScripts.PathOp.ObjectOp.updateDepths().

◆ sortTuplesByIndex()

def PathScripts.PathCircularHoleBase.ObjectOp.sortTuplesByIndex (   self,
  TupleList,
  tagIdx 
)
sortTuplesByIndex(TupleList, tagIdx)
    sort list of tuples based on tag index provided
    return (TagList, GroupList)

◆ useTempJobClones()

def PathScripts.PathCircularHoleBase.ObjectOp.useTempJobClones (   self,
  cloneName 
)
useTempJobClones(cloneName)
    Manage use of temporary model clones for rotational operation calculations.
    Clones are stored in 'rotJobClones' group.

Referenced by PathScripts.PathCircularHoleBase.ObjectOp.cloneBaseAndStock().

◆ visualAxis()

def PathScripts.PathCircularHoleBase.ObjectOp.visualAxis (   self)
visualAxis()
    Create visual X & Y axis for use in orientation of rotational operations
    Triggered only for PathLog.debug

◆ warnDisabledAxis()

def PathScripts.PathCircularHoleBase.ObjectOp.warnDisabledAxis (   self,
  obj,
  axis,
  sub = '' 
)
warnDisabledAxis(self, obj, axis)
    Provide user feedback if required axis is disabled

Member Data Documentation

◆ axialFeed

◆ axialRapid

◆ clearHeight

◆ cloneNames

PathScripts.PathCircularHoleBase.ObjectOp.cloneNames

◆ defValsSet

PathScripts.PathCircularHoleBase.ObjectOp.defValsSet
static

◆ docRestored

PathScripts.PathCircularHoleBase.ObjectOp.docRestored
static

◆ guiMsgs

PathScripts.PathCircularHoleBase.ObjectOp.guiMsgs

◆ initOpFinalDepth

PathScripts.PathCircularHoleBase.ObjectOp.initOpFinalDepth
static

◆ initOpStartDepth

PathScripts.PathCircularHoleBase.ObjectOp.initOpStartDepth
static

◆ initWithRotation

PathScripts.PathCircularHoleBase.ObjectOp.initWithRotation
static

◆ rotateFlag

PathScripts.PathCircularHoleBase.ObjectOp.rotateFlag

◆ safeHeight

◆ stockBB

PathScripts.PathCircularHoleBase.ObjectOp.stockBB

The documentation for this class was generated from the following file:
  • src/Mod/Path/PathScripts/PathCircularHoleBase.py