BillZndl 发表于 2016-6-15 03:27:46

放大到xref中的对象

如何选择一个实体,然后打开外部参照并缩放至该实体?下面是我所做的最少测试中最少的代码。代码提示嵌套实体。
检查所选实体是否来自不同的数据库。
从PromptNestedResult开始迭代容器,并存储同一数据库中最后一个容器的句柄。
用编辑器打开外部参照并发送字符串,缩放到对象的命令   公共类TestClass4 : CommandClass。
{。

私有静态句柄?hnd = null。

public void zoomxref()。
{。
hnd = null。
var pneo = new PromptNestedEntityOptions(" \ n select xref object ");。
var pner = Ed,GetNestedEntity(pneo);。
如果(pner,地位!=提示状态,好)。
{。
返回;。
}。

var id = pner,ObjectId。
如果(id,Database.UnmanagedObject == Db,UnmanagedObject)。
{。
Ed,WriteLine("选择外部参照对象");。
返回;。
}。

foreach(pner中的ObjectId conId,GetContainers())。
{。
if (conId,Database.UnmanagedObject == pner,ObjectId . database . unmanaged object)。
{。
id = conId。
}。

}。

使用(事务trx = Doc,transaction manager . start transaction())。
{。
var ent = id,get entity();。
hnd = ent,手柄;。
事务,commit();。
}。

var doc =应用,DocumentManager.Open(pner,ObjectId.Database.Filename,false);。
doc,SendStringToExecute(" zoomxrefobject ",true,false,false);。

}。



public void zoomxrefobject()。
{。
如果(!hnd,HasValue)返回;。
var id = Db,GetObjectId(false,(Handle)hnd,0);。
var ss = SelectionSet,from ObjectId(new ObjectId[]{ id });。
Ed,命令(" _Zoom "," Object ",ss,");。
}。

}。


**** Hidden Message *****

BillZndl 发表于 2016-6-15 06:40:34

以下代码是我用来放大组成AutoCAD“组”的实体的代码,我一定得到了一些关于如何做到这一点的帮助,很可能是从这个板上得到的,所以我不知道它是如何工作的。只是觉得可能会有帮助...    private static void ZoomToPart(ObjectId[]Eids,Transaction trans,Document doc)。
{ 。
Extents3d exts = 。
Eids,Select(id = >((实体)事务,GetObject(id,OpenMode。ForRead)),几何范围)。聚合(。
(e1,e2) => { e1。add extents(E2);返回E1;});。

int CvId = Convert,ToInt32((应用,getsystem variable(" cv port "));。

使用(Manager gm = doc,GraphicsManager)。
使用(View vw = gm,GetGsView(CvId,true))。
{。
大众汽车,ZoomExtents(exts,MinPoint,exts。MaxPoint);。
通用汽车公司,SetViewportFromView(CvId,vw,true,true,false);。
} 。
}。

BillZndl 发表于 2016-6-15 07:54:40

我想GetGsView是在2015年被移除的。

BillZndl 发表于 2016-6-15 08:43:20

我使用一种缩放方法,该方法采用实体范围和缩放因子来控制实体周围的“缩放”量。您拥有实体id,因此获取其范围不是什么大问题。

BillZndl 发表于 2016-6-16 16:47:27


嗯,
必须是一个技术术语
页: [1]
查看完整版本: 放大到xref中的对象