|

楼主 |
发表于 2010-9-25 14:20
|
显示全部楼层
其中的核心代码如下:3 u/ v m: z0 p [! }1 ?& N
For Each returnobj In doc.ModelSpace
% V# \* K( E# T x/ z If returnobj.ObjectName = "AcDb2dPolyline" Then0 E7 w2 `" n: A8 c* \; U8 j
If Round(returnobj.Area, 4) >= 62370 Then
) [( L& e8 x5 W& h+ v% |7 @( l returnobj.GetBoundingBox minext, maxext
; P/ l- Y& P" D$ ~! n; x& @- _* Y" T/ h7 w5 b9 W
point1(0) = minext(0): point1(1) = minext(1); V+ Q& u) o3 Q L: |/ F Q* ]
point2(0) = maxext(0): point2(1) = maxext(1)
8 O, U2 e4 e& s; ~' u5 A5 Gdoc.ActiveLayout.CenterPlot = True '中心打印
1 O5 U: m( f7 [/ V# ~doc.ActiveLayout.StandardScale = acScaleToFit '合适比例
. j" F V$ O, M* W: C! }2 Udoc.ActiveLayout.SetWindowToPlot point1, point2
2 _/ a3 c0 Z3 e9 H" qdoc.ActiveLayout.PlotRotation = ac0degrees '旋转90度
0 z: @ q5 e( U2 h6 H+ I' y, I) ?; r, cdoc.ActiveLayout.PlotType = acWindow
4 [7 X. o! _8 M) o6 c- Edoc.Plot.PlotToDevice "D:\plot\pdfFactory Pro.pc3" '打印机pc3文件,或者打印机名称,我这里用到的事PDFfactory pro6 t2 T# o n! Q
End If
4 A, h2 E2 ~9 N& \- ]End If
b# j7 }2 U* J' ~% {2 s; ?Next; ^( {$ z- c$ v3 G' u8 E
上面的代码是搜索面积大于一定值的2dPolyline,并以他的最大点和最小点作为Window打印模式的边界点 doc是autcad.activedocument |
|