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, |||-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-| || |