明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4797|回复: 6

新建布局视口显示

[复制链接]
发表于 2012-12-4 17:22:36 | 显示全部楼层 |阅读模式
本帖最后由 hnzgs 于 2012-12-4 17:27 编辑

代码如下:
  1.   '锁定文档
  2.         Using acLckDoc As DocumentLock = doc.LockDocument

  3.             '全部显示
  4.             Autodesk.AutoCAD.Internal.Utils.ZoomAuto(1, 1, 1, 1, 1)

  5.             Using trans As Transaction = db.TransactionManager.StartTransaction()

  6.                 Dim lm As LayoutManager = LayoutManager.Current

  7.                 Dim layName As String = GenerateLayoutName()

  8.                 '创建新布局
  9.                 Dim layoutId As ObjectId = lm.CreateLayout(layName)

  10.                 '设置为当前布局
  11.                 lm.CurrentLayout = layName

  12.                 Dim acLayout As Layout = TryCast(trans.GetObject(layoutId, OpenMode.ForRead), Layout)


  13.                 Dim pi As PlotInfo = New PlotInfo()
  14.                 pi.Layout = acLayout.ObjectId

  15.                 Dim ps As PlotSettings = New PlotSettings(acLayout.ModelType)
  16.                 ps.CopyFrom(acLayout)

  17.                 Dim psv As PlotSettingsValidator = PlotSettingsValidator.Current
  18.                 With psv

  19.                     '设置打印设备和纸张
  20.                     .SetPlotConfigurationName(ps, "Adobe PDF", "A4")

  21.                     '设置打印单位
  22.                     .SetPlotPaperUnits(ps, PlotPaperUnit.Millimeters)

  23.                     '设置打印比例
  24.                     .SetUseStandardScale(ps, True)
  25.                     .SetStdScaleType(ps, StdScaleType.ScaleToFit)

  26.                     ''设置打印区域
  27.                     .SetPlotType(ps, Autodesk.AutoCAD.DatabaseServices.PlotType.Extents)

  28.                     '设置横向打印
  29.                     .SetPlotRotation(ps, PlotRotation.Degrees090)

  30.                     ' 设置是否居中打印
  31.                     .SetPlotCentered(ps, True)
  32.                 End With

  33.                 '将布局由只读改为读写模式
  34.                 acLayout.UpgradeOpen()

  35.                 '置为当前布局
  36.                 acLayout.CopyFrom(ps)

  37.               
  38.                 acLayout.DowngradeOpen()
  39.               
  40.                 '保存新对象到数据库中
  41.                 trans.Commit()
  42.             End Using
  43.             '重生成一下,否则显示不正确
  44.             doc.Editor.Regen()
  45.         End Using
直接建好后的效果不大满意,怎样才能实现附图3那种想要的效果~~谢了先!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-12-4 19:44:25 | 显示全部楼层
好像没做过,看到有下面这个东西,不知道楼主有没有用过。
public void SetPlotWindowArea(Autodesk.AutoCAD.DatabaseServices.PlotSettings plotSet, Autodesk.AutoCAD.DatabaseServices.Extents2d windowArea)
    Autodesk.AutoCAD.DatabaseServices.PlotSettingsValidator 的成员
至于Extents2d windowArea哪里来,若是我可能用笨办法算,楼主不妨试试看能不能用下面这个
public Autodesk.AutoCAD.DatabaseServices.Extents3d Extents { get; }
    Autodesk.AutoCAD.DatabaseServices.Layout 的成员
 楼主| 发表于 2012-12-5 08:14:10 | 显示全部楼层
sieben 发表于 2012-12-4 19:44
好像没做过,看到有下面这个东西,不知道楼主有没有用过。
public void SetPlotWindowArea(Autodesk.AutoC ...

多谢sieben老兄!
SetPlotWindowArea是窗选,也试过了,跟PlotType.Extents的的结果一样。

acLayout.Extents为只读属性,在PlotSettingsValidator前后均为((0,0,0),(0,0,0))
发表于 2012-12-5 17:05:43 | 显示全部楼层
acLayout.Extents为只读属性,在PlotSettingsValidator前后均为((0,0,0),(0,0,0))
-----------------------------
或者是因为你的acLayout还没提交到数据库,我好像用过acLayout.Extents不是0
 楼主| 发表于 2012-12-7 15:13:29 | 显示全部楼层
sieben 发表于 2012-12-5 17:05
acLayout.Extents为只读属性,在PlotSettingsValidator前后均为((0,0,0),(0,0,0))
---------------------- ...

提交后显示也是如此,奇怪了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-12-7 16:13:06 | 显示全部楼层
啊?可能我记错了,你的AutoCAD什么版本?
public Autodesk.AutoCAD.DatabaseServices.Extents2d Limits { get; }
    Autodesk.AutoCAD.DatabaseServices.Layout 的成员
这个东西有没有试过?
或者
public Autodesk.AutoCAD.DatabaseServices.ObjectIdCollection GetViewports()
    Autodesk.AutoCAD.DatabaseServices.Layout 的成员
用视口Viewport来试试?
 楼主| 发表于 2012-12-11 14:40:41 | 显示全部楼层
sieben 发表于 2012-12-7 16:13
啊?可能我记错了,你的AutoCAD什么版本?
public Autodesk.AutoCAD.DatabaseServices.Extents2d Limits { ...

谢谢老兄,我用的是CAD2010。郁闷了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 16:33 , Processed in 0.183455 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表