|
|

楼主 |
发表于 2010-9-25 14:20
|
显示全部楼层
其中的核心代码如下:" D0 t$ q0 \+ m3 u/ ?
For Each returnobj In doc.ModelSpace
4 e H! o- x0 f, h% l b( ^ If returnobj.ObjectName = "AcDb2dPolyline" Then( c3 @! S* c0 s, y+ O4 d0 Z
If Round(returnobj.Area, 4) >= 62370 Then$ y! `3 N& Q# f8 y' D
returnobj.GetBoundingBox minext, maxext* z/ t4 H, \* |+ `! X
& ?' @1 E4 V6 c! f- Z" x* H point1(0) = minext(0): point1(1) = minext(1)
' \5 w- {- z: k. p5 A" ?# ^6 z point2(0) = maxext(0): point2(1) = maxext(1)9 h% {- P# P# u0 ?
doc.ActiveLayout.CenterPlot = True '中心打印
/ a/ O7 v5 ? H0 N: ?1 mdoc.ActiveLayout.StandardScale = acScaleToFit '合适比例
+ F$ ^# I! q$ N( O4 qdoc.ActiveLayout.SetWindowToPlot point1, point24 ~3 f7 _1 ~7 l, Y( N% W# K
doc.ActiveLayout.PlotRotation = ac0degrees '旋转90度
! f: }$ H; O- @; W! N% Cdoc.ActiveLayout.PlotType = acWindow& K# k1 d& u1 \$ T B% g: A4 u
doc.Plot.PlotToDevice "D:\plot\pdfFactory Pro.pc3" '打印机pc3文件,或者打印机名称,我这里用到的事PDFfactory pro W M U; ]$ G" ]6 h, k1 I
End If
) v. @1 I% w* t( F* e2 ?( y' j+ @End If
( S6 X5 M; H k _* j3 [Next
1 N9 k. ~3 [- P6 z" B# J% s6 v! X上面的代码是搜索面积大于一定值的2dPolyline,并以他的最大点和最小点作为Window打印模式的边界点 doc是autcad.activedocument |
|