乐筑天下

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

如何在图纸空间中修改视口?

[复制链接]

13

主题

20

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
72
发表于 2017-10-17 20:53:01 | 显示全部楼层 |阅读模式
我试图更改视口的属性,但代码总是在tr处崩溃。Commit();
  1. Database currentDatabase = HostApplicationServices.WorkingDatabase;
  2.             Database db = new Database(false, true);
  3.             db.ReadDwgFile(item.FileName, FileShare.ReadWrite, true, null);
  4.             HostApplicationServices.WorkingDatabase = db;
  5.             using (Transaction tr = db.TransactionManager.StartTransaction())
  6.             {
  7.                 ObjectId layoutId = Arx.SymTbl.GetDictionaryObject(item.LayoutName, db.LayoutDictionaryId, tr);
  8.                 Layout layout = (Layout)tr.GetObject(layoutId, OpenMode.ForWrite);
  9.                 BlockTableRecord psbtr = (BlockTableRecord)tr.GetObject(layout.BlockTableRecordId, OpenMode.ForWrite);
  10.                 foreach (ObjectId id in psbtr)
  11.                 {
  12.                     Entity ent = (Entity)tr.GetObject(id, OpenMode.ForWrite);
  13.                     if (ent is Viewport && id != db.PaperSpaceVportId)
  14.                     {
  15.                         Viewport vp = ent as Viewport;
  16.                         
  17.                         vp.Width = item.ViewPortPsWidth;
  18.                         vp.Height = item.ViewPortPsHeight;
  19.                         vp.CenterPoint = item.ViewPortPsCentePnt;
  20.                         vp.ViewCenter = item.ViewPortMsViewCenterPnt;
  21.                         vp.CustomScale = 1 / item.Scale;
  22.                         
  23.                     }
  24.                 }
  25.                 tr.Commit(); stop here
  26.             }
  27.             db.SaveAs(item.FileName, DwgVersion.Current);
  28.             HostApplicationServices.WorkingDatabase = currentDatabase;

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

0

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
8
发表于 2017-10-23 19:55:07 | 显示全部楼层
我使用过一次,请参阅此处的其余代码<br>使用(ViewTable vt=(ViewTable)Application.DocumentManager.MdiActiveDocument.Database.ViewTableId.Open(OpenMode.ForWrite))<ol><div>
{
使用(ViewTableRecord vtr=Application.DocumentManager.MdiActiveDocument.Editor.GetCurrentView())
{
vtr.SetUcs(syncView.ViewOrthographic)
录像机。Target=syncView.Target
录像机。ViewDirection=syncView.ViewDirection
录像机。标高=syncView.Elevation
录像机。中心点=syncView.CenterPoint
录像机。高度=syncView.Height
录像机。宽度=syncView.Width
应用程序.DocumentManager.MdiActiveDocument.Editor.SetCurrentView(vtr)
Application.DocumentManager.MdiActiveDocument.Editor.Regen()
}
}
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 12:39 , Processed in 0.295288 second(s), 56 queries .

© 2020-2025 乐筑天下

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