明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: gzy

[分享]特此上传*DWG减肥工具所有部分

  [复制链接]
发表于 2003-10-13 20:33:00 | 显示全部楼层
没有问题

这是原代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2003-10-13 20:50:00 | 显示全部楼层
本帖最后由 作者 于 2003-10-13 21:12:24 编辑

多谢整理啊,如果CAD开着,那么CAD将打开所有处理的文件。但是关了就没有什么问题了,还有我始终找不到处理的文件,所以显示处理后为0,收索整个硬盘也找不到处理的文件,
再次多谢!
发表于 2003-10-14 11:01:00 | 显示全部楼层
AutoCAD有时将盘符大写.
加了Lcase函数应该可以:
  1. Private Sub cmddo_click()
  2.     On Error Resume Next
  3.     Size = 0
  4.     If File1.ListCount = 0 Then Exit Sub
  5.     Set AcadApp = GetObject(, "AutoCAD.application")
  6.     If Err Then
  7.         NewApp = True
  8.         Err.Clear
  9.         Set AcadApp = CreateObject("AutoCAD.application")
  10.         If Err Then
  11.             MsgBox Err.Description
  12.             Exit Sub
  13.         End If
  14.     End If
  15.     If Right(Dir1.Path, 1) <> "" Then
  16.         Path = Dir1.Path & ""
  17.     Else
  18.         Path = Dir1.Path
  19.     End If
  20.     For i = 0 To File1.ListCount - 1 Step 1
  21.         If File1.Selected(i) Then '对列表文件进行处理
  22.             a = Path + File1.List(i)
  23.             File1.Selected(i) = False
  24.             AcadApp.documents.open a
  25.             If Err Then
  26.                 Err.Clear
  27.                 MsgBox Err.Description
  28.             End If
  29.             On Error GoTo 0 '关闭错误陷井,以便调试后续语句.
  30.             For Each CurDoc In AcadApp.documents
  31.                 If LCase(CurDoc.FullName) = LCase(a) Then
  32.                     CurDoc.PurgeAll
  33.                     CurDoc.PurgeAll
  34.                     CurDoc.PurgeAll
  35.                     CurDoc.PurgeAll
  36.                     OutFileName = Path & "S_" & File1.List(i)
  37.                     If Dir(OutFileName) = "" Then
  38.                         CurDoc.SaveAs OutFileName
  39.                     ElseIf MsgBox("文件已经存在:" & vbCrLf & OutFileName & vbCrLf & "要替换它吗?", vbYesNo) = vbYes Then
  40.                         CurDoc.SaveAs OutFileName
  41.                     End If
  42.                     CurDoc.Close
  43.                     Size = Size + FileLen(OutFileName)
  44.                     Exit For
  45.                 End If
  46.             Next CurDoc
  47.         End If
  48.     Next i
  49.     Text2.Text = Str(Size)
  50.     If NewApp = True Then AcadApp.quit
  51.     File1.Refresh
  52.     Set AcadApp = Nothing
  53. End Sub
发表于 2003-10-14 11:38:00 | 显示全部楼层
这个是编译后的文件5K)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2003-10-15 23:25:00 | 显示全部楼层
不错!
发表于 2003-10-17 10:34:00 | 显示全部楼层
CurDoc.SaveAs Dir1.Path & "\S_" & File1.List(i)
这条语句少了一个“\”加上就好了,似乎确实是起到了“减肥”的作用。
发表于 2003-10-17 13:17:00 | 显示全部楼层
zchuier发表于2003-10-17 10:34:00CurDoc.SaveAs Dir1.Path & &quot;\S_&quot; & File1.List(i)
这条语句少了一个“\”加上就好了,似乎确实是起到了“减肥”的作用。


如果这样的话,文件名就是错误的!!!
你没有仔细查看前面的代码:
    If Right(Dir1.Path, 1) <> "\" Then
        Path = Dir1.Path & "\"
    Else
        Path = Dir1.Path
    End If
之所以这样是因为根目录下Path具有"\"(如"C:\"),而子目录下没有"\"(如"C:\Winnt").
发表于 2003-10-20 12:39:00 | 显示全部楼层
好像还是空文件
发表于 2003-11-22 09:08:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2003-11-22 10:27:00 | 显示全部楼层
不会吧,有听说过AutoCAD的"清理"命令将文件"清理"大的吗?
这个VB程序原理上只是调用了AutoCAD的"清理"而已.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 13:54 , Processed in 0.171967 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表