|
楼主 |
发表于 2010-9-25 14:20
|
显示全部楼层
其中的核心代码如下:1 S& M+ h& J' ~* h1 w3 _ [3 J' G1 V
For Each returnobj In doc.ModelSpace
b v7 J6 Q( c: r If returnobj.ObjectName = "AcDb2dPolyline" Then
1 r9 o! Y( E7 D& W2 I1 J( x: t l; H If Round(returnobj.Area, 4) >= 62370 Then! k J: A1 s7 a) ?' L$ |
returnobj.GetBoundingBox minext, maxext! i" C' p$ T# r6 E3 G( R' k
# H+ ?+ a3 [8 Y3 G" p
point1(0) = minext(0): point1(1) = minext(1)
' l* G [8 \! D: } point2(0) = maxext(0): point2(1) = maxext(1)) S2 o# u7 q: c6 V) ?9 a* [& O) o
doc.ActiveLayout.CenterPlot = True '中心打印/ c% e d$ C$ e% Z9 n. V0 B9 a q
doc.ActiveLayout.StandardScale = acScaleToFit '合适比例2 X% K7 v' l$ b* e/ d
doc.ActiveLayout.SetWindowToPlot point1, point2
) \! c& ]( U# Q& i, k5 w) ]doc.ActiveLayout.PlotRotation = ac0degrees '旋转90度
$ L$ p! B+ [; A, Idoc.ActiveLayout.PlotType = acWindow
4 b7 e2 ]8 x% d+ F& e6 gdoc.Plot.PlotToDevice "D:\plot\pdfFactory Pro.pc3" '打印机pc3文件,或者打印机名称,我这里用到的事PDFfactory pro
4 A9 b2 E5 o5 m# pEnd If
' R+ h9 Y' m; W; |- D' o8 D2 ~End If
: z6 O& _6 z$ tNext
4 F& a' d% Q7 R6 J# ^, q1 g上面的代码是搜索面积大于一定值的2dPolyline,并以他的最大点和最小点作为Window打印模式的边界点 doc是autcad.activedocument |
|