我在 AutoCAD 2012 中使用 PalettSet 托管我的 .Net ListView 控件。列表视图项的 Tag 属性保存 *.dwg 文件的路径。我想从ListView拖动,同时使用Item.Tag属性选择dwg文件并将其放在AutoCAD绘图区域,我希望结果是图形将插入到那里,就像我们通常拖动*.dwg文件并将其放在绘图区域一样
我已经阅读了有关使用Jig Class拖放块的信息,并尝试了一些示例代码,但使用内置的Circle类。
我是否必须首先从 dwg 文件中读取块,然后附加到鼠标并进行拖放操作?
我其实很困惑...
有人可以指导我吗?非常感谢您的回复...
谢谢一堆....
法鲁克
最后我解决了这个问题,但经过一些长时间的研究和代码测试。我编写了代码(通过阅读多个博客),将 *.dwg 文件中的块插入到当前 AutoCAD 文档中,但后来我意识到许多块包含属性,有些可能需要在添加 dwg 时进行处理。
所以最后,我决定调用AutoCAD的INSERT命令,而不是编写我自己的代码。这是其他研究员的代码。
请注意,在这里我以硬编码dwg文件名和路径为例,而在我的实际应用程序中,DWG文件路径将从ListBox.Tag属性中读取。
[CommandMethod("InsertDWG")]
static public void SendCmd()
{
string DWGFile = @"D:sym1047.DWG";
string InsertCmd = @"_.-INSERT " + DWGFile + 'r' + 'n';
Document doc = Application.DocumentManager.MdiActiveDocument;
doc.SendStringToExecute(InsertCmd, true, false, false);
}
注意:您应该使用 SendStringToExecute() 方法保留"\r"+""(将充当输入或回车),否则 AutoCAD 将获取命令字符串,但将等待用户输入。
希望这对某人有益。
此致敬意法鲁克