hexagon logo

Script for moving to a home position

Feel free to use and alter for your personal needs.

As always, no written guarantees, or user cost.

Dim DmisApp As Object
Dim DmisPart As Object
Dim DmisCommands As Object
Dim DmisCommand As Object

Sub Part1
  Set DmisApp = CreateObject("PCDLRN.Application")
  Set DmisPart = DmisApp.ActivePartProgram
  Set DmisCommands = DmisPart.Commands
  CommandCount = DmisCommands.Count
  Set DmisCommand = DmisCommands.Item(CommandCount)
  DmisCommands.InsertionPointAfter DmisCommand
     
 ' recall the STARTUP alignment
  Set DmisCommand = DmisCommands.Add(RECALL_ALIGN, True)
    DmisCommand.Marked = True
    retval = DmisCommand.SetToggleString (1, INTERNAL_EXTERNAL, 0)
    rtval = DmisCommand.PutText ("STARTUP", REF_ID, 0)

' create a readpoint  at current probe position
  Set DmisCommand = DmisCommands.Add(READ_POINT, True)
    DmisCommand.Marked = True
    retval = DmisCommand.PutText ("108.9301", THEO_X, 0)
    retval = DmisCommand.PutText ("-626.862", THEO_Y, 0)
    retval = DmisCommand.PutText ("-506.7231", THEO_Z, 0)
    retval = DmisCommand.PutText ("0", THEO_I, 0)
    retval = DmisCommand.PutText ("0", THEO_J, 0)
    retval = DmisCommand.PutText ("1", THEO_K, 0)
    retval = DmisCommand.PutText ("-25.0031", MEAS_X, 0)
    retval = DmisCommand.PutText ("499.9939", MEAS_Y, 0)
    retval = DmisCommand.PutText ("-181.8808", MEAS_Z, 0)
    retval = DmisCommand.PutText ("0", MEAS_I, 0)
    retval = DmisCommand.PutText ("0", MEAS_J, 0)
    retval = DmisCommand.PutText ("1", MEAS_K, 0)
    retval = DmisCommand.PutText ("TIP_POSITION", ID, 0)
    retval = DmisCommand.SetToggleString (1, COORD_TYPE, 0)
  
' find the active probe tip
  Set DmisCommand = DmisCommands.Add(ASSIGNMENT, True)
    DmisCommand.Marked = True
    retval = DmisCommand.PutText ("VAR_ACTIVE_TIP", DEST_EXPR, 0)
    retval = DmisCommand.PutText ("GETCOMMAND(""SET ACTIVE TIP"",""UP"",1)", SRC_EXPR, 0)

' Set var1 To active tip offsets  
  Set DmisCommand = DmisCommands.Add(ASSIGNMENT, True)
    DmisCommand.Marked = True
    retval = DmisCommand.PutText ("VAR1", DEST_EXPR, 0)
    retval = DmisCommand.PutText ("PROBEDATA(""OFFSET"", VAR_ACTIVE_TIP)", SRC_EXPR, 0)

' Set z_pos to the probe -z offset value  
  Set DmisCommand = DmisCommands.Add(ASSIGNMENT, True)
    DmisCommand.Marked = True
    retval = DmisCommand.PutText ("Z_POS", DEST_EXPR, 0)
    retval = DmisCommand.PutText ("-VAR1.Z", SRC_EXPR, 0)

' move probe up In z-axis at current x,y probe position  
  Set DmisCommand = DmisCommands.Add(MOVE_POINT, True)
    DmisCommand.Marked = True
    retval = DmisCommand.SetToggleString (1, NORM_RELEARN, 0)
    retval = DmisCommand.PutText ("-25.0031", THEO_X, 0)
    retval = DmisCommand.PutText ("499.9939", THEO_Y, 0)
    retval = DmisCommand.PutText ("-163.2653", THEO_Z, 0)
  Result = DmisCommand.SetExpression("Z_POS", THEO_Z, 0)
  Result = DmisCommand.SetExpression("TIP_POSITION.X", THEO_X, 0)
  Result = DmisCommand.SetExpression("TIP_POSITION.Y", THEO_Y, 0)

' Set x_pos To "0" Or whatever value you would like To place the probe at  
  Set DmisCommand = DmisCommands.Add(ASSIGNMENT, True)
    DmisCommand.Marked = True
    retval = DmisCommand.PutText ("X_POS", DEST_EXPR, 0)
    retval = DmisCommand.PutText ("0", SRC_EXPR, 0)
  
' Set y_pos To "0" Or whatever value you would like To place the probe at  
  Set DmisCommand = DmisCommands.Add(ASSIGNMENT, True)
    DmisCommand.Marked = True
    retval = DmisCommand.PutText ("Y_POS", DEST_EXPR, 0)
    retval = DmisCommand.PutText ("0", SRC_EXPR, 0)
 
' move the probe 
  Set DmisCommand = DmisCommands.Add(MOVE_POINT, True)
    DmisCommand.Marked = True
    retval = DmisCommand.SetToggleString (1, NORM_RELEARN, 0)
    retval = DmisCommand.PutText ("0", THEO_X, 0)
    retval = DmisCommand.PutText ("0", THEO_Y, 0)
    retval = DmisCommand.PutText ("-163.2653", THEO_Z, 0)
  Result = DmisCommand.SetExpression("Z_POS", THEO_Z, 0)
  Result = DmisCommand.SetExpression("X_POS", THEO_X, 0)
  Result = DmisCommand.SetExpression("Y_POS", THEO_Y, 0)
  
End Sub

Sub Main

  Part1

  DmisPart.RefreshPart
End Sub



Hope this helps someone.