在VBA中调用AUTOCAD打印文件

王朝vb·作者佚名  2006-01-09
宽屏版  字体: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有