编辑在图纸空间布局内的视口中使用Command()
我们的目标基本上相当于在视口中单击并执行Zoom => Extents来捕获模型空间中的所有内容,但使用的是C#命令。问题是,只执行editor.command()会执行布局中的命令,而不是视口。有没有一种方法可以模拟在执行之前先“点击”到视图中?**** Hidden Message ***** 在LISP中,等效的是:
-将sysvar tilemode设置为0(如果尚未)
-将文档的mspace属性设置为true(如果尚未)
-将sysvar cvport设置为目标视口的id(如果尚未)
不需要命令调用。应该很容易在C#中复制。干杯。 acadApp.SetSystemVariable(“Tilemode”, 0);0 和 1 切换
ed。SwitchToModelSpace 使 vp 处于活动状态
。SwitchToPaperSpace();使纸空间处于活动状态
因此,如果您有多个副总裁,您如何知道哪个副总裁将成为活动副总裁,以及如何在中指定?网? 看看这是否有助于https://help.autodesk.com/view/OARX/2019/ENU/?guid=GUID-5FA86EF3-DEFD-4256-BB1C-56DAC32BD868 。
acLayoutMgr.CurrentLayout = acLayout.LayoutName;。
。
这里有一个小代码。第一个视口总是纸质空间视口。
您可以按大小或比例等循环浏览视口以选择特定的
LayoutManager lm = LayoutManager.Current;
Layout layout = tr.GetObject(lm.GetLayoutId(lm.CurrentLayout), OpenMode.ForRead) as Layout;
ObjectIdCollection vpIds = layout.GetViewports();
if (vpIds.Count < 2)
{
MessageBox.Show("There are no viewports in this layout, exiting:");
return;
}
if (db.PaperSpaceVportId == ed.CurrentViewportObjectId)// in paperspace viewport
{
if (vpIds.Count == 2)
{
vp = tr.GetObject(vpIds, OpenMode.ForWrite) as Viewport;
vp.Locked = false;
ed.SwitchToModelSpace();
}
else
我明白了,现在我明白了。谢谢。
页:
[1]