崔向。网
嗨,我正在将cui转换为.net。我想把这个命令放在.net中:
^C^C^P_ai_draworder_Back^P
我已经试过了,但它不起作用:
using AcadApp = Autodesk.AutoCAD.ApplicationServices.Application;
...
Document doc = AcadApp.DocumentManager.MdiActiveDocument;
doc.SendStringToExecute("\x03\x03\x10" + "_ai_draworder" + "\n" + "_Back" + "\n", true, false, true);
有没有办法让它工作<谢谢
**** Hidden Message ***** 嗨,
你只是试过:
doc.SendStringToExecute(“_ai_draworder _back ”, false, false, false);
从 AutoCAD 2015 开始,您还可以使用支持选择集作为参数的 Editor.Command()。var ed = AcAp.DocumentManager.MdiActiveDocument.Editor;。
var sel = ed.GetSelection();。
如果 (sel.Status == PromptStatus.OK)。
编辑,命令(“_draworder”, sel.值, “”, “_back”);。
这正是我所需要的,不幸的是,我正在为Autocad 2014编程。
为什么不使用有时比调用命令更简单的API,[命令方法("MOVEBACK",CommandFlags.UsePickSet)]。
公共无效MoveToBack()。
{。
var doc=Application.DocumentManager.MdiActiveDocument;。
var db=doc.Database;。
var ed=doc.Editor;。
。
var选择=ed.GetSelection();。
如果(selection.Status!=PromptStatus.OK)。
返回;。
。
使用(事务tr=db.TransactionManager.StartTransaction())。
{。
var btr=tr.GetObject(db.CurrentSpaceId,OpenMode.ForRead);。
var order=(DrawOrderTable)tr.GetObject(btr.DrawOrderTableId,OpenMode.ForWrite);。
order.MoveToBottom(新的ObjectIdCollection(selection.Value.GetObjectIds ()));。
tr.Commit();。
}。
}。
你是对的,它与API配合得很好<谢谢! 这里有一个小提示:您可能希望将命令名更改为“MoveToBack”,以免与“Movebak”命令混淆。
页:
[1]