社区活动 技术论坛 VB脚本问题,请教!
VB脚本问题,请教!
2014-08-16 19:25 165 0 4
[font=Arial]今天写了一个脚本,通过在EXCEL的行中写出需要输出尺寸的标号,让PCDLRN将EXCEL读出的[/font] [font=Arial]标号对应的尺寸测量值输出到EXCEL中,程序见下面。在跑的时候发现有一个问题:[/font] [font=Arial] [/font] [font=Arial]Command.DimensionCommand这个命令可以输出传统评价下的线轮廓度,但是在输出带有FCF[/font] [font=Arial]特征控制框的线轮廓度时,Compile的时候通不过,请问各位高手如何解决这个问题,是不是要用[/font] [font=Arial]其他的对象去解决呢,谢谢!Looking forward to All your reply![/font] [font=Arial] [/font] [font=Arial] [/font] [font=Arial]Sub Main()[/font] [font=Arial] [/font] [font=Arial]'Declare variables[/font] [font=Arial] [/font] [font=Arial]Dim App As Object[/font] [font=Arial]Dim Part As Object[/font] [font=Arial]Dim Cmds As Object[/font] [font=Arial]Dim Cmd As Object[/font] [font=Arial]Dim DimCmd As Object[/font] [font=Arial]Dim STR, EDR, STC As Integer[/font] [font=Arial]Dim ID(1 To 100), NewID As String[/font] [font=Arial] [/font] [font=Arial]STR = 2[/font] [font=Arial] [/font] [font=Arial]'STR refers to StartID of the Row,suppose we start at 2nd row[/font] [font=Arial]'EDR refers to EndID of the Row[/font] [font=Arial]'STC refers to StartID of the colum[/font] [font=Arial]'ID() refers to the postion of dimension in EXCEL[/font] [font=Arial]'NewID is a process variable for finding rows and colums[/font] [font=Arial] [/font] [font=Arial] [/font] [font=Arial]Dim xlApp As Object[/font] [font=Arial]Dim xlWorkbooks As Object[/font] [font=Arial]Dim xlWorkbook As Object[/font] [font=Arial]Dim xlWorksheet As Object[/font] [font=Arial] [/font] [font=Arial]Set App = CreateObject("PCDLRN.Application")[/font] [font=Arial]Set Part = App.ActivePartProgram[/font] [font=Arial]Set Cmds = Part.Commands[/font] [font=Arial] [/font] [font=Arial]Set xlApp = CreateObject("EXCEL.Application")[/font] [font=Arial]Set xlWorkbooks = xlApp.Workbooks[/font] [font=Arial]Set xlWorkbook = xlWorkbook.Open("C:\Users\Administrator\TEST.xlsx")[/font] [font=Arial]Set xlWorksheet = xlWorkbook.Worksheets.Item(1)[/font] [font=Arial] [/font] [font=Arial]'Get ID of the last dimension in 1st colum in EXCEL[/font] [font=Arial] [/font] [font=Arial]EDR = 1[/font] [font=Arial] [/font] [font=Arial]NewID = xlWorksheet.Cells(EDR, 1).Value[/font] [font=Arial]Do While NewID <> "" And EDR < 100[/font] [font=Arial] EDR = EDR + 1[/font] [font=Arial] NewID = xlWorksheet.Cells(EDR, 1).Value[/font] [font=Arial]Loop[/font] [font=Arial] [/font] [font=Arial]EDR = EDR - 1[/font] [font=Arial] [/font] [font=Arial]'Get the ID of the colum which 2nd row is empty[/font] [font=Arial] [/font] [font=Arial]STC = 1[/font] [font=Arial]NewID = xlWorksheet.Cells(STR, STC).Value[/font] [font=Arial]Do While NewID <> "" And STC < 1000[/font] [font=Arial] STC = STC + 1[/font] [font=Arial] NewID = xlWorksheet.Cells(STR, STC).Value[/font] [font=Arial]Loop[/font] [font=Arial] [/font] [font=Arial]'Get dimension data from PCDLRN and output to EXCEL[/font] [font=Arial] [/font] [font=Arial]For i = STR To EDR[/font] [font=Arial] ID(i) = xlWorksheet.Cells(i, 1).Value[/font] [font=Arial] Set Cmd = Cmds.Item(ID(i))[/font] [font=Arial] Set DimCmd = Cmd.DimensionCommand[/font] [font=Arial] xlWorksheet.Cells(i, STC).Value = DimCmd.Measured[/font] [font=Arial]Next i[/font] [font=Arial] [/font] [font=Arial]xlApp.Visible = True[/font] [font=Arial] [/font] [font=Arial]'Release objects[/font] [font=Arial] [/font] [font=Arial]Set xlWorksheet = Nothing[/font] [font=Arial]xlWorkbook.Save[/font] [font=Arial]xlWorkbook.Close[/font] [font=Arial]Set xlWorkbook = Nothing[/font] [font=Arial]xlWorkbooks.Close[/font] [font=Arial]Set xlWorkbooks = Nothing[/font] [font=Arial]xlApp.Quit[/font] [font=Arial]Set xlApp = Nothing[/font] [font=Arial] [/font] [font=Arial]End Sub[/font]
我要回复

登陆后才能评论

登录
所有回贴(4)
[font=Arial]今天写了一个脚本,通过在EXCEL的行中写出需要输出尺寸的标号,让PCDLRN将EXCEL读出的[/font] [font=Arial]标号对应的尺寸测量值输出到EXCEL中,程序见下面。在跑的时候发现有一个问题:[/font] [font=Arial] [/font] [font=Arial]Command.DimensionCommand这个命令可以输出传统评价下的线轮廓度,但是在输出带有FCF[/font] [font=Arial]特征控制框的线轮廓度时,Compile的时候通不过,请问各位高手如何解决这个问题,是不是要用[/font] [font=Arial]其他的对象去解决呢,谢谢!Looking forward to All your reply![/font] [font=Arial] [/font] [font=Arial] [/font] [font=Arial]Sub Main()[/font] [font=Arial] [/font] [font=Arial]'Declare variables[/font] [font=Arial] [/font] [font=Arial]Dim App As Object[/font] [font=Arial]Dim Part As Object[/font] [font=Arial]Dim Cmds As Object[/font] [font=Arial]Dim Cmd As Object[/font] [font=Arial]Dim DimCmd As Object[/font] [font=Arial]Dim STR, EDR, STC As Integer[/font] [font=Arial]Dim ID(1 To 100), NewID As String[/font] [font=Arial] [/font] [font=Arial]STR = 2[/font] [font=Arial] [/font] [font=Arial]'STR refers to StartID of the Row,suppose we start at 2nd row[/font] [font=Arial]'EDR refers to EndID of the Row[/font] [font=Arial]'STC refers to StartID of the colum[/font] [font=Arial]'ID() refers to the postion of dimension in EXCEL[/font] [font=Arial]'NewID is a process variable for finding rows and colums[/font] [font=Arial] [/font] [font=Arial] [/font] [font=Arial]Dim xlApp As Object[/font] [font=Arial]Dim xlWorkbooks As Object[/font] [font=Arial]Dim xlWorkbook As Object[/font] [font=Arial]Dim xlWorksheet As Object[/font] [font=Arial] [/font] [font=Arial]Set App = CreateObject("PCDLRN.Application")[/font] [font=Arial]Set Part = App.ActivePartProgram[/font] [font=Arial]Set Cmds = Part.Commands[/font] [font=Arial] [/font] [font=Arial]Set xlApp = CreateObject("EXCEL.Application")[/font] [font=Arial]Set xlWorkbooks = xlApp.Workbooks[/font] [font=Arial]Set xlWorkbook = xlWorkbook.Open("C:\Users\Administrator\TEST.xlsx")[/font] [font=Arial]Set xlWorksheet = xlWorkbook.Worksheets.Item(1)[/font] [font=Arial] [/font] [font=Arial]'Get ID of the last dimension in 1st colum in EXCEL[/font] [font=Arial] [/font] [font=Arial]EDR = 1[/font] [font=Arial] [/font] [font=Arial]NewID = xlWorksheet.Cells(EDR, 1).Value[/font] [font=Arial]Do While NewID <> "" And EDR < 100[/font] [font=Arial] EDR = EDR + 1[/font] [font=Arial] NewID = xlWorksheet.Cells(EDR, 1).Value[/font] [font=Arial]Loop[/font] [font=Arial] [/font] [font=Arial]EDR = EDR - 1[/font] [font=Arial] [/font] [font=Arial]'Get the ID of the colum which 2nd row is empty[/font] [font=Arial] [/font] [font=Arial]STC = 1[/font] [font=Arial]NewID = xlWorksheet.Cells(STR, STC).Value[/font] [font=Arial]Do While NewID <> "" And STC < 1000[/font] [font=Arial] STC = STC + 1[/font] [font=Arial] NewID = xlWorksheet.Cells(STR, STC).Value[/font] [font=Arial]Loop[/font] [font=Arial] [/font] [font=Arial]'Get dimension data from PCDLRN and output to EXCEL[/font] [font=Arial] [/font] [font=Arial]For i = STR To EDR[/font] [font=Arial] ID(i) = xlWorksheet.Cells(i, 1).Value[/font] [font=Arial] Set Cmd = Cmds.Item(ID(i))[/font] [font=Arial] Set DimCmd = Cmd.DimensionCommand[/font] [font=Arial] xlWorksheet.Cells(i, STC).Value = DimCmd.Measured[/font] [font=Arial]Next i[/font] [font=Arial] [/font] [font=Arial]xlApp.Visible = True[/font] [font=Arial] [/font] [font=Arial]'Release objects[/font] [font=Arial] [/font] [font=Arial]Set xlWorksheet = Nothing[/font] [font=Arial]xlWorkbook.Save[/font] [font=Arial]xlWorkbook.Close[/font] [font=Arial]Set xlWorkbook = Nothing[/font] [font=Arial]xlWorkbooks.Close[/font] [font=Arial]Set xlWorkbooks = Nothing[/font] [font=Arial]xlApp.Quit[/font] [font=Arial]Set xlApp = Nothing[/font] [font=Arial] [/font] [font=Arial]End Sub[/font]
2014-08-16 19:25
回复
取消
提交
Set xlWorkbook = xlWorkbook.Open("C:\Users\Administrator\TEST.xlsx") Open前面少了个s,程序是在上班弄的 Compile和运行都没问题,因为工作原因没能弄出来,所以是下班回来自己重新写的
2014-08-16 19:52
回复
取消
提交
哎,都没人回复的,Q群的人帮忙解决了, FCF的输出用retval = Cmd.GetData(Line2_Meas, 1)返回测量值
2014-08-18 19:22
回复
取消
提交
两边都有看到,这边就不多说了
2014-08-19 22:58
回复
取消
提交
在线咨询
关注我们

海克斯康制造智能

电话咨询
400-6580-400

热线电话(工作时间8:30-17:30)

关注我们 电话咨询 在线咨询

海克斯康制造智能