乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 134|回复: 9

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

[复制链接]

13

主题

51

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
103
发表于 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)                        '' Create a Viewport
  11.                         Dim acVport As Viewport = New Viewport()
  12.                         acVport.SetDatabaseDefaults()
  13.                         acVport.CenterPoint = New Point3d(220, 148.5, 0)
  14.                         acVport.Width = 420
  15.                         acVport.Height = 297
  16.                         acBlkTblRec.AppendEntity(acVport)
  17.                         acTrans.AddNewlyCreatedDBObject(acVport, True)
  18.                         Dim Mtxt_h As New MText
  19.                         Mtxt_h.C
  20.                         Mtxt_h.TextHeight = 2
  21.                         Mtxt_h.Width = 5
  22.                         Mtxt_h.Location = New Point3d(0, 0, 0)
  23.                         Mtxt_h.Attachment = AttachmentPoint.MiddleLeft
  24.                         acBlkTblRec.AppendEntity(Mtxt_h)
  25.                         acTrans.AddNewlyCreatedDBObject(Mtxt_h, True)

奇怪的,视口建不了 ,但MText加进去了,也不报错??
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-11-27 09:58:00 | 显示全部楼层
see
ViewportTableRecord Class
回复

使用道具 举报

13

主题

51

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
103
发表于 2010-11-27 10:59:00 | 显示全部楼层
acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.PaperSpace), OpenMode.ForWrite)
用这个可以的 但是 不能选到我建的那个布局上 ,不知道 该怎么弄 才能在自己建 的布局上建视口
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-11-27 11:21:00 | 显示全部楼层
在手册的 【定义布局和打印】 部分找找


回复

使用道具 举报

13

主题

51

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
103
发表于 2010-11-27 12:36:00 | 显示全部楼层
我谢谢 飞狐版主 就是从那里找来这些代码的,没说切换到新建的布局上 啊
回复

使用道具 举报

13

主题

51

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
103
发表于 2010-11-27 13:19:00 | 显示全部楼层
我想到一个变通的办法 用vba里 的
  1. Dim layout As AcadLayout = ThisDrawing.Layouts.Item("0") ThisDrawing.ActiveLayout = layout
居然可以了
.net 还要vba来辅助 我无语.....
回复

使用道具 举报

13

主题

51

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
103
发表于 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.
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-11-27 14:20:00 | 显示全部楼层
LayoutManager.CurrentLayout Property
回复

使用道具 举报

13

主题

51

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
103
发表于 2010-11-27 18:05:00 | 显示全部楼层
谢谢 飞狐版主  又解决我的一个难题  呵呵
回复

使用道具 举报

3

主题

5

帖子

1

银币

初来乍到

Rank: 1

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

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-29 19:00 , Processed in 0.323698 second(s), 73 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表