Private Sub cmdDraw_Click()
  Form1.Hide
  
  
  Dim swapp As Object
  Dim part As Object
  Set swapp = CreateObject("Sldworks.Application")                                  '创建或获取SldWorks对象
  Set part = swapp.NewDocument(CurrentDir + "\temp\轴承.prtdot", 0, 0, 0)           '打开模型
  
  Dim fileName As String
  fileName = part.gettitle                                                          '获得文件名

  
  Dim CurCFG As Object
  Set CurCFG = part.GetActiveConfiguration()                                        '获得配置
  
  Dim ConfName As String
  ConfName = CurCFG.Name                                                            '获得配置名称
  
  
  
  boolstatus = part.Extension.SelectByID("D6@草图1@" + fileName + ".SLDPRT", "DIMENSION", 0.1448, 0.0612, -0.0165, False, 0, Nothing)
  part.Parameter("D6@草图1").SystemValue = txtWj.Caption / 1000                     '更改目标外径
  boolstatus = part.Extension.SelectByID("D1@草图1@" + fileName + ".SLDPRT", "DIMENSION", 0.041, -0.0415, 0.00516, False, 0, Nothing)
  part.Parameter("D1@草图1").SystemValue = txtNj.Caption / 1000                     '更改目标内径
  boolstatus = part.Extension.SelectByID("D4@草图1@" + fileName + ".SLDPRT", "DIMENSION", -0.00518, 0.05451, -0.008906, False, 0, Nothing)
  part.Parameter("D4@草图1").SystemValue = txtHd.Caption / 1000                     '更改目标厚度
  part.EditRebuild
  part.ShowNamedView2 "*等轴测", 7
  part.ViewZoomtofit2
 '添加属性
  part.AddCustomInfo3 ConfName, "代号", swCustomInfoText, txtBs.Caption
  part.AddCustomInfo3 ConfName, "名称", swCustomInfoText, "单列向心球轴承"
  Form1.Show
End Sub

解决方案 »

  1.   


    Sldworks  机械行业一个比较有名的CAM软件。
    这个跟“行业”的相关性比较大。
    围观一下…………
      

  2.   

    如果是“ fileName = part.gettitle ”这句提示91错误,
    显然,前面的那句:Set part = swapp.NewDocument(CurrentDir + "\temp\轴承.prtdot", 0, 0, 0)           '打开模型
    没有成功执行,楼主应该查一下:
    1. 文件路径是否正确?
      CurrentDir有可能会随“工作环境”及指令代码的执行而变化,你应该在此句处设置断点,
      当执行到此句时,确认一下“CurrentDir”是否为你需要的路径!2. 你确定“打开”已有的工程文件,不是用的“Openxxxxx”的函数,而是这个“Newxxxxx”的函数?3. 查一下相关文档,确认一下你的“NewDocument( )”传的另外几个参数是否正确(假设确实是用这个函数)。
      

  3.   

    Set swapp = CreateObject("Sldworks.Application")  
    这句也最好检查一下,执行完了以后swapp是不是又对象生成了。加个监视啥的,看这句执行前后swapp有没有东西。
    如果上面这句没问题那问题就必然出在下一句。
    Set part = swapp.NewDocument(CurrentDir + "\temp\轴承.prtdot", 0, 0, 0)
    楼上对这句的分析已经很详细了
      

  4.   

    VBA扎根于各类行业软件了,不知道哪些用vb排行语言的是不是把这些也都算入了。楼主你单步调试对part右击添加监视看看。Set part = swapp.NewDocument(CurrentDir + "\temp\轴承.prtdot", 0, 0, 0)  
    这里再改用全路径测试看看是不是文件路径问题,然后后面3个参数仔细研究下,是不是打开了要前端显示啥的,记得以前用com打开ppt文件要操作还得设置个参数的,不然都是无法操作对象。
      

  5.   

    Set swapp = CreateObject("Sldworks.Application")  
    肯定执行成功了的,要不然它的下一句就没法执行了,在执行那一句时就会报错;
      而不是在后面的 fileName = part.gettitle才报错。
      

  6.   

    注释掉所有On Error Resume Next语句,在IDE中运行,
    出错后点击调试,光标会停在出错的那条语句处,
    或者
    事先在怀疑可能有逻辑错误的语句处设置断点,运行经过断点时中断,此时可以在立即窗口中使用
    ?变量名

    ?函数名(函数参数)

    过程名(参数)
    辅助调试。