[规则重定义] 规则重定义
用AutoCAD.NET二次开发目前还不支持自定义对象,不过我们可以用一些其他的方法来实现自定义对象的效果,规则重定义可以控制对象的显示效果,即线可以显示成一根管,点可以显示成一个圆。下面看看规则重定义的例子把AutoCAD里面的直线变成一个空心管。using System;<p>
</p><p>using Autodesk.AutoCAD.DatabaseServices;</p><p>using Autodesk.AutoCAD.Geometry;</p><p>using Autodesk.AutoCAD.Runtime;</p><p>using Autodesk.AutoCAD.GraphicsInterface;</p><p>
</p><p></p><p>namespace Sample</p><p>{</p><p> class LineToPipeOverule</p><p> {</p><p> </p><p> public void Start()</p><p> {</p><p> LineToPipe line=new LineToPipe(10);</p><p> StartOverRule(RXClass.GetClass(typeof(Line)), line); </p><p> }</p><p>
</p><p> </p><p> public void End()</p><p> {</p><p> EndOverRule();</p><p> }</p><p>
</p><p> /// <summary></p><p> /// 启动重定义</p><p> /// </summary></p><p> /// <param name="CADClass">要重定义的类型</param></p><p> /// <param name="overrule">把要重定义的类型定义为的对象</param></p><p> public static void StartOverRule(RXClass CADClass, Overrule overrule)</p><p> {</p><p> Overrule.AddOverrule(CADClass, overrule, false);</p><p> Overrule.Overruling = true;</p><p> }</p><p>
</p><p> /// <summary></p><p> /// 关闭重定义</p><p> /// </summary></p><p> public static void EndOverRule()</p><p> {</p><p> Overrule.Overruling = false;</p><p> }</p><p> }</p><p>
</p><p>
</p><p> /// <summary></p><p> ///线显示成管</p><p> /// </summary></p><p> public class LineToPipe : DrawableOverrule</p><p> {</p><p> private double r;</p><p> public LineToPipe(double R)</p><p> {</p><p> r = R;</p><p> }</p><p> public override bool WorldDraw(Drawable drawable, WorldDraw wd)</p><p> {</p><p> if (drawable is Line)</p><p> {</p><p> Line line = (Line)drawable;</p><p> Circle circle = new Circle(line.StartPoint, line.EndPoint - line.StartPoint, r);</p><p> ExtrudedSurface pipe = new ExtrudedSurface();</p><p> pipe.CreateExtrudedSurface(circle, line.EndPoint - line.StartPoint, new SweepOptions());</p><p> pipe.WorldDraw(wd);</p><p> circle.Dispose();</p><p> pipe.Dispose();</p><p> }</p><p> return true;</p><p> }</p><p> }</p><p>}</p> 路过!!!
不发表意见……
路过!!!
不发表意见……
(*^__^*) 嘻嘻……
顶!!!!!!!!!!
顶!!!!!!!!!!
非常感谢!!
谢谢!!!
帮顶……
谢谢BIM大神…
路过!!!
帮顶……
顶!!!!!!!!!!
顶!!!!!!!!!! 顶......
楼下跟上..... 顶!!!!!!!!!! 顶起来…………
页:
[1]
2