WEB开发网
开发学院软件开发C++ 在VBA中调用AUTOCAD打印文件 阅读

在VBA中调用AUTOCAD打印文件

 2008-03-08 12:56:01 来源:WEB开发网   
核心提示:花了一下午完成了一个初步的示范的例子,看来解决图纸统一治理有了解决的办法了.下一步用jacob封装在java中调用,在服务器上控制打印治理.做个记号再慢慢完善.'取得当前文档对象(vba中的方法,假如是在VB中时需要从顶层对象开始引用取得)Dim currentDoc As AcadDocumentSet cu
花了一下午完成了一个初步的示范的例子,看来解决图纸统一治理有了解决的办法了.下一步用jacob封装在java中调用,在服务器上控制打印治理.做个记号再慢慢完善.'取得当前文档对象(vba中的方法,假如是在VB中时需要从顶层对象开始引用取得)
Dim currentDoc As AcadDocument
Set currentDoc = ThisDrawing'文档的模型空间
Dim sp As AcadModelSpace
Set sp = currentDoc.modelspace'取得模型空间中的块属性
Dim index As Integer
For index = 0 To sp.Count - 1
   Dim name As String
   name = sp.Item(index).ObjectName
  
   '判定模型空间中的项目是否是一个块引用
   If name Like "*Ac*" Then
    
     Dim blockRef As AcadBlockReference
     Set blockRef = sp.Item(index)
    
     '块引用的插入点
     Dim insertPoint As Variant
     insertPoint = blockRef.InsertionPoint
    
     '放大比例
     Dim xScale, yScale As Integer
     xScale = blockRef.XScaleFactor
     yScale = blockRef.YScaleFactor
    
    
     '宽高基数
     Dim width, height As Double
     width = 297
     height = 210
    
     '打印区域
     Dim UpperRight(0 To 1) As Double, LowerLeft(0 To 1) As Double
     UpperRight(0) = insertPoint(0)
     UpperRight(1) = insertPoint(1)
     LowerLeft(0) = insertPoint(0) + width * xScale
     LowerLeft(1) = insertPoint(1) - height * yScale
         
     list.AddItem "inserPoint:X=" & UpperRight(0) & " Y:" & UpperRight(1)
     list.AddItem "lowerLeft :X=" & LowerLeft(0) & " Y:" & LowerLeft(1)
    
    
     Dim plotConfs As AcadPlotConfigurations
     Set plotConfs = ThisDrawing.PlotConfigurations
     list.AddItem plotConfs.Count
    
  
     Dim plotconf As AcadPlotConfiguration
     Set plotconf = plotConfs.Add("plot")
     'list.AddItem plotconf.GetPlotDeviceNames(5)
    
     'Set plotConf = ThisDrawing.PlotConfigurations.Add
    
    
     '设置定义要打印的布局范围的坐标
     ThisDrawing.ActiveLayout.SetWindowToPlot LowerLeft, UpperRight
     '指定布局或打印配置的类型
     ThisDrawing.ActiveLayout.PlotType = acWindow
     '按局部或完整视图预览方式显示打印预览对话框
     ThisDrawing.Plot.DisplayPlotPReview acFullPreview
     '打印布局到设备
     ThisDrawing.Plot.PlotToDevice
    
   End If
 
  
Next index

Tags:VBA 调用 AUTOCAD

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接