hexagon logo

VB Script, Using PutText to enter an expression

I want to write a script that can modify the THEO and TARG values of a feature to be an expression, such as "1+0" or "2*VX+4". So far I can change the values to other values but if I give it an expression it always seems to evaluate it first and insert the result rather than the expression itself.

Not sure if what I want to do is possible but after scouring the forum for any examples I am sure that if it is possible someone on here will know how to do it.
Parents
  • It works on Vector Points....need to wrap it up and tweak to use on all PcD featuers.

    Private Sub Values2Expression()
            Dim PCDApp As PCDLRN.Application
            Dim PCDPart As PCDLRN.PartProgram
            Dim PCDCommands As Object
            Dim cmd As PCDLRN.Command
            Dim editWin As PCDLRN.EditWindow
            Dim pNumTHEO As Integer = 4
            Dim pNumVECT As Integer = 4
            Dim pNumTARG As Integer = 4
    
            PCDApp = CreateObject("PCDLRN.Application")
            PCDPart = PCDApp.ActivePartProgram
            PCDCommands = PCDPart.Commands
            editWin = PCDPart.EditWindow
    
            Dim algnID As String = ""
    
            For Each cmd In PCDCommands
                If cmd.IsAlignment And cmd.ID <> "" Then
                    algnID = cmd.ID
                End If
                If cmd.IsDCCFeature Or cmd.IsMeasuredFeature Then
                    If cmd.Marked Then
    
                        Dim oTHEO As PCDLRN.PointData = cmd.FeatureCommand.GetHit(1, PCDLRN.FHITDATA_TYPES.FHITDATA_CENTROID, PCDLRN.FDATA_DATASET.FDATA_THEO, PCDLRN.FDATA_COORDSYS.FDATA_PART, algnID, PCDLRN.ENUM_PLANE_TYPE.PLANE_TOP)
                        Dim oVECT As PCDLRN.PointData = cmd.FeatureCommand.GetHit(1, PCDLRN.FHITDATA_TYPES.FHITDATA_VECTOR, PCDLRN.FDATA_DATASET.FDATA_THEO, PCDLRN.FDATA_COORDSYS.FDATA_PART, algnID, PCDLRN.ENUM_PLANE_TYPE.PLANE_TOP)
                        Dim oTARG As PCDLRN.PointData = cmd.FeatureCommand.GetHit(1, PCDLRN.FHITDATA_TYPES.FHITDATA_CENTROID, PCDLRN.FDATA_DATASET.FDATA_TARG, PCDLRN.FDATA_COORDSYS.FDATA_PART, algnID, PCDLRN.ENUM_PLANE_TYPE.PLANE_TOP)
    
                        'Dim iMessage As String = "Feature Name: " & cmd.ID & vbCr & "Alignment Name: " & algnID _
                        '                         & vbCr & oTHEO.X.ToString("n" & pNumTHEO) & ", " & oTHEO.Y.ToString("n" & pNumTHEO) & ", " & oTHEO.Z.ToString("n" & pNumTHEO) _
                        '                         & vbCr & oVECT.I.ToString("n" & pNumVECT) & ", " & oVECT.J.ToString("n" & pNumVECT) & ", " & oVECT.K.ToString("n" & pNumVECT) _
                        '                         & vbCr & oTARG.X.ToString("n" & pNumTARG) & ", " & oTARG.Y.ToString("n" & pNumTARG) & ", " & oTARG.Z.ToString("n" & pNumTARG)
    
                        'MsgBox(iMessage)
    
                        '__________________________________________________________________________________
                        'Theoreticals to expression
                        cmd.SetExpression(oTHEO.X.ToString("n" & pNumTHEO) & "+0", PCDLRN.ENUM_FIELD_TYPES.THEO_X, 0)
                        cmd.SetExpression(oTHEO.Y.ToString("n" & pNumTHEO) & "+0", PCDLRN.ENUM_FIELD_TYPES.THEO_Y, 0)
                        cmd.SetExpression(oTHEO.Z.ToString("n" & pNumTHEO) & "+0", PCDLRN.ENUM_FIELD_TYPES.THEO_Z, 0)
                        '__________________________________________________________________________________
    
                        '__________________________________________________________________________________
                        'Theoretical Vectors to expression
                        cmd.SetExpression(oVECT.I.ToString("n" & pNumVECT) & "+0", PCDLRN.ENUM_FIELD_TYPES.THEO_I, 0)
                        cmd.SetExpression(oVECT.J.ToString("n" & pNumVECT) & "+0", PCDLRN.ENUM_FIELD_TYPES.THEO_J, 0)
                        cmd.SetExpression(oVECT.K.ToString("n" & pNumVECT) & "+0", PCDLRN.ENUM_FIELD_TYPES.THEO_K, 0)
                        '__________________________________________________________________________________
    
                        '__________________________________________________________________________________
                        'Targets to expression
                        cmd.SetExpression(oTHEO.X.ToString("n" & pNumTARG) & "+0", PCDLRN.ENUM_FIELD_TYPES.TARG_X, 0)
                        cmd.SetExpression(oTHEO.Y.ToString("n" & pNumTARG) & "+0", PCDLRN.ENUM_FIELD_TYPES.TARG_Y, 0)
                        cmd.SetExpression(oTHEO.Z.ToString("n" & pNumTARG) & "+0", PCDLRN.ENUM_FIELD_TYPES.TARG_Z, 0)
                        '__________________________________________________________________________________
    
                        '__________________________________________________________________________________
                        'Target Vectors to expression
                        cmd.SetExpression(oVECT.I.ToString("n" & pNumVECT) & "+0", PCDLRN.ENUM_FIELD_TYPES.TARG_I, 0)
                        cmd.SetExpression(oVECT.J.ToString("n" & pNumVECT) & "+0", PCDLRN.ENUM_FIELD_TYPES.TARG_J, 0)
                        cmd.SetExpression(oVECT.K.ToString("n" & pNumVECT) & "+0", PCDLRN.ENUM_FIELD_TYPES.TARG_K, 0)
                        '__________________________________________________________________________________
    
                    End If
                End If
            Next cmd
    
Reply
  • It works on Vector Points....need to wrap it up and tweak to use on all PcD featuers.

    Private Sub Values2Expression()
            Dim PCDApp As PCDLRN.Application
            Dim PCDPart As PCDLRN.PartProgram
            Dim PCDCommands As Object
            Dim cmd As PCDLRN.Command
            Dim editWin As PCDLRN.EditWindow
            Dim pNumTHEO As Integer = 4
            Dim pNumVECT As Integer = 4
            Dim pNumTARG As Integer = 4
    
            PCDApp = CreateObject("PCDLRN.Application")
            PCDPart = PCDApp.ActivePartProgram
            PCDCommands = PCDPart.Commands
            editWin = PCDPart.EditWindow
    
            Dim algnID As String = ""
    
            For Each cmd In PCDCommands
                If cmd.IsAlignment And cmd.ID <> "" Then
                    algnID = cmd.ID
                End If
                If cmd.IsDCCFeature Or cmd.IsMeasuredFeature Then
                    If cmd.Marked Then
    
                        Dim oTHEO As PCDLRN.PointData = cmd.FeatureCommand.GetHit(1, PCDLRN.FHITDATA_TYPES.FHITDATA_CENTROID, PCDLRN.FDATA_DATASET.FDATA_THEO, PCDLRN.FDATA_COORDSYS.FDATA_PART, algnID, PCDLRN.ENUM_PLANE_TYPE.PLANE_TOP)
                        Dim oVECT As PCDLRN.PointData = cmd.FeatureCommand.GetHit(1, PCDLRN.FHITDATA_TYPES.FHITDATA_VECTOR, PCDLRN.FDATA_DATASET.FDATA_THEO, PCDLRN.FDATA_COORDSYS.FDATA_PART, algnID, PCDLRN.ENUM_PLANE_TYPE.PLANE_TOP)
                        Dim oTARG As PCDLRN.PointData = cmd.FeatureCommand.GetHit(1, PCDLRN.FHITDATA_TYPES.FHITDATA_CENTROID, PCDLRN.FDATA_DATASET.FDATA_TARG, PCDLRN.FDATA_COORDSYS.FDATA_PART, algnID, PCDLRN.ENUM_PLANE_TYPE.PLANE_TOP)
    
                        'Dim iMessage As String = "Feature Name: " & cmd.ID & vbCr & "Alignment Name: " & algnID _
                        '                         & vbCr & oTHEO.X.ToString("n" & pNumTHEO) & ", " & oTHEO.Y.ToString("n" & pNumTHEO) & ", " & oTHEO.Z.ToString("n" & pNumTHEO) _
                        '                         & vbCr & oVECT.I.ToString("n" & pNumVECT) & ", " & oVECT.J.ToString("n" & pNumVECT) & ", " & oVECT.K.ToString("n" & pNumVECT) _
                        '                         & vbCr & oTARG.X.ToString("n" & pNumTARG) & ", " & oTARG.Y.ToString("n" & pNumTARG) & ", " & oTARG.Z.ToString("n" & pNumTARG)
    
                        'MsgBox(iMessage)
    
                        '__________________________________________________________________________________
                        'Theoreticals to expression
                        cmd.SetExpression(oTHEO.X.ToString("n" & pNumTHEO) & "+0", PCDLRN.ENUM_FIELD_TYPES.THEO_X, 0)
                        cmd.SetExpression(oTHEO.Y.ToString("n" & pNumTHEO) & "+0", PCDLRN.ENUM_FIELD_TYPES.THEO_Y, 0)
                        cmd.SetExpression(oTHEO.Z.ToString("n" & pNumTHEO) & "+0", PCDLRN.ENUM_FIELD_TYPES.THEO_Z, 0)
                        '__________________________________________________________________________________
    
                        '__________________________________________________________________________________
                        'Theoretical Vectors to expression
                        cmd.SetExpression(oVECT.I.ToString("n" & pNumVECT) & "+0", PCDLRN.ENUM_FIELD_TYPES.THEO_I, 0)
                        cmd.SetExpression(oVECT.J.ToString("n" & pNumVECT) & "+0", PCDLRN.ENUM_FIELD_TYPES.THEO_J, 0)
                        cmd.SetExpression(oVECT.K.ToString("n" & pNumVECT) & "+0", PCDLRN.ENUM_FIELD_TYPES.THEO_K, 0)
                        '__________________________________________________________________________________
    
                        '__________________________________________________________________________________
                        'Targets to expression
                        cmd.SetExpression(oTHEO.X.ToString("n" & pNumTARG) & "+0", PCDLRN.ENUM_FIELD_TYPES.TARG_X, 0)
                        cmd.SetExpression(oTHEO.Y.ToString("n" & pNumTARG) & "+0", PCDLRN.ENUM_FIELD_TYPES.TARG_Y, 0)
                        cmd.SetExpression(oTHEO.Z.ToString("n" & pNumTARG) & "+0", PCDLRN.ENUM_FIELD_TYPES.TARG_Z, 0)
                        '__________________________________________________________________________________
    
                        '__________________________________________________________________________________
                        'Target Vectors to expression
                        cmd.SetExpression(oVECT.I.ToString("n" & pNumVECT) & "+0", PCDLRN.ENUM_FIELD_TYPES.TARG_I, 0)
                        cmd.SetExpression(oVECT.J.ToString("n" & pNumVECT) & "+0", PCDLRN.ENUM_FIELD_TYPES.TARG_J, 0)
                        cmd.SetExpression(oVECT.K.ToString("n" & pNumVECT) & "+0", PCDLRN.ENUM_FIELD_TYPES.TARG_K, 0)
                        '__________________________________________________________________________________
    
                    End If
                End If
            Next cmd
    
Children
No Data