Autocad / C#:如何在绘图和移动属性中缩放几何体?

时间:2014-04-17 14:59:02

标签: c# autocad

我是这个领域的绝对菜鸟,但我决定用它做点什么。我想实现这个目标:有一个带有几何图形 - 让我们说一个圆 - 和属性定义。我喜欢做的是将图形中的所有内容按比例缩放2,另外将属性移动到最近的网格点(如果属性定义位于[10.1,14.9],则应将其移动到[10,15]。说实话我知道如何创建新的简单对象,但我不知道如何处理现有的东西,也不知道如何从属性定义中查询位置。

任何帮助表示赞赏!谢谢!

ps:VS2013 / ACAD2015

2010/2013格式的示例图纸:

http://www40.zippyshare.com/v/37899772/file.html

http://www40.zippyshare.com/v/83044603/file.html

更新:我在这个问题上取得了一些进展。缩放是通过使用命令完成的:

acDoc.SendStringToExecute("_ai_selall\n", true, false, false);
acDoc.SendStringToExecute("scale\n", true, false, false);
acDoc.SendStringToExecute("0,0\n", true, false, false);
acDoc.SendStringToExecute("2\n", true, false, false);

然后我通过Block Table Record进行了迭代(寻找ATTDEF):

BlockTableRecord acBlkTblRec;
acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
foreach (ObjectId acObjId in acBlkTblRec) { ... } etc.

最后我希望保存修改后的文件(再次通过SendStringToExecute)。

acDoc.SendStringToExecute("qsave\n", true, false, false);
acDoc.SendStringToExecute("close\n", true, false, false);

然而,尽管如此,它并没有起作用。当我计划处理一个文件列表时,它开始逐个文件打开,用它做一些事情,但不是按照它想做的顺序。它打开文件然后进行缩放和固定属性的位置混合(!)。我发现它与SendStringToExecute / Autocad有关。

所以现在我必须找出如何保持我的计划顺序。

0 个答案:

没有答案
相关问题