龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

在VBA中调用AUTOCAD打印文件

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
花了一下午完成了一个初步的示范的例子,看来解决图纸统一治理有了解决的办法了.下一步用jacob封装在Java中调用,在服务器上控制打印治理.做个记号再慢慢完善.'取得当前文档对象(vb

花了一下午完成了一个初步的示范的例子,看来解决图纸统一治理有了解决的办法了.下一步用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

  

  

精彩图集

赞助商链接