求助:在编辑时如何高亮显示相连的几条直线,编辑完成后关闭高亮显示?
在编辑时如何高亮显示相连的几条直线,编辑完成后关闭高亮显示? 用highlight()和unhighlight() 回复 epwt 的帖子highlight() 显示出来的怎么是虚线啊,而且如果是多段线的话只改变第一段.能给我点具体代码参考下么? 高亮的实质就是把实线变成虚线。
你可以试着在选中实体的时候改变实体的颜色,设置它高亮显示,
那样效果会更明显些。
至于只改变第一段线,你还是贴段代码上来吧。
具体代码就是ent.Highlight()了。
要是还有问题,再贴段代码讨论下? 回复 epwt 的帖子
OK,谢谢了,现在基本问题都已解决,就是改变颜色并且在编辑完成时恢复原来的默认颜色,怎么操作?能给我点具体代码参考下么? 回复 epwt 的帖子
现在还要实现个功能,就是我同过代码选择个实体时,当前窗口要移动到该实体所在位置.请问怎么实现?
代码如下
public static void setElementHighlight(long elementid, int entNo,int pStatus)
{
DocumentLock docLock = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument();
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ObjectId objectids = FindElement(elementid, entNo);
Database db = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database;
Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = db.TransactionManager;
Entity acadEntity = null;
using (Transaction trans = tm.StartTransaction())
{
if (!objectids.IsNull)
{
acadEntity = (Entity)trans.GetObject(objectids, OpenMode.ForWrite);
if (pStatus == 0)
{
acadEntity.Highlight();
}
else
{
acadEntity.Unhighlight();
}
}
trans.Commit();
Application.UpdateScreen();
}
docLock.Dispose();
} 这个默认颜色。。。。。你可能需要记录一下,再重新回去设置了。
当然也许有更好的办法,也期待高人出现哈。
关于移动到实体所在的位置,我目前没有特别好的解决办法,
但是你可以试一下调用 Zoom A命令,看是否符合你的要求。
还有就是提点建议,
你可以把DocumentLock 放到using里面。
希望会对你有帮助。
回复 epwt 的帖子
十分感谢!!!;另外在代码中怎么调用 Zoom A命令?A是选择的实体么? 本帖最后由 epwt 于 2011-5-31 09:31 编辑
public static void SendStringToExecute(string command)
{
Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
if (!command.EndsWith(" ")) {//确保命令后面有空格,相当于需要回车后执行命令,否则命令不执行
command = command + " ";
}
doc.SendStringToExecute(command, true, false, false);
}
调用的时候
SendStringToExecute("._zoom _all ");
就可以了。
回复 epwt 的帖子
十分感谢!!!
页:
[1]
2