Заметка содержит пример программного создания и детальной настройки стиля мультилиний в AutoCAD.
В результате работы кода (команда CreateMultilineStyle) будет создан новый стиль мультилиний:
В коде каждая изменяемая нами опция настроек помечена комментарием, содержащим наименование этой опции в англоязычной версии AutoCAD.
В результате работы кода (команда CreateMultilineStyle) будет создан новый стиль мультилиний:
В коде каждая изменяемая нами опция настроек помечена комментарием, содержащим наименование этой опции в англоязычной версии AutoCAD.
/* MultilineStyleSample.cs * © Андрей Бушман, 2014 * Пример создания стиля мультилиний. */ using System; using cad = Autodesk.AutoCAD.ApplicationServices .Application; using Ap = Autodesk.AutoCAD.ApplicationServices; using Db = Autodesk.AutoCAD.DatabaseServices; using Ed = Autodesk.AutoCAD.EditorInput; using Rt = Autodesk.AutoCAD.Runtime; using Clr = Autodesk.AutoCAD.Colors; [assembly: Rt.CommandClass(typeof(Bushman.CAD .Samples.Styles.MultilineStyleSample))] namespace Bushman.CAD.Samples.Styles { public class MultilineStyleSample { [Rt.CommandMethod("CreateMultilineStyle", Rt.CommandFlags.Modal)] public void createmlinestyle() { Ap.Document doc = cad.DocumentManager .MdiActiveDocument; if(doc == null) return; Ed.Editor ed = doc.Editor; Db.Database db = doc.Database; using(doc.LockDocument()) { using(Db.Transaction tr = db.TransactionManager.StartTransaction()) { Db.DBDictionary mlDict = (Db.DBDictionary)tr.GetObject( db.MLStyleDictionaryId, Db.OpenMode.ForWrite); String mlineStyleName = "Пример"; if(!mlDict.Contains(mlineStyleName)) { Db.MlineStyle mlineStyle = new Db.MlineStyle(); // Multiline Style name mlineStyle.Name = mlineStyleName; mlineStyle.Description = "Некоторое описание"; mlDict.SetAt(mlineStyleName, mlineStyle); tr.AddNewlyCreatedDBObject( mlineStyle, true); Double angleGrad = 90.0; Double angleRadian = angleGrad * Math.PI / 180; // angle // Start line mlineStyle.StartSquareCap = true; // Start Outer arcs mlineStyle.StartRoundCap = true; // Start Inner arcs mlineStyle.StartInnerArcs = true; // Start angle mlineStyle.StartAngle = angleRadian; // End line mlineStyle.EndSquareCap = true; // End Outer arcs mlineStyle.EndRoundCap = true; // End Inner arcs mlineStyle.EndInnerArcs = true; // End angle mlineStyle.EndAngle = angleRadian; Clr.Color color = Clr.Color.FromRgb( 255, 0, 0); // Fill color mlineStyle.Filled = true; mlineStyle.FillColor = color; // Display joints mlineStyle.ShowMiters = true; Db.MlineStyleElement element = new Db.MlineStyleElement(0.15, color, db.Celtype); // First element mlineStyle.Elements.Add(element, true ); element = new Db.MlineStyleElement( -0.15, color, db.Celtype); mlineStyle.Elements.Add(element, false); // Second element } tr.Commit(); } } } } }
Комментариев нет:
Отправить комментарий