明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3684|回复: 11

[求助]新建一个布局,在这个布局上新建一个视口,应该怎么做呢?

  [复制链接]
发表于 2010-11-27 09:43:00 | 显示全部楼层 |阅读模式
如题。
  1.   Dim acBlkTbl As BlockTable
  2.                         acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, _
  3.                                                      OpenMode.ForRead)
  4.                         Dim acLayoutMgr As LayoutManager
  5.                         acLayoutMgr = LayoutManager.Current
  6.                         Dim acLayout As Layout '= acLayoutMgr.CreateLayout("0")
  7.                         acLayout = acTrans.GetObject(acLayoutMgr.CreateLayout("0"), OpenMode.ForRead)
  8.    Dim acBlkTblRec As BlockTableRecord
  9.                         'acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.PaperSpace), OpenMode.ForWrite)
  10.                         acBlkTblRec = acTrans.GetObject(acLayout.BlockTableRecordId, OpenMode.ForWrite)
  11.                         '' Create a Viewport
  12.                         Dim acVport As Viewport = New Viewport()
  13.                         acVport.SetDatabaseDefaults()
  14.                         acVport.CenterPoint = New Point3d(220, 148.5, 0)
  15.                         acVport.Width = 420
  16.                         acVport.Height = 297
  17.                         acBlkTblRec.AppendEntity(acVport)
  18.                         acTrans.AddNewlyCreatedDBObject(acVport, True)
  19.                         Dim Mtxt_h As New MText
  20.                         Mtxt_h.C
  21.                         Mtxt_h.TextHeight = 2
  22.                         Mtxt_h.Width = 5
  23.                         Mtxt_h.Location = New Point3d(0, 0, 0)
  24.                         Mtxt_h.Attachment = AttachmentPoint.MiddleLeft
  25.                         acBlkTblRec.AppendEntity(Mtxt_h)
  26.                         acTrans.AddNewlyCreatedDBObject(Mtxt_h, True)

奇怪的,视口建不了 ,但MText加进去了,也不报错??
发表于 2010-11-27 09:58:00 | 显示全部楼层

see

ViewportTableRecord Class
 楼主| 发表于 2010-11-27 10:59:00 | 显示全部楼层

[求助]新建一个布局,在这个布局上新建一个视口,应该怎么做呢?

acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.PaperSpace), OpenMode.ForWrite)

用这个可以的 但是 不能选到我建的那个布局上 ,不知道 该怎么弄 才能在自己建 的布局上建视口

发表于 2010-11-27 11:21:00 | 显示全部楼层

在手册的 【定义布局和打印】 部分找找

http://www.mjtd.com/helpcenter/netguide/

 

 楼主| 发表于 2010-11-27 12:36:00 | 显示全部楼层
我谢谢 飞狐版主 就是从那里找来这些代码的,没说切换到新建的布局上 啊
 楼主| 发表于 2010-11-27 13:19:00 | 显示全部楼层
我想到一个变通的办法 用vba里 的
  1. Dim layout As AcadLayout = ThisDrawing.Layouts.Item("0")
  2. ThisDrawing.ActiveLayout = layout
居然可以了
.net 还要vba来辅助 我无语.....
 楼主| 发表于 2010-11-27 13:21:00 | 显示全部楼层
看看说明 acLayoutMgr.CreateLayout("0")这个有点问题

This function creates a new Layout object given a unique layout name. The default viewports for the new layout are not created until the layout is first activated.

发表于 2010-11-27 14:20:00 | 显示全部楼层
LayoutManager.CurrentLayout Property
 楼主| 发表于 2010-11-27 18:05:00 | 显示全部楼层

[求助]新建一个布局,在这个布局上新建一个视口,应该怎么做呢?

谢谢 飞狐版主  又解决我的一个难题  呵呵

发表于 2012-5-7 23:00:17 | 显示全部楼层
请问版主不使用LayoutManager.CurrentLayout可以吗?使用LayoutManager.CurrentLayout的话程序运行起来效率比较低。既然可以添加Mtext为何添加不了视口?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-3 05:43 , Processed in 0.179893 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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