dage23wo 发表于 2015-6-27 14:46:47

在VB中遇到的问题

我在网上找到了一个关于VB调用CAD图库的问题,然后源码打开后,显示装配有问题。现把源码附上,打开图的时候出现问题。请各位大神看看是什么问题。谢谢啦。每次打开是总是出现“对象变量或with块变量未设置”
'各带总图装配
Private Sub Command6_Click()
copy_move.yc_1.Text = yaolucanshu.yc_1.Text
copy_move.yc_2.Text = yaolucanshu.yc_2.Text
copy_move.yc_3.Text = yaolucanshu.yc_3.Text
copy_move.sc_1.Text = yaolucanshu.sc_1.Text
copy_move.sc_2.Text = yaolucanshu.sc_2.Text
copy_move.lc_1.Text = yaolucanshu.lc_1.Text
copy_move.lc_2.Text = yaolucanshu.lc_2.Text
copy_move.lc_3.Text = yaolucanshu.lc_3.Text
copy_move.mjyc.Caption = Val(yaolucanshu_1.mjc.Text) + Val(yaolucanshu_1.jlc.Text)
Dim yqc As Double, yzc As Double, sqc As Double, jlc As Double, hlc As Double
    yqc = 232 * Val(yaolucanshu.yc_1.Text)
    yzc = 232 * Val(yaolucanshu.yc_2.Text)
    sqc = 232 * Val(yaolucanshu.sc_1.Text)
    jlc = 232 * Val(yaolucanshu.lc_1.Text)
    hlc = 232 * Val(yaolucanshu.lc_2.Text)
Dim objCurDoc As AcadDocument
Dim objNewDoc As AcadDocument
Dim objLastDoc As AcadDocument
Select Case True
Case Option1(0).Value
   AutoCAD_Appliaction
' 打开第一张图
    Set objCurDoc = acadapp.Documents.Open(App.Path & "\Gallery\预热带前段.dwg")
    copy_moveSset "NEW1", 232, Val(copy_move.yc_1.Text), "0"
' 打开一个新图形
    Set objNewDoc = acadapp.Documents.Open(App.Path & "\Gallery\预热带中段.dwg")
    copy_moveSset "NEW1", 232, Val(copy_move.yc_2.Text), "0"
    moveSset "NEW1", yqc
'打开最后一个图形
    Set objLastDoc = acadapp.Documents.Open(App.Path & "\Gallery\预热带后段.dwg")
    copy_moveSset "NEW1", 232, Val(copy_move.yc_3.Text), "0"
    moveSset "NEW1", yzc + yqc
   Set objNewDoc = acadapp.ActiveDocument
' 将外部图形的实体复制到当前图形
   Set ssetobj = CreateSelectionSet
   ssetobj.Select acSelectionSetAll
acadapp.ActiveDocument.CopyObjects ssArray(ssetobj), objCurDoc.ModelSpace
objCurDoc.Regen acAllViewports
' 关闭打开的图形
objNewDoc.Close (False)
   Set objLastDoc = acadapp.ActiveDocument
   Set ssetobj = CreateSelectionSet
   ssetobj.Select acSelectionSetAll
   acadapp.ActiveDocument.CopyObjects ssArray(ssetobj), objCurDoc.ModelSpace
   objCurDoc.Regen acAllViewports
   objLastDoc.Close (False)

Case Option1(1).Value
      AutoCAD_Appliaction
' 打开第一张图
    Set objCurDoc = acadapp.Documents.Open(App.Path & "\Gallery\烧成带前段.dwg")
    copy_moveSset "NEW1", 232, Val(copy_move.sc_1.Text), "0"
' 打开一个新图形
    Set objNewDoc = acadapp.Documents.Open(App.Path & "\Gallery\烧成带保温段.dwg")
    copy_moveSset "NEW1", 183, Val(copy_move.sc_2.Text), "0"
    moveSset "NEW1", sqc

   Set objNewDoc = acadapp.ActiveDocument
' 将外部图形的实体复制到当前图形
   Set ssetobj = CreateSelectionSet
   ssetobj.Select acSelectionSetAll
acadapp.ActiveDocument.CopyObjects ssArray(ssetobj), objCurDoc.ModelSpace
objCurDoc.Regen acAllViewports
' 关闭打开的图形
objNewDoc.Close (False)

Case Option1(2).Value
AutoCAD_Appliaction
' 打开第一张图
    Set objCurDoc = acadapp.Documents.Open(App.Path & "\Gallery\急冷段.dwg")
    copy_moveSset "NEW1", 232, Val(copy_move.lc_1.Text) - 1, "0"
' 打开一个新图形
    Set objNewDoc = acadapp.Documents.Open(App.Path & "\Gallery\缓冷段.dwg")
    copy_moveSset "NEW1", 232, Val(copy_move.lc_2.Text), "0"
    moveSset "NEW1", jlc
'打开最后一个图形
    Set objNewDoc = acadapp.Documents.Open(App.Path & "\Gallery\快冷段.dwg")
    copy_moveSset "NEW1", 232, Val(copy_move.lc_3.Text), "0"
    moveSset "NEW1", jlc + hlc
   Set objNewDoc = acadapp.ActiveDocument
' 将外部图形的实体复制到当前图形
   Set ssetobj = CreateSelectionSet
   ssetobj.Select acSelectionSetAll
acadapp.ActiveDocument.CopyObjects ssArray(ssetobj), objCurDoc.ModelSpace
objCurDoc.Regen acAllViewports
' 关闭打开的图形
   objNewDoc.Close (False)
   Set objLastDoc = acadapp.ActiveDocument
   Set ssetobj = CreateSelectionSet
   ssetobj.Select acSelectionSetAll
   acadapp.ActiveDocument.CopyObjects ssArray(ssetobj), objCurDoc.ModelSpace
   objCurDoc.Regen acAllViewports
   objLastDoc.Close (False)
End Select
End Sub
页: [1]
查看完整版本: 在VB中遇到的问题