明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2719|回复: 2

VBA批打印程序(打印同一目录下的DWG)

[复制链接]
发表于 2005-10-27 17:39:00 | 显示全部楼层 |阅读模式

不知道哪位兄弟给改进下,如果我用了CLOSE,怎么会出错啊!望高手改进下!初学。
Sub wj()
Dim s As String
Dim Path As String, FileName As String
Dim dwgname As String
Dim point1(0 To 1) As Double, point2(0 To 1) As Double
FileName = "*.dwg"
Path = "C:\123"    '修改路径
  
    s = Dir(Path & "\" & FileName)
 
  point1(0) = 70 '打印范围
  point1(1) = 70
  point2(0) = 4130
  point2(1) = 2900

     While s <> ""
     dwgname = Path & "\" & s
 
        ThisDrawing.Application.Documents.Open dwgname

 If Not ThisDrawing.ModelSpace.Layout.StyleSheet = "acad.ctb" Then ThisDrawing.ModelSpace.Layout.StyleSheet = "acad.ctb" ' 修改打印样式表
   ThisDrawing.ModelSpace.Layout.SetWindowToPlot point1, point2
  
  ThisDrawing.ModelSpace.Layout.GetWindowToPlot point1, point2
 
    ThisDrawing.ModelSpace.Layout.PlotType = acWindow
 
 ThisDrawing.ModelSpace.Layout.UseStandardScale = 0.001 '修改比例
  ThisDrawing.ModelSpace.Layout.PlotWithPlotStyles = True
 
  If Not ThisDrawing.ModelSpace.Layout.ConfigName = "HP LaserJet 5000LE" Then ThisDrawing.ModelSpace.Layout.ConfigName = "HP LaserJet 5000LE" ' 修改打印机
  If Not ThisDrawing.ModelSpace.Layout.CanonicalMediaName = "A3" Then ThisDrawing.ModelSpace.Layout.CanonicalMediaName = "A3" ' 修改图幅
 
 
    ThisDrawing.Plot.NumberOfCopies = 1
  ThisDrawing.ModelSpace.Layout.PlotRotation = ac90degrees
      ThisDrawing.ModelSpace.Layout.PaperUnits = acMillimeters
   ThisDrawing.Plot.PlotToDevice
 
        s = Dir
     Wend
 
End Sub

发表于 2005-10-30 20:54:00 | 显示全部楼层
如果在DWG文件中包含若干图形,这个程序恐怕就不应用了!
 楼主| 发表于 2005-10-31 10:01:00 | 显示全部楼层

如果有规律,改下就行了吧

自己改了下重上传

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-22 02:04 , Processed in 0.169681 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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