hexagon logo

Enjoy: Script to insert 3D XYZ Constructed Lines and Origin Point

Very useful for making every alignment have 6 degrees of freedom locked down.
Hook to a button and insert where the cursor is.
Special thanks to PC-DMIS forum user jvwhy for the name of current alignment code.

' _____________________________ Begin _____________________________________________________________


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

'---> This function begins process of grabbing current alignment name
Function GetAlignmentUpToNow (GAUTN_ID As String, GAUTN_TYPE As Integer) As String
Dim GAUTN_OBJ As Object
Dim ReturnValue As String
ReturnValue="STARTUP" 
For Each GAUTN_OBJ In DmisCommands
If GAUTN_OBJ.ID=GAUTN_ID And GAUTN_OBJ.Type = GAUTN_TYPE Then Exit for
If GAUTN_OBJ.Type=1 Then
ReturnValue=GAUTN_OBJ.ID
End if

Next GAUTN_OBJ 
GetAlignmentUpToNow=ReturnValue
End Function


Sub Main()
Set DmisApp = CreateObject("PCDLRN.Application")
Set DmisPart = DmisApp.ActivePartProgram
Set DmisCommands = DmisPart.Commands



'---> Finish grabbing current alignment name
Dim CurAlignName As String
CurAlignName = GetAlignmentUpToNow (DmisCommands.CurrentCommand.ID , DmisCommands.CurrentCommand.Type)
'MsgBox CurAlignName

'---> Now put the stuff into the prg.
Set DmisCommand = DmisCommands.Add(SET_COMMENT, True)
retvaltype = DmisCommand.PutText("$$", COMMENT_TYPE, 0)
retvaltype = DmisCommand.SetToggleString (1, OUTPUT_TYPE, 0)
retvaltype = DmisCommand.PutText("|", COMMENT_FIELD, 1)
retvaltype = DmisCommand.PutText("||", COMMENT_FIELD, 2)
retvaltype = DmisCommand.PutText("|||-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|", COMMENT_FIELD, 3)
DmisCommand.ReDraw

  Set DmisCommand = DmisCommands.Add(CONST_ALN_LINE, TRUE)
    DmisCommand.Marked = TRUE
    retval = DmisCommand.PutText ("-0.5", THEO_SX, 0)
    retval = DmisCommand.PutText ("0", THEO_SY, 0)
    retval = DmisCommand.PutText ("0", THEO_SZ, 0)
    retval = DmisCommand.PutText ("0.5", THEO_EX, 0)
    retval = DmisCommand.PutText ("0", THEO_EY, 0)
    retval = DmisCommand.PutText ("0", THEO_EZ, 0)
    retval = DmisCommand.PutText ("1", THEO_I, 0)
    retval = DmisCommand.PutText ("0", THEO_J, 0)
    retval = DmisCommand.PutText ("0", THEO_K, 0)
    retval = DmisCommand.PutText ("0", SURFVEC_I, 0)
    retval = DmisCommand.PutText ("0", SURFVEC_J, 0)
    retval = DmisCommand.PutText ("0", SURFVEC_K, 0)
    retval = DmisCommand.PutText ("1", THEO_LENGTH, 0)
    retval = DmisCommand.PutText ("-0.5", MEAS_SX, 0)
    retval = DmisCommand.PutText ("0", MEAS_SY, 0)
    retval = DmisCommand.PutText ("0", MEAS_SZ, 0)
    retval = DmisCommand.PutText ("0.5", MEAS_EX, 0)
    retval = DmisCommand.PutText ("0", MEAS_EY, 0)
    retval = DmisCommand.PutText ("0", MEAS_EZ, 0)
    retval = DmisCommand.PutText ("1", MEAS_I, 0)
    retval = DmisCommand.PutText ("0", MEAS_J, 0)
    retval = DmisCommand.PutText ("0", MEAS_K, 0)
    retval = DmisCommand.PutText ("1", MEAS_LENGTH, 0)
    retval = DmisCommand.PutText ("3DLINE_X_AXIS_OF_" + CurAlignName, ID, 0)
    retval = DmisCommand.SetToggleString (1, COORD_TYPE, 0)
    retval = DmisCommand.SetToggleString (1, BOUND_TYPE, 0)
    retval = DmisCommand.SetToggleString (2, AXIS, 0)
    retval = DmisCommand.SetToggleString (2, USER_DEFINED_THEOS, 0)
  
  Set DmisCommand = DmisCommands.Add(CONST_ALN_LINE, TRUE)
    DmisCommand.Marked = TRUE
    retval = DmisCommand.PutText ("0", THEO_SX, 0)
    retval = DmisCommand.PutText ("-0.5", THEO_SY, 0)
    retval = DmisCommand.PutText ("0", THEO_SZ, 0)
    retval = DmisCommand.PutText ("0", THEO_EX, 0)
    retval = DmisCommand.PutText ("0.5", THEO_EY, 0)
    retval = DmisCommand.PutText ("0", THEO_EZ, 0)
    retval = DmisCommand.PutText ("0", THEO_I, 0)
    retval = DmisCommand.PutText ("1", THEO_J, 0)
    retval = DmisCommand.PutText ("0", THEO_K, 0)
    retval = DmisCommand.PutText ("0", SURFVEC_I, 0)
    retval = DmisCommand.PutText ("0", SURFVEC_J, 0)
    retval = DmisCommand.PutText ("0", SURFVEC_K, 0)
    retval = DmisCommand.PutText ("1", THEO_LENGTH, 0)
    retval = DmisCommand.PutText ("0", MEAS_SX, 0)
    retval = DmisCommand.PutText ("-0.5", MEAS_SY, 0)
    retval = DmisCommand.PutText ("0", MEAS_SZ, 0)
    retval = DmisCommand.PutText ("0", MEAS_EX, 0)
    retval = DmisCommand.PutText ("0.5", MEAS_EY, 0)
    retval = DmisCommand.PutText ("0", MEAS_EZ, 0)
    retval = DmisCommand.PutText ("0", MEAS_I, 0)
    retval = DmisCommand.PutText ("1", MEAS_J, 0)
    retval = DmisCommand.PutText ("0", MEAS_K, 0)
    retval = DmisCommand.PutText ("1", MEAS_LENGTH, 0)
    retval = DmisCommand.PutText ("3DLINE_Y_AXIS_OF_" + CurAlignName, ID, 0)
    retval = DmisCommand.SetToggleString (1, COORD_TYPE, 0)
    retval = DmisCommand.SetToggleString (1, BOUND_TYPE, 0)
    retval = DmisCommand.SetToggleString (3, AXIS, 0)
    retval = DmisCommand.SetToggleString (2, USER_DEFINED_THEOS, 0)
  
  Set DmisCommand = DmisCommands.Add(CONST_ALN_LINE, TRUE)
    DmisCommand.Marked = TRUE
    retval = DmisCommand.PutText ("0", THEO_SX, 0)
    retval = DmisCommand.PutText ("0", THEO_SY, 0)
    retval = DmisCommand.PutText ("-0.5", THEO_SZ, 0)
    retval = DmisCommand.PutText ("0", THEO_EX, 0)
    retval = DmisCommand.PutText ("0", THEO_EY, 0)
    retval = DmisCommand.PutText ("0.5", THEO_EZ, 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 ("0", SURFVEC_I, 0)
    retval = DmisCommand.PutText ("0", SURFVEC_J, 0)
    retval = DmisCommand.PutText ("1", THEO_LENGTH, 0)
    retval = DmisCommand.PutText ("0", MEAS_SX, 0)
    retval = DmisCommand.PutText ("0", MEAS_SY, 0)
    retval = DmisCommand.PutText ("-0.5", MEAS_SZ, 0)
    retval = DmisCommand.PutText ("0", MEAS_EX, 0)
    retval = DmisCommand.PutText ("0", MEAS_EY, 0)
    retval = DmisCommand.PutText ("0.5", MEAS_EZ, 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 ("1", MEAS_LENGTH, 0)
    retval = DmisCommand.PutText ("3DLINE_Z_AXIS_OF_" + CurAlignName, ID, 0)
    retval = DmisCommand.SetToggleString (1, COORD_TYPE, 0)
    retval = DmisCommand.SetToggleString (1, BOUND_TYPE, 0)
    retval = DmisCommand.SetToggleString (1, AXIS, 0)
    retval = DmisCommand.SetToggleString (2, USER_DEFINED_THEOS, 0)

  Set DmisCommand = DmisCommands.Add(CONST_ORIG_POINT, TRUE)
    DmisCommand.Marked = TRUE
    retval = DmisCommand.PutText ("0", THEO_X, 0)
    retval = DmisCommand.PutText ("0", THEO_Y, 0)
    retval = DmisCommand.PutText ("0", 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 ("0", MEAS_X, 0)
    retval = DmisCommand.PutText ("0", MEAS_Y, 0)
    retval = DmisCommand.PutText ("0", 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 ("ORIGIN_POINT_OF_" + CurAlignName, ID, 0)
    retval = DmisCommand.SetToggleString (1, COORD_TYPE, 0)
    retval = DmisCommand.SetToggleString (2, USER_DEFINED_THEOS, 0)

Set DmisCommand = DmisCommands.Add(SET_COMMENT, True)
retvaltype = DmisCommand.PutText("$$", COMMENT_TYPE, 0)
retvaltype = DmisCommand.SetToggleString (1, OUTPUT_TYPE, 0)
retvaltype = DmisCommand.PutText("|||-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|", COMMENT_FIELD, 1)
retvaltype = DmisCommand.PutText("||", COMMENT_FIELD, 2)
retvaltype = DmisCommand.PutText("|", COMMENT_FIELD, 3)
DmisCommand.ReDraw


End Sub


Here's the result in PC-DMIS, put in after I made an alignment named ALN4:
$$ NO,
            |
            ||
            |||-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
3DLINE_X_AXIS_OF_ALN4=FEAT/LINE,CARTESIAN,UNBOUNDED,YES
            THEO/<-0.5,0,0>,<1,0,0>
            ACTL/<-0.5,0,0>,<1,0,0>
            CONSTR/LINE,ALIGN,1,XPLUS
3DLINE_Y_AXIS_OF_ALN4=FEAT/LINE,CARTESIAN,UNBOUNDED,YES
            THEO/<0,-0.5,0>,<0,1,0>
            ACTL/<0,-0.5,0>,<0,1,0>
            CONSTR/LINE,ALIGN,1,YPLUS
3DLINE_Z_AXIS_OF_ALN4=FEAT/LINE,CARTESIAN,UNBOUNDED,YES
            THEO/<0,0,-0.5>,<0,0,1>
            ACTL/<0,0,-0.5>,<0,0,1>
            CONSTR/LINE,ALIGN,1,ZPLUS
ORIGIN_POINT_OF_ALN4=FEAT/POINT,CARTESIAN,YES
            THEO/<0,0,0>,<0,0,1>
            ACTL/<0,0,0>,<0,0,1>
            CONSTR/POINT,ORIGIN
$$ NO,
            |||-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
            ||
            |
Parents Reply Children
No Data