保存当前图层设置
<p><font face="Verdana">请教各位老师,在<font color="#0000ff">C#</font>中如何实现以下 <font color="#0000ff">LISP </font>中图层设置功能:<br/></font> </p><p><font face="Verdana">(setq old_lay(getvar "clayer")) <font face="Verdana">[</font>保存当前图层]</font></p>
<p><font face="Verdana">(SETVAR "CLAYER" "TEST") <font face="Verdana">[<font face="Verdana">设为当前图层</font>]</font></font></p>
<p><font face="Verdana">(setvar "clayer" old_lay) <font face="Verdana">[</font><font face="Verdana">恢复</font>当前图层]</font></p>
<p> </p>
<p>我希望实现的功能如下:</p>
<p> </p>
<p>第一步:在一个程序执行的开始先[保存当前图层]</p>
<p>第二步:将指定图层名称[<font face="Verdana">设为当前图层</font>]</p>
<p>第三步:执行绘图</p>
<p>第四步:在一个程序执行的开始先[ <font face="Verdana">恢复<font color="#0000ff">第一步</font>保存的</font>当前图层]</p>
<p> </p> <p>你的需求是不需要设置当前图层的</p>
<p>在生成图形对象后给他指定一个图层的ID就OK了</p> <p>狐哥</p>
<p>我需要实现的功能是如下:</p>
<p> 当运行程序时首先记住当前图面中当前图层(例如:当前图层为0层);接下来程序新建一个Test层,将程序生成所有图形对象为Test层(例如:新建一个图层为Test层);最后当程序结束绘图之后,再将图层转换为0层</p>
<p> </p> <p>顶一下...</p> <p>ObjectId layId = CreateLayer("01");</p>
<p> </p>
<p>........</p>
<p> </p>
<p>Line l = new Line(pt1, pt2);</p>
<p>l.LayerId = layId;</p>
<p>......</p>
<p> </p>
<p> </p> <font face="Verdana">如何获取当前图层...</font> <p>先把这里看一遍吧</p>
<p> </p>
<p><font face="Verdana"><a href="http://www.mjtd.com/helpcenter/netguide/">http://www.mjtd.com/helpcenter/netguide/</a></font></p>
<p> </p> 谢谢!问题已解决... 我是这么搞的,感觉有些笨,不知道大家有没有好的方法? /// <summary>
/// 取得当前图层名称
/// </summary>
/// <param name="db">数据库对象</param>
/// <returns></returns>
publicstatic stringGetCurrentLayer(this Database db)
{
//Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
//获取当前图形中所有颜色为红色的图层层名
var CurrentLayer = (from layer in db.GetAllLayers()
where layer.Id==db.Clayer
select layer.Name).ToList();
return CurrentLayer;
trans.Commit();
}
} 好好好!好好好!
页:
[1]