AutoCAD:从我在Palettset中托管的ListBox中拖放* .dwg文件

时间:2012-06-30 09:03:51

标签: drag-and-drop autocad

我在AutoCAD 2012中使用PalettSet托管我的.Net ListView控件.ListView项的Tag属性包含* .dwg文件的路径。我想从ListView中拖动,同时使用Item.Tag属性选择dwg文件并将其放在AutoCAD绘图区域上,我希望结果将是绘图将插入那里就像我们通常一样拖动* .dwg文件并将其放在绘图区域

我已经阅读了使用Jig Class的拖放块,我尝试了一些示例代码,但使用了内置的Circle类。

我是否必须首先从dwg文件中读取块然后附加到鼠标并执行拖放操作?

我其实很困惑......

有人可以指导我吗?非常感谢您的回复...

非常感谢......

法鲁克

1 个答案:

答案 0 :(得分:0)

最后我解决了这个问题,但经过一些长时间的研究和代码测试。我编写了代码(通过阅读多个博客),将块从* .dwg文件插入到当前的AutoCAD文档中,但后来我意识到许多块包含属性,有些可能需要在添加dwg时进行处理。

最后,我决定调用AutoCAD的INSERT命令,而不是编写自己的代码。这是其他研究员的代码。

请注意,这里我将硬编码dwg文件名和路径作为示例,而在我的实际应用程序中,将从ListBox.Tag属性中读取DWG文件路径。

[CommandMethod("InsertDWG")]
static public void SendCmd()
{
    string DWGFile = @"D:\sym\1047.DWG";
    string InsertCmd = @"_.-INSERT " + DWGFile + '\r' + '\n';
    Document doc = Application.DocumentManager.MdiActiveDocument;
    doc.SendStringToExecute(InsertCmd, true, false, false);
}

注意:您应该使用SendStringToExecute()方法保留'\ r'+'\ n'(将充当回车或回车),否则AutoCAD会获取命令字符串,但会等待用于用户输入。

希望这对某人有益。

祝你好运 法鲁克