|

楼主 |
发表于 2010-9-25 14:20
|
显示全部楼层
其中的核心代码如下:
7 Y+ u) |+ ~6 @, s9 @For Each returnobj In doc.ModelSpace+ {* f' I6 N4 r% n) U
If returnobj.ObjectName = "AcDb2dPolyline" Then
. ^ c' i8 [% U If Round(returnobj.Area, 4) >= 62370 Then1 `3 l$ T- u% T3 L4 k/ H* x
returnobj.GetBoundingBox minext, maxext
& E% A$ S5 ]& V }2 K% t8 p: C
6 I& H0 Y4 z( K/ F0 J; a9 Q point1(0) = minext(0): point1(1) = minext(1)
+ D9 p' M/ y. D" o8 T point2(0) = maxext(0): point2(1) = maxext(1), s. ]! Q# l' G# o: c2 i& Z
doc.ActiveLayout.CenterPlot = True '中心打印
! E% M1 F4 Z( [* s. V9 [doc.ActiveLayout.StandardScale = acScaleToFit '合适比例
" e1 p8 E3 a: V8 F- udoc.ActiveLayout.SetWindowToPlot point1, point2
" C' ^( _9 G! _' A1 Qdoc.ActiveLayout.PlotRotation = ac0degrees '旋转90度
2 J7 q, H3 y- b0 N; \doc.ActiveLayout.PlotType = acWindow
8 N# v) W9 C7 E* \ s* Rdoc.Plot.PlotToDevice "D:\plot\pdfFactory Pro.pc3" '打印机pc3文件,或者打印机名称,我这里用到的事PDFfactory pro
( r2 C& _% h0 g) X' Z% d* c KEnd If9 ^0 H3 l5 M! Z. ` w
End If" T8 ~; N/ I# B8 t& Z
Next
) r& u: ~$ Q: N) T2 w5 {5 p3 p上面的代码是搜索面积大于一定值的2dPolyline,并以他的最大点和最小点作为Window打印模式的边界点 doc是autcad.activedocument |
|