乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 112|回复: 9

求助:在编辑时如何高亮显示相连的几条直线,编辑完成后关闭高亮显示?

[复制链接]

16

主题

48

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
112
发表于 2011-5-30 11:17:00 | 显示全部楼层 |阅读模式
在编辑时如何高亮显示相连的几条直线,编辑完成后关闭高亮显示?
回复

使用道具 举报

22

主题

99

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
187
发表于 2011-5-30 14:38:00 | 显示全部楼层
用highlight()和unhighlight()
回复

使用道具 举报

16

主题

48

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
112
发表于 2011-5-30 15:05:00 | 显示全部楼层
回复
highlight() 显示出来的怎么是虚线啊,而且如果是多段线的话只改变第一段.能给我点具体代码参考下么?
回复

使用道具 举报

22

主题

99

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
187
发表于 2011-5-30 17:03:00 | 显示全部楼层
高亮的实质就是把实线变成虚线。
你可以试着在选中实体的时候改变实体的颜色,设置它高亮显示,
那样效果会更明显些。
至于只改变第一段线,你还是贴段代码上来吧。
具体代码就是ent.Highlight()了。
要是还有问题,再贴段代码讨论下?
回复

使用道具 举报

16

主题

48

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
112
发表于 2011-5-30 17:10:00 | 显示全部楼层
回复
OK,谢谢了,现在基本问题都已解决,就是改变颜色并且在编辑完成时恢复原来的默认颜色,怎么操作?能给我点具体代码参考下么?
回复

使用道具 举报

16

主题

48

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
112
发表于 2011-5-30 17:30:00 | 显示全部楼层
回复
现在还要实现个功能,就是我同过代码选择个实体时,当前窗口要移动到该实体所在位置.请问怎么实现?
代码如下
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();
        }
回复

使用道具 举报

22

主题

99

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
187
发表于 2011-5-30 17:44:00 | 显示全部楼层
这个默认颜色。。。。。你可能需要记录一下,再重新回去设置了。
当然也许有更好的办法,也期待高人出现哈。
关于移动到实体所在的位置,我目前没有特别好的解决办法,
但是你可以试一下调用 Zoom A命令,看是否符合你的要求。
还有就是提点建议,
你可以把DocumentLock 放到using里面。
希望会对你有帮助。
回复

使用道具 举报

16

主题

48

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
112
发表于 2011-5-30 18:29:00 | 显示全部楼层
回复
十分感谢!!!;另外在代码中怎么调用 Zoom A命令?A是选择的实体么?
回复

使用道具 举报

22

主题

99

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
187
发表于 2011-5-31 09:13:00 | 显示全部楼层

  1. public static void SendStringToExecute(string command)
  2.     {
  3.       Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;      
  4.           if (!command.EndsWith(" ")) {//确保命令后面有空格,相当于需要回车后执行命令,否则命令不执行
  5.         command = command + " ";
  6.       }
  7.       doc.SendStringToExecute(command, true, false, false);
  8.     }

调用的时候
SendStringToExecute("._zoom _all ");
就可以了。
回复

使用道具 举报

16

主题

48

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
112
发表于 2011-5-31 10:04:00 | 显示全部楼层
回复
十分感谢!!!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-15 16:21 , Processed in 0.425947 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表