CSharp - AutoCad扩展问题

  显示原文与译文双语对照的内容

我的C# 应用程序与AutoCad接口。 我们的工作是在模型中翻译所有实体,找到适用于我们正在查找的特定扩展标签。

问题是当drafters将一个块移动到任何标记为"不可见"( 例如 )的图层时。 关闭层) 之后,无法通过常规循环来发现扩展数据:

yf_code_hryhezj6bi6gg33emu7auztpojswcy3ieauecy3bmrcw45djor4sazlooqqgs3raifbucrboifrxi2lwmvcg6y3vnvsw45bojvxwizlmknygcy3ffefhwcraeaqcalrofyqgozlueb4eiylumeqgm4tpnuqhi2dfebsw45djor4s4ct5bifdyl3dn5sgkpqkhqxxa4tfhy888888_yf_code

我已经尝试使用下面的代码再次打开图层:

yf_code_hryhezj6bi6gg33emu7auqkdifcc4qldoruxmzken5rxk3lfnz2c4tdbpfsxe4zojf2gk3jiejeesrceivheyqkzivjcekjojrqxszlsj5xcapjaorzhkzj3bjaugqkefzkxazdborssqkj3bjtg64tfmfrwqlrofyfaupbpmnxwizj6bi6c64dsmu7a8888_yf_code

"。"。但是数据扩展似乎并不重要。 就好像将它移动到一个不可见的层,去掉对象的扩展。 结果会惨不忍睹。

是否有"正确"方法可以从不可见图层上的项获取扩展?

谢谢。

时间: 原作者:

无法在 AutoCAD ( 地图) 2012中复制它。 你使用的是什么版本的AutoCAD?

你在里面做什么? ... get xData from the entity. 我这么做了:


 static AcadApplication ACAD
 {
 get
 {
 return
 Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication as AcadApplication;
 }
 }

 [CommandMethod("tlo")]
 public static void TestLayerOff()
 {
 foreach (AcadEntity ent in ACAD.ActiveDocument.ModelSpace)
 {
//... get xData from the entity.
 object xdata, xdataType;
 ent.GetXData("MyRegisteredAppName", out xdataType, out xdata);
//... read and spit out the xdata to the command line to see what we got
 }
 }

在我关闭了我的扩展 xdata entities的实体were工作。 当我把它们移到另一层的时候它也工作。 是否有步骤重现我缺少的? 什么是"drafters"在"移动块"中进行?

另外,如果你关心扩展正在实现,请使用XDLIST命令直接在AutoCAD中查看它。

最后,我将推出一般的建议来离开,并使用本机 C# API,这将执行你试图在这里执行的任何操作。

原作者:
...