|

楼主 |
发表于 2010-9-25 14:20
|
显示全部楼层
其中的核心代码如下:/ o# D( g$ M3 }% |8 N
For Each returnobj In doc.ModelSpace* |2 j6 Y2 `! A1 I& N$ [
If returnobj.ObjectName = "AcDb2dPolyline" Then" N& A) O4 I! M5 J
If Round(returnobj.Area, 4) >= 62370 Then, Z* e) q+ m: r9 W& s
returnobj.GetBoundingBox minext, maxext
% B' h+ J2 ]! k) X" K, O! }7 F& O0 [2 r
point1(0) = minext(0): point1(1) = minext(1)
# G9 V+ `% P2 d6 `% m; Q# z, E; s point2(0) = maxext(0): point2(1) = maxext(1)
0 @) n+ d+ ^4 X; i- T# {doc.ActiveLayout.CenterPlot = True '中心打印0 z0 p! X+ d4 b1 Q l, H
doc.ActiveLayout.StandardScale = acScaleToFit '合适比例
- D2 }6 Q: B, Ldoc.ActiveLayout.SetWindowToPlot point1, point2! e& }0 S _, a8 u
doc.ActiveLayout.PlotRotation = ac0degrees '旋转90度
9 _' \" G+ s0 C, ^doc.ActiveLayout.PlotType = acWindow
, Z, X+ K( Y0 n8 jdoc.Plot.PlotToDevice "D:\plot\pdfFactory Pro.pc3" '打印机pc3文件,或者打印机名称,我这里用到的事PDFfactory pro
; O8 x+ g E" `# Y y1 `2 _End If( {; m) e8 ~0 s, W5 y
End If
6 b5 F: K0 I3 ?- V6 DNext8 |* w! G7 b0 V5 h% B6 `' L
上面的代码是搜索面积大于一定值的2dPolyline,并以他的最大点和最小点作为Window打印模式的边界点 doc是autcad.activedocument |
|