对这里有一个简单的例子。要根据屏幕大小自动缩放圆,还需要做更多的工作,但这应该可以让您开始了。
- using System;
- using System.Collections.Generic;
- using System.Text;
- using Autodesk.AutoCAD.ApplicationServices;
- using Autodesk.AutoCAD.DatabaseServices;
- using Autodesk.AutoCAD.EditorInput;
- using Autodesk.AutoCAD.Runtime;
- using Autodesk.AutoCAD.Geometry;
- using aGi = Autodesk.AutoCAD.GraphicsInterface;
- namespace MyTest
- {
- public class testing
- {
- private DBObjectCollection m_mrkers = new DBObjectCollection();
- private IntegerCollection intColl = new IntegerCollection();
- [CommandMethod("TempCirc")]
- public void tempcirc()
- {
- Document doc = Application.DocumentManager.MdiActiveDocument;
- Database db = doc.Database;
- doc.CommandWillStart += new CommandEventHandler(doc_CommandWillStart);
- Point3d ctrPt = new Point3d(100,100,0);
- Circle circ = new Circle(ctrPt, Vector3d.ZAxis, 5);
- circ.ColorIndex = 1;
- aGi.TransientManager.CurrentTransientManager.AddTransient(circ, aGi.TransientDrawingMode.DirectTopmost, 128, intColl);
- m_mrkers.Add(circ);
- }
- void doc_CommandWillStart(object sender, CommandEventArgs e)
- {
- if (e.GlobalCommandName.Contains("REGEN"))
- {
- ClearMarkers();
- Document doc = Application.DocumentManager.MdiActiveDocument;
- doc.CommandWillStart -= new CommandEventHandler(doc_CommandWillStart);
- }
- }
- private void ClearMarkers()
- {
- aGi.TransientManager.CurrentTransientManager.EraseTransient(m_mrkers[0], intColl);
- m_mrkers[0].Dispose();
- m_mrkers.Clear();
- }
- }
- }
|