hexagon logo

VB.NET for PC DMIS

I am new to using PCDMIS.

ASSIGN/V3=SYSTEMDATE("MM'/'dd'/'yy")
ASSIGN/V4=SYSTEMTIME("hh:mm:ss tt")
ASSIGN/V5=DIST1.DEV
ASSIGN/V6=DIST2.DEV
ASSIGN/V7=DIST3.DEV
ASSIGN/V8=DIST4.DEV
ASSIGN/V9=DIST5.DEV
ASSIGN/V10=DIST9.DEV
ASSIGN/V11=DIST10.DEV
ASSIGN/V12=DIST6.DEV
ASSIGN/V13=DIST7.DEV
ASSIGN/V14=DIST11.DEV
ASSIGN/V15=DIST12.DEV
ASSIGN/V16=DIST8.DEV
ASSIGN/V17=DIST19.DEV
ASSIGN/V18=LOC1.X.DEV
ASSIGN/V19=LOC1.Y.DEV
ASSIGN/V20=LOC2.X.DEV
ASSIGN/V21=LOC2.Y.DEV
ASSIGN/V22=LOC3.X.DEV
ASSIGN/V23=LOC3.Y.DEV
ASSIGN/V24=LOC4.X.DEV
ASSIGN/V25=LOC4.Y.DEV
ASSIGN/V26=LOC5.X.DEV
ASSIGN/V27=LOC5.Y.DEV
ASSIGN/V28=LOC6.X.DEV
ASSIGN/V29=LOC6.Y.DEV
ASSIGN/V30=LOC7.X.DEV
ASSIGN/V31=LOC7.Y.DEV
ASSIGN/V32=LOC8.X.DEV
ASSIGN/V33=LOC8.Y.DEV
ASSIGN/V34=LOC9.X.DEV
ASSIGN/V35=LOC9.Y.DEV
ASSIGN/V36=LOC10.X.DEV
ASSIGN/V37=LOC10.Y.DEV
ASSIGN/V38=LOC16.X.DEV
ASSIGN/V39=LOC16.Y.DEV
ASSIGN/V40=LOC11.X.DEV
ASSIGN/V41=LOC11.Y.DEV
ASSIGN/V42=DIST13.DEV
ASSIGN/V43=DIST14.DEV
ASSIGN/V44=DIST15.DEV
ASSIGN/V1=DIST16.DEV
ASSIGN/V45=DIST17.DEV
ASSIGN/V46=DIST18.DEV
ASSIGN/V47=LOC12.X.DEV
ASSIGN/V48=LOC12.Y.DEV
ASSIGN/V49=LOC13.X.DEV
ASSIGN/V50=LOC13.Y.DEV
ASSIGN/V51=LOC14.X.DEV
ASSIGN/V52=LOC14.Y.DEV
ASSIGN/V53=LOC15.X.DEV
ASSIGN/V54=LOC15.Y.DEV
ASSIGN/V97="Date"+","+"Time"+","+"1.60 .190-32"+","+"1.60 5/16-24"+","+"1.00 Spot"+","+".8701 Spool"+","+".8701 5/16-24"
ASSIGN/V98=".8701 .452"+","+".8701 1/2-20"+","+"1.7902 Spool"+","+"1.7902 5/16-24"+","+"1.7902 .750"+","+"1.7902 7/8-14"
ASSIGN/V99=".6496 Spot"+","+"3.7780 Spot"+","+".2165 #1 x"+","+".2165 #1 y"+","+".2165 #2 x"+","+".2165 #2 y"
ASSIGN/V100=".2165 #3 x"+","+".2165 #3 y"+","+".2165 #4 x"+","+".2165 #4 y"+","+".156 #1 x"+","+".156 #1 y"
ASSIGN/V101=".156 #2 x"+","+".156 #2 y"+","+"Spot #6 x"+","+"Spot #6 y"+","+"Spot #5 x"+","+"Spot #5 y"
ASSIGN/V102="Spot #7 x"+","+"Spot #7 y"+","+".1256 x"+","+".1256 y"+","+".272 x"+","+".272 y"+","+"5/16-24 #1 x"
ASSIGN/V103="5/16-24 #1 y"+","+"TP tol (2x)"+","+".8701 7/16-20 #1"+","+".8701 7/16-20 #2"+","+"1.60 7/16-20 #1"+","+"1.60 7/16-20 #2"
ASSIGN/V104=".752 Spot Front"+","+".752 Spot Back"+","+"Spot #1 x"+","+"Spot #1 y"+","+"Spot #2 x"
ASSIGN/V105="Spot #2 y"+","+"Spot #3 x"+","+"Spot #3 y"+","+"Spot #4 x"+","+"Spot #4 y"
ASSIGN/V109=V3+","+V4+","+V5+","+V6+","+V7+","+V8+","+V9+","+V10+","+V11+","+V12+","+V13+","+V14+","+V15
ASSIGN/V110=V16+","+V17+","+V18+","+V19+","+V20+","+V21+","+V22+","+V23+","+V24+","+V25+","+V26+","+V27
ASSIGN/V111=V28+","+V29+","+V30+","+V31+","+V32+","+V33+","+V34+","+V35+","+V36+","+V37+","+V38+","+V39
ASSIGN/V112=V40+","+V41+","+V2+","+V42+","+V43+","+V44+","+V1+","+V45+","+V46+","+V47+","+V48+","+V49+","+V50+","+V51
ASSIGN/V113=V52+","+V53+","+V54

above is a portion of code.

Dim app As PCDLRN.Application
Dim cmds As Object
Dim cmd As PCDLRN.Command
Dim part As PCDLRN.PartProgram
Dim data As PCDLRN.ReportData
Dim rWin As PCDLRN.ReportWindow

Dim s As String = ""

app = GetObject("", "PCDLRN.Application.12.1")
app.Visible = True
part = app.ActivePartProgram
cmds = part.Commands

Dim nCommands As String = part.Commands.Count.ToString
Dim val As String = part.GetVariableValue("PLN1").StringValue.ToString

MessageBox.Show("Value is -- " & val & "--" & nCommands)

For Each cmd In cmds
'Dim assignName As Object = cmd.GetText(PCDLRN.ENUM_FIELD_TYPES.DEST_EXPR, 0)
'Console.WriteLine(assignName.ToString)
Console.WriteLine(cmd.TypeDescription.ToString & " " & cmd.Type & " " & cmd.GetFieldValue())
'Console.WriteLine(part.GetVariableValue(assignName).CommandValue.ToString)
Next

'rWin = part.ReportWindow
'data = rWin.Pages

'Dim dat As String = data.GetValue(PCDLRN.ENUM_FIELD_TYPES.AXIS_NOMINAL, 1107)
'MessageBox.Show(dat)

and above is the VB.NET code I am using to access CMM code. I want to get all the values inside ASSIGN/x=y commands eg: ASSIGN/V113=V52+","+V53+","+V54. Can anyone share code to get these values ? I am trying to use Command.GetFieldValue(PCDLRN ENUM FIELD TYPE, TYPE INDEX ) , I do not understand what are these two parameters inside the GetFieldValue method ? Any help will be appreciated.
Parents
  • Private Sub openCMMFile(ByVal index As String)
    
            // some sql code goes here
             .
             .
            //
    
            Dim tempfiledirectory As String = ""
            tempfiledirectory = Path.Combine(Application.StartupPath, "TempFolder")
            tempfiledirectory = Path.Combine(tempfiledirectory, tbl.Rows(0)("filename"))
    
            Dim fs As FileStream = New FileStream(tempfiledirectory, FileMode.Create)
            Dim bytes As Byte() = CType(tbl.Rows(0)("Blob_Data"), Byte())
            fs.Write(bytes, 0, bytes.Length)
            fs.Close()
    
            Dim app As PCDLRN.Application
            Dim partPrograms As PCDLRN.PartPrograms
            Try
                app = CreateObject("PCDLRN.Application")
                app.OperatorMode = True
                app.Visible = True
                partPrograms = app.PartPrograms
                partPrograms.Open(tempfiledirectory, "")
                app.ActivePartProgram.EXECUTE()
                app.ActivePartProgram.Close()
                File.Delete(tempfiledirectory)
            Catch ex As Exception
                MsgBox("PcDmis cannot connect. " & vbNewLine & "(Error - " & ex.Message & ")" & vbNewLine & ex.ToString, MsgBoxStyle.Critical)
            End Try
        End Sub


    I use the above code to get CMM prg file from sql and launch PCDMIS in operator mode and execute the program. This runs fine on simulation but on actual system connect to CMM it thorws error on setting PCDMIS to operator mode. Is my code correct ? I am not sure if it is my code or some computer settings that i should fix
Reply
  • Private Sub openCMMFile(ByVal index As String)
    
            // some sql code goes here
             .
             .
            //
    
            Dim tempfiledirectory As String = ""
            tempfiledirectory = Path.Combine(Application.StartupPath, "TempFolder")
            tempfiledirectory = Path.Combine(tempfiledirectory, tbl.Rows(0)("filename"))
    
            Dim fs As FileStream = New FileStream(tempfiledirectory, FileMode.Create)
            Dim bytes As Byte() = CType(tbl.Rows(0)("Blob_Data"), Byte())
            fs.Write(bytes, 0, bytes.Length)
            fs.Close()
    
            Dim app As PCDLRN.Application
            Dim partPrograms As PCDLRN.PartPrograms
            Try
                app = CreateObject("PCDLRN.Application")
                app.OperatorMode = True
                app.Visible = True
                partPrograms = app.PartPrograms
                partPrograms.Open(tempfiledirectory, "")
                app.ActivePartProgram.EXECUTE()
                app.ActivePartProgram.Close()
                File.Delete(tempfiledirectory)
            Catch ex As Exception
                MsgBox("PcDmis cannot connect. " & vbNewLine & "(Error - " & ex.Message & ")" & vbNewLine & ex.ToString, MsgBoxStyle.Critical)
            End Try
        End Sub


    I use the above code to get CMM prg file from sql and launch PCDMIS in operator mode and execute the program. This runs fine on simulation but on actual system connect to CMM it thorws error on setting PCDMIS to operator mode. Is my code correct ? I am not sure if it is my code or some computer settings that i should fix
Children
No Data