花了一下午完成了一個初步的示范的例子,看來解決圖紙統一治理有了解決的辦法了.下一步用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