В данной заметке показан подробный пример по созданию и настройке размерного стиля в AutoCAD. Рассмотрена программная настройка каждой опции каждой вкладки диалогового окна редактирования размерных стилей.

Результат работы обозначенного ниже кода (команда CreateDimStyle ) будет выглядеть следующим образом:


В коде каждая изменяемая нами опция настроек помечена комментарием, содержащим наименование этой опции в англоязычной версии AutoCAD.

/* DimStyleSample.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; //************************************ namespace Bushman.CAD.Samples.Styles { public class DimStyleSample { public void CreateDimStyle() { Ap.Document doc = cad .DocumentManager .MdiActiveDocument; if (doc == null ) return ; Ed.Editor ed = doc.Editor; Db.Database db = doc.Database; using (Db.Transaction tr = db.TransactionManager.StartTransaction()) { // Создадим новый текстовый стиль для // использования его в наших размерных // стилях Db.TextStyleTable tst = (Db.TextStyleTable )tr.GetObject(db.TextStyleTableId, Db.OpenMode .ForWrite); Db.TextStyleTableRecord textStyle = new Db.TextStyleTableRecord (); textStyle.Name = "Тип А прямой" ; textStyle.FileName = "Arial.ttf" ; textStyle.XScale = 0.75; tst.Add(textStyle); tr.AddNewlyCreatedDBObject(textStyle, true ); // Создаём новый размерный стиль... Db.DimStyleTable dst = (Db.DimStyleTable )tr.GetObject(db.DimStyleTableId, Db.OpenMode .ForWrite); Db.DimStyleTableRecord dimStyle = new Db.DimStyleTableRecord (); dimStyle.Name = "Основной без допусков" ; // Откройте диалоговое окно "Modify // Dimension Style" (команда _DIMSTYLE) и // нажмите кнопку "Modify.." - мы будем // программно изменять эти настройки. // Наименования вкладок, групп настроек и // конкретных опций будут приводиться для // английской версии AutoCAD. // *** Вкладка LINES *** // Группа настроек "Dimension lines": Db.ObjectId lineTypeId = // db.ContinuousLinetype; // или по блоку: db.ByBlockLinetype; // цвет "ByLayer" Clr.Color colorByLayer = Clr.Color .FromColorIndex(Clr.ColorMethod .ByLayer, 256); // Размерным линиям назначаем цвет // "ByLayer" dimStyle.Dimclrd = colorByLayer; // Color // Linetype dimStyle.Dimltype = lineTypeId; // Lineweight dimStyle.Dimlwd = Db.LineWeight .ByLineWeightDefault; // Extend Beyond Ticks dimStyle.Dimdle = 2; dimStyle.Dimdli = 7; // Baseline Spacing // Suppress dim line 1 dimStyle.Dimsd1 = false ; // Suppress dim line 2 dimStyle.Dimsd2 = false ; // Группа настроек "Extension Lines": dimStyle.Dimclre = colorByLayer; // Color // Linetype Ext 1 dimStyle.Dimltex1 = lineTypeId; // Linetype Ext 2 dimStyle.Dimltex2 = lineTypeId; dimStyle.Dimlwe = Db.LineWeight .ByLineWeightDefault; // Lineweight // Suppress Ext line 1 dimStyle.Dimse1 = false ; // Suppress Ext line 2 dimStyle.Dimse2 = false ; // Extend Beyond Dim Lines dimStyle.Dimexe = 2.0; // Offset From Origin dimStyle.Dimexo = 0; // Fixed Length Extension Lines dimStyle.DimfxlenOn = false ; dimStyle.Dimfxlen = 1; // Length // *** Вкладка SYMBOL AND ARROWS *** // Группа "Arrowheads": // Внимание: Аннотативные блоки не могут // быть использованными в качестве // пользовательского варианта для опций // First, Second и Leader. В обозначенных // опциях пользовательский вариант // представлен в виде элемента "User // Arrow..." в самом низу раскрывающегося // списка. Db.BlockTable bt = (Db.BlockTable )tr .GetObject(db.BlockTableId, Db.OpenMode .ForRead); // Получаем идентификаторы интересующих // нас определений блоков Db.ObjectId id1 = GetArrowObjectId_dim("DIMBLK1" , "_DOT" ); Db.ObjectId id2 = GetArrowObjectId_dim("DIMBLK2" , "_CLOSED" ); Db.ObjectId id3 = GetArrowObjectId_dim("DIMBLK2" , "_Oblique" ); // Убедитесь, что вы установили в true // значение свойства "Dimsah", если вам // нужно назначить опциям First и Second // разные значения! dimStyle.Dimsah = true ; // В качестве значения опций группы // Arrowheads вы можете назначить // Db.ObjectId.Null - в этом случае будет // использоваться маркер по умолчанию. // Опция "First" на вкладке "Symbols and // Arrows" (системная переменная Dimblk1) dimStyle.Dimblk1 = id3; // Опция "Second" на вкладке "Symbols and // Arrows" (системная переменная Dimblk2) dimStyle.Dimblk2 = id3; // При желании, вы можете изменить оба // параметра (First и Second) // одновременно, задав значение свойству // Dimblk. Но в этом случае вы не должны // в коде назначать значения для свойств // "Dimblk1" и "Dimblk2": // dimStyle.Dimblk = id3; // Опция Leader. Если в качестве значения // указать ObjectId.Null, то будет // использоваться вариант "Closed filled" dimStyle.Dimldrblk = Db.ObjectId .Null; dimStyle.Dimasz = 3; // Arrow Size // Группа "Center marks": // "Dimcen": // 0 - None; // 1 - Mark; // -1 - Line Int32 centerMarks = -1; Double centerMarksSize = 2.0; // Размер центрального маркера или // центральной линии dimStyle.Dimcen = centerMarks * centerMarksSize; // Значение опции "Dimension Break" // хранится в расширенных данных (XData) // размерного стиля. Давайте доберёмся до // него... // Для начала, получаем таблицу имён // зарегистрированных приложений Db.RegAppTable regTable = (Db.RegAppTable )tr.GetObject(db.RegAppTableId, Db.OpenMode .ForRead); String xName = "cad_DSTYLE_DIMBREAK" ; // Если нужный нам элемент не // зарегистрирован - выполняем его // регистрацию if (!regTable.Has(xName)) { regTable.UpgradeOpen(); Db.RegAppTableRecord app = new Db.RegAppTableRecord (); app.Name = xName; regTable.Add(app); tr.AddNewlyCreatedDBObject(app, true ); } Db.ResultBuffer rb = new Db.ResultBuffer (new Db.TypedValue ((Int32 )Db.DxfCode .ExtendedDataRegAppName, xName), new Db.TypedValue ((Int32 )Db.DxfCode .ExtendedDataInteger16, 391), new Db.TypedValue ((Int32 )Db.DxfCode .ExtendedDataReal, 0.0 /* Наше значение свойства "Dimension * Break" */ )); dimStyle.XData = rb; // Группа (опция) "Arc Length Symbol": // Значения, допустимые для свойства // "Dimarcsym" (три переключателя): // 0 - Precending dimension text // 1 - Above dimension text // 2 - None // Опция "Arc Length Symbol" dimStyle.Dimarcsym = 1; // Группа "Radius Jog Dimensions": // Jog Angle dimStyle.Dimjogang = 45 * Math .PI / 180; // Группа "Linear Jog Dimensions": // Значение "Linear Jog Size" хранится в // расширенных данных (XData) размерного // стиля. xName = "cad_DSTYLE_DIMJAG" ; if (!regTable.Has(xName)) { regTable.UpgradeOpen(); Db.RegAppTableRecord app = new Db.RegAppTableRecord (); app.Name = xName; regTable.Add(app); tr.AddNewlyCreatedDBObject(app, true ); } rb = new Db.ResultBuffer (new Db.TypedValue ((Int32 )Db.DxfCode .ExtendedDataRegAppName, xName), new Db.TypedValue ((Int32 )Db.DxfCode .ExtendedDataInteger16, 388), new Db.TypedValue ((Int32 )Db.DxfCode .ExtendedDataReal, 1.4995 /* Значение для свойства "Linear Jog * Size" */ )); dimStyle.XData = rb; // *** Вкладка TEXT *** // Группа "Text Appearance": // Text Style dimStyle.Dimtxsty = textStyle.ObjectId; dimStyle.Dimclrt = Clr.Color .FromColorIndex(Clr.ColorMethod .ByAci, 210); // Text Color // Свойство "Dimtfill" влияет на // поведение опции "Fill Color" и // принимает одно из следующих значений: // 0 - Фон отсутствует // 1 - Использовать текущий фон чертежа // 2 - Фон, указанный в свойстве // Dimtfillclr. dimStyle.Dimtfill = 0; dimStyle.Dimtfillclr = Clr.Color .FromColorIndex(Clr.ColorMethod .ByAci, 256); // Fill Color (см. Dimtfill выше) dimStyle.Dimtxt = 3.5; // Text Height // Fraction Height Scale dimStyle.Dimfrac = 2; // Включить\Отключить опцию "Draw Frame // Around Text" Boolean drawFrameAroundText = false ; // Группа "Text Placement": // Опция Vertical (свойство "Dimtad") // может принимать только следующие // значения: // 0 - Centered: центрировать размерный // текст между выносными линиями. // 1 - Above: разместить размерный текст // над размерной линией, за // исключением случаев, когда // размерная линия не горизонтальна и // текст внутри выносных линий рамещён // горизонтально (DIMTIH = 1). // Расстояние от размерной линии до // самой нижней строки текста // определяется значением переменной // DIMGAP (свойство Dimgap). // 2 - Outside: разместить размерный // текст в стороне от размерной линии, // подальше от определённых точек. // 3 - JIS: разместить размерный текст в // соответствии с Японским // Индустриальным Стандартом. dimStyle.Dimtad = 1; // Vertical // Опция Horizontal (свойство "Dimjust") // принимает только следующие значения: // 0 - Centered // 1 - At Ext Line 1 // 2 - At Ext Line 2 // 3 - Over Ext Line 1 // 4 - Over Ext Line 2 dimStyle.Dimjust = 0; // Horizontal // View Direction #if NEWER_THAN_2009 dimStyle.Dimtxtdirection = true; #endif // Offset from Dim Line dimStyle.Dimgap = 1 * (drawFrameAroundText ? -1: 1); // Группа "Text Alignment": // Для того, чтобы выбрать один из трёх // доступных вариантов, следует назначить // значение сразу двум свойствам: Dimtih // и Dimtoh. // // Horizontal: // Dimtih = true; // Dimtoh = true; // // Aligned with Dimension Line: // Dimtih = false; // Dimtoh = false; // // ISO Standard: // Dimtih = false; // Dimtoh = true; // // Text Alignment dimStyle.Dimtih = false ; dimStyle.Dimtoh = false ; // *** Вкладка FIT *** // Группа "Fit Options": // Свойство "Dimatfit" может принимать // 0 - Выбрать опцию Both text and arrows // 1 - Выбрать опцию Arrows // 2 - Выбрать опцию Text // 3 - Выбрать опцию "Either text or // arrows (best fit)" // Для того, чтобы назначить свойству // "Dimatfit" нужное значение 0-3, нужно // сначала назначить false свойству // Dimtix. Если Dimtix назначить true, то // будет выбрана опция "Always Keep Text // Between Ext Lines". // Опция "Always Keep Text Between Ext // Lines" dimStyle.Dimtix = false ; // Не забываем предварительно установить // "Dimtix" в false dimStyle.Dimatfit = 3; // Suppress Arrows If They Don"t Fit // Inside Extension Lines dimStyle.Dimsoxd = false ; // Группа "Text placement" group: // Свойство Dimtmove может принимать // только следующие значения: // 0 - Выбрана опция "Beside the // dimension line" // 1 - Выбрана опция "Over dimension // line, with leader" // 2 - Выбрана опция "Over dimension // line, without leader" dimStyle.Dimtmove = 1; // Группа"Scale for Dimension Features": dimStyle.Annotative = Db.AnnotativeStates .True; // Annotative dimStyle.Dimscale = 1.0; // Dimscale // Для того, чтобы установить опцию // "Scale Dimensions To Layout" нужно // свойству Dimscale присвоить 0: // dimStyle.Dimscale = 0; // Группа "Fine Tuning": // Place Text Manually dimStyle.Dimupt = false ; // Draw Dim Line Between Ext Lines dimStyle.Dimtofl = false ; // *** Вкладка Primary Units *** // Группа "Leader dimensions" // Опция "Unit format" (свойство // "Dimlunit") может принимать только // следующие значения: // 1 - Scientific // 2 - Decimal // 3 - Engineering // 4 - Architectural // 5 - Fractional // 6 - Windows Desktop // Unit format dimStyle.Dimlunit = 2; // Масштабный коэффициент высоты // текста, записанного в виде дроби. Эта // высота расчитывается путём умножения // указанного в свойстве Dimtfac коэффи- // циента на высоту текста, указанную в // свойстве Dimtxt. dimStyle.Dimtfac = 0.5; // Количество знаков после запятой: dimStyle.Dimdec = 0; // Precision // Опция "Fraction format" (свойство // "Dimfrac") принимает одно из следующих // значений: // 0 - Horizontal // 1 - Diagonal // 2 - Not stacked (например 1/2) dimStyle.Dimfrac = 0; // Fraction Format // Если опции "Unit format" в качестве // значения назначен "Decimal", то в тек- // сте размеров, вместо точки, в качестве // разделителя десятичной части будет // использоваться иной разделитель, кото- // рый указывается при помощи свойства // "Dimdsep". Если свойству "Dimdsep" // присвоить NULL в качестве значения, то // в качестве десятичного разделителя // будет использоваться точка. // Опция "Decimal separator" (свойство // "Dimdsep") может принимать только // следующие значения: // "." - Точка // "," - Запятая // " " - Пробел // Decimal Separator dimStyle.Dimdsep = "," ; dimStyle.Dimrnd = 0.0; // Round Off // присваиваемого свойству Dimpost. // Пример: "L = <> // <> // " m" - суффикс dimStyle.Dimpost = "<>" ; // Группа "Measurement Scale": dimStyle.Dimlfac = 1; // Scale Factor // Выделить или снять выделение опции // "Apply to Layout Dimensions Only" на // вкладке "Primary Units": Boolean applyToLayoutDimensionsOnly = false ; // Если свойству "Dimfrac" назначить // отрицательное значение, то опция // "Apply to Layout Dimensions Only" // будет включена: dimStyle.Dimlfac = applyToLayoutDimensionsOnly ? -1 * Math .Abs(dimStyle.Dimlfac) : Math .Abs(dimStyle.Dimlfac); // Подгруппа "Zero Suppression" группы // "Leader dimensions": // Свойству "Dimzin" property" следует // футов и дюймов // футов и дюймов // для дюймов // для футов // записывается как,5000) // записывается как 12,5) // как,5) dimStyle.Dimzin = 8; #if NEWER_THAN_2009 // размерного стиля с именами "DIMMZF" и // "DIMMZS" #endif // Группа "Angular Dimensions": // Опции "Units format" (свойство // "Dimaunit) следует назначать одно из // следующих значений: // 0 - Decimal degrees // 1 - Degrees/minutes/seconds // 2 - Gradians // 3 - Radians dimStyle.Dimaunit = 1; // Units Format // Опция Precision (свойство "Dimadec") // должно содержать одно из следующих // значений: // -1 - В угловых размерах отображается // количество знаков после запятой, // указанных с помощью переменной // DIMDEC. // 0-8 - Указывает количество знаков // после запятой, отображаемых в // угловых размерах (независимо от // переменной DIMDEC) dimStyle.Dimadec = 4; // Precision // группы "Angular Dimensions" управляет // подавлением нулей для всех угловых // размеров. // Свойство "Dimazin" должно содержать // одно из следующих значений: // 0 - Отображает все ведущие и замыкаю- // щие нули. // 1 - Подавляет ведущие нули в десятич- // ных размерах (например, 0,5000 // записывается как,5000) // 2 - Подавляет замыкающие нули в // десятичных размерах (например, // 12,5000 записывается как 12,5) // 3 - Подавление ведущих и замыкающих // нулей (например, 0,5000 записывает- // ся как,5) dimStyle.Dimazin = 2; // *** Вкладка ALTERNATIVE UNITS *** // Display Alternate Units dimStyle.Dimalt = false ; // Группа "Alternate Units": // Опция "Unit Format" (свойство // "Dimaltu") должна содержать одно из // следующих значений: // 1 - Scientific // 2 - Decimal // 3 - Engineering // 4 - Architectural Stacked // 5 - Fractional Stacked // 6 - Architectural // 7 - Fractional // 8 - Windows Desktop dimStyle.Dimaltu = 2; // Unit Format dimStyle.Dimaltd = 0; // Precision // Multiplier for Alternate Units dimStyle.Dimaltf = 25.4; // Round Distances To dimStyle.Dimaltrnd = 0; // Prefix (префикс) и Suffix (суффикс) // Префикс и суффикс указываются в // составе строкового значения, // присваиваемого свойству Dimapost. // Пример: "L = <> m" // Где: // "L = " - префикс // <> - вычисленное числовое значение // " m" - суффикс dimStyle.Dimapost = "<>" ; // Группа "Zero Suppression": // Свойству "Dimaltz" property" следует // назначать одно из следующих значений: // 0 - Подавляет нулевые значения для // футов и дюймов // 1 - Записывает нулевые значения для // футов и дюймов // 2 - Записывает нулевые значения для // футов и подавляет нулевые значения // для дюймов // 3 - Записывает нулевые значения для // дюймов и подавляет нулевые значения // для футов // 4 - Подавляет ведущие нули в десятич- // ных размерах (например, 0,5000 // записывается как,5000) // 8 - Подавляет замыкающие нули в деся- // тичных размерах (например, 12,5000 // записывается как 12,5) // 12 - Подавляет и ведущие, и замыкающие // нули (например, 0,5000 записывается // как,5) dimStyle.Dimaltz = 0; // Zero Suppression // Если включено подавление ведущих ну- // лей, то становятся доступными для // редактирования опции "Sub-units // factor" и "Sub-units suffix". #if NEWER_THAN_2009 // TODO: Автору кода не удалось программ- // но добраться до этих свойств, т.к. // не существует переменных и свойств // размерного стиля с именами "DIMALTMZF" // и "DIMALTMZS". #endif // Группа "Placement": const String bpv = @"\X" ; // Переключение опций данной группы // выполняетя при помощи добавления или // удаления суффикса "\X" в значении // свойства Dimpost: // Если нужно выбрать опцию "Below // primary value": // dimStyle.Dimpost = dimStyle.Dimpost // .EndsWith(bpv) ? dimStyle.Dimpost: // dimStyle.Dimpost + bpv; // Если нужно выбрать опцию "After // primary value": dimStyle.Dimpost = !dimStyle.Dimpost .EndsWith(bpv) ? dimStyle.Dimpost: dimStyle.Dimpost.Substring(0, dimStyle.Dimpost.Length - bpv.Length); // *** Вкладка Tolerances *** // Группа "Tolerance Format": // Dimtol = true, Dimlim = true - // "Limits", but don"t set this // combinations(!!!), or you will get // "Style Overrides" for Dimension // Style name. For getting the // "Limits" value, look below. // // Symmetrical: // Dimtol = true // Dimlim = false // // Limits (рекомендуемый вариант): // Dimtol = false // Dimlim = true // // None: // Dimtol = false // Dimlim = false // // Basic: // dimStyle.Dimgap = -1 * Math.Abs( // dimStyle.Dimgap); // // Deviation: // Dimtol = true // Dimtm = 1.0e-009 dimStyle.Dimtol = false ; dimStyle.Dimlim = false ; dimStyle.Dimtdec = 0; // Precision dimStyle.Dimtp = 1; // Upper Value dimStyle.Dimtm = 0; // Lower Value // Scaling for Height dimStyle.Dimtfac = 0.5; // Опция "Vertical Position" (свойство // "Dimtolj") должно принимать одно из // следующих значений: // 0 - Bottom // 1 - Middle // 2 - Top // Vertical Position dimStyle.Dimtolj = 1; // Группа "Tolerance Alignment": // TODO: Автору кода не удалось изменить // состояние переключателей "Align // Decimal Separators" и "Align // Operational Symbols" // Подгруппа "Zero Suppression" в группе // "Tolerance Format": // "Dimtzin" property"s allowed values: // 0 - Подавляет нулевые значения для // футов и дюймов // 1 - Записывает нулевые значения для // футов и дюймов // 2 - Записывает нулевые значения для // футов и подавляет нулевые значения // для дюймов // 3 - Записывает нулевые значения для // дюймов и подавляет нулевые значения // для футов // 4 - Подавляет ведущие нули в десятич- // ных размерах (например, 0,5000 // записывается как,5000) // 8 - Подавляет замыкающие нули в деся- // тичных размерах (например, 12,5000 // записывается как 12,5) // 12 - Подавляет и ведущие, и замыкающие // нули (например, 0,5000 записывается // как,5) dimStyle.Dimtzin = 8; // Zero Suppression // Группа "Alternate Unit Tolerance": dimStyle.Dimalttd = 0; // Precision // Подгруппа "Zero Suppression" в составе // группы "Alternate Unit Tolerance": // "Dimalttz" property"s allowed values: // 0 - Подавляет нулевые значения для // футов и дюймов // 1 - Записывает нулевые значения для // футов и дюймов // 2 - Записывает нулевые значения для // футов и подавляет нулевые значения // для дюймов // 3 - Записывает нулевые значения для // дюймов и подавляет нулевые значения // для футов // // Для подавления ведущих или замыкающих // нулей к выбранному значению может быть // добавлено: // // 4 - Подавление ведущих нулей // 8 - Подавление замыкающих нулей. // Zero Suppression dimStyle.Dimalttz = 0; // *** // Сохраняем выполненные изменения dst.Add(dimStyle); tr.AddNewlyCreatedDBObject(dimStyle, true ); // Устраняем потенциально возможную // проблему появления в перечне размерных // стилей дополнительного элемента, // именованного как "Style Overrides": db.Dimstyle = dimStyle.ObjectId; db.SetDimstyleData(dimStyle); // Теперь, на базе созданного нами основ- // ного размерного стиля, можно создавать // его деталлизированные варианты для: // - радиальных размеров // - угловых размеров // - линейных размеров // - и т.д. // Для дополнительной информации можно // почитать раздел документации: // ObjectARX Reference Guide > Additional // Information > Dimension Styles > // Dimension Style Families. // Дочерние размерные стили создаются на // основе базового. Имена формируются по // правилу: ИмяБазовогоСтиля + Суффикс. // В качестве суффиксов используется один // из следующих вариантов: String names = new String { "$0" , // Линейный "$2" , // Угловой "$3" , // Диаметральный "$4" , // Радиальный "$6" , // Ординатный "$7" // Выноски }; foreach (String item in names) { Db.DimStyleTableRecord childStyle; String childName = dimStyle.Name + item; if (dst.Has(childName)) { childStyle = (Db.DimStyleTableRecord )tr .GetObject(dst, Db.OpenMode .ForWrite); } else { childStyle = (Db.DimStyleTableRecord )dimStyle .Clone(); childStyle.Name = childName; dst.Add(childStyle); tr.AddNewlyCreatedDBObject(childStyle, true ); } } // Далее можно выполнять настройку // унаследованных размерных стилей, // выполняя тем самым необходимую // деталлизацию для конкретных типов // размеров. // Редактирование выполняется точно так // же, как мы это проделали выше с базо- // вым стилем, поэтому в нашем примере // не будем повторяться и на этом // завершим работу. tr.Commit(); } } static Db.ObjectId GetArrowObjectId_dim(string arrow, string newArrName) { Db.ObjectId arrObjId = Db.ObjectId .Null; Ap.Document doc = cad .DocumentManager .MdiActiveDocument; Db.Database db = doc.Database; string oldArrName = cad .GetSystemVariable(arrow) as string ; // (эта операция может создать в чертеже // новое определение блока) cad .SetSystemVariable(arrow, newArrName); // Восстанавливаем предыдущее значение if (oldArrName.Length != 0) cad .SetSystemVariable(arrow, oldArrName); // Получаем идентификатор блока Db.Transaction tr = db.TransactionManager .StartTransaction(); using (tr) { Db.BlockTable bt = (Db.BlockTable )tr .GetObject(db.BlockTableId, Db.OpenMode .ForRead); arrObjId = bt; tr.Commit(); } return arrObjId; } } }

Настроить размеры в AutoCAD по ГОСТу, по высоте текста, а также создать свой собственный размерный стиль можно командой Формат / Размерные стили . Чтобы создать новый размерный стиль необходимо в диалоговом окне Диспетчер стилейщелкнутьНовый . Также в этом окне можно задать имя вновь созданного стиля. Рис 1 .


Диспетчер символов имеет много верхних вкладок. Это Линии, Стрелки и символы, Текст, Основные единицы. С помощью этих вкладок можно настроить размерный стиль.

В диалоговом окне Диспетчер стилей можно настроитьво вкладке Линии следующие параметры:

1) Задать шаг в базовых размерах

2) Удлинение за размерные линии – величина удлинения выносных линий за размерную линию

3) Отступ от объекта – отступы выносных линий от объекта

На вкладке Стрелки и символы можно произвести следующие настройки:

1) Стрелки можно задать дизайн стрелок, а именно левой, павой и выносной линии

) 2) Размер стрелки – можно указать размер стрелки

3) Символ длины дуги – задает положение дуги над текстом или под текстом

Вкладка текст, в которой можно настроить текст.

1) Текстовый стиль, в котором можно выбрать шрифт, задать отступ между символами

2) Высота текста – можно задать высоту текста

4) Выравнивание текста – можно задать выравнивание текста по горизонтали и по вертикали

5) Ориентирование текста – можно задать положение текста вдоль размерной линии, горизонтально

На вкладке Размещение можно задать Опции размещения, Выравнивание текста, Масштаб размерных элементов, подгонка элементов.

1) Опции размещения – когда текст и стрелки не могут быть помещены между выносными линиями (не помещаются) , то можно указать что будет первым вынесено за выносными линиями

2) Подавить стрелки если они не помещаются между выносными линиями – необходимо поставить галочку, если, да и ничего не ставить, если нет.

3) Выравнивание текста, можно задать положение размерной линии или стоить выноску, если вы будете перемещать текст на чертеже.

4) Глобальный масштаб, можно задать глобальный масштаб

5) Подгонка элементов, можно задать положение элементов

Вкладка Основные единицы можно указать точность размеров. Указать префикс, допустим, если вы хотите, чтобы перед цифрами размера была буква, например В10, а не просто значение 10. Это необходимо, когда нужно указать, что размер или размер чего. Также в этой вкладке можно указать разделитель между целой и дробной части (точка или запятая).Можно указать масштаб измерений (в зависимости от масштаба чертежа). Можно указать размерность и точность угловых размеров (в градусах или в градусах минутах секундах).

Ну и во вкладках Альтернативные единицы и Допуски , можно указать альтернативные единицы и допуски.

Настроить размеры в AutoCAD по ГОСТу, по высоте текста, а также создать свой собственный размерный стиль можно командой Формат / Размерные стили . Чтобы создать новый размерный стиль необходимо в диалоговом окне Диспетчер стилейщелкнутьНовый . Также в этом окне можно задать имя вновь созданного стиля. Рис 1 .


Диспетчер символов имеет много верхних вкладок. Это Линии, Стрелки и символы, Текст, Основные единицы. С помощью этих вкладок можно настроить размерный стиль.

В диалоговом окне Диспетчер стилей можно настроитьво вкладке Линии следующие параметры:

1) Задать шаг в базовых размерах

2) Удлинение за размерные линии – величина удлинения выносных линий за размерную линию

3) Отступ от объекта – отступы выносных линий от объекта

На вкладке Стрелки и символы можно произвести следующие настройки:

1) Стрелки можно задать дизайн стрелок, а именно левой, павой и выносной линии

) 2) Размер стрелки – можно указать размер стрелки

3) Символ длины дуги – задает положение дуги над текстом или под текстом

Вкладка текст, в которой можно настроить текст.

1) Текстовый стиль, в котором можно выбрать шрифт, задать отступ между символами

2) Высота текста – можно задать высоту текста

4) Выравнивание текста – можно задать выравнивание текста по горизонтали и по вертикали

5) Ориентирование текста – можно задать положение текста вдоль размерной линии, горизонтально

На вкладке Размещение можно задать Опции размещения, Выравнивание текста, Масштаб размерных элементов, подгонка элементов.

1) Опции размещения – когда текст и стрелки не могут быть помещены между выносными линиями (не помещаются) , то можно указать что будет первым вынесено за выносными линиями

2) Подавить стрелки если они не помещаются между выносными линиями – необходимо поставить галочку, если, да и ничего не ставить, если нет.

3) Выравнивание текста, можно задать положение размерной линии или стоить выноску, если вы будете перемещать текст на чертеже.

4) Глобальный масштаб, можно задать глобальный масштаб

5) Подгонка элементов, можно задать положение элементов

Вкладка Основные единицы можно указать точность размеров. Указать префикс, допустим, если вы хотите, чтобы перед цифрами размера была буква, например В10, а не просто значение 10. Это необходимо, когда нужно указать, что размер или размер чего. Также в этой вкладке можно указать разделитель между целой и дробной части (точка или запятая).Можно указать масштаб измерений (в зависимости от масштаба чертежа). Можно указать размерность и точность угловых размеров (в градусах или в градусах минутах секундах).

Ну и во вкладках Альтернативные единицы и Допуски , можно указать альтернативные единицы и допуски.

Эта заметка посвящена размерам в Автокаде, размерным стилям их тонкой настройке, применению, и небольшим трюкам. В конце можете найти ссылку на пример с настроенными размерными стилями для разных масштабов и стилей работы в автокаде (в модели, в масштабе 1:1, в масштабе 1:1000)

Предисловие, о классическом автокаде

Для работы в автокаде у меня включен «классический стиль» ибо Риббоны (огромная панель вверху) в CAD системах — скорее мешают. Воткнуты в автокад они по требованию Microsoft, и пришиты, прямо скажем, через одно место. Ни наглядности ни особой функциональности они так же не дают. Места занимают много, функций содержат мало, чтобы добраться до нужных приходится постоянно носится между вкладками. Плюс сами риббоны получаются зачастую полу-пустыми.

Поэтому я работаю в пространстве Классического автокада. Соответственно, для лучшего понимания, советую включить именно этот стиль. (команда _cui , в открывшемся окне во вкладке [Рабочие пространства ] выбрать Классический AutoCAD , щелкнуть правой клавишей мыши, в выпавшем списке выбрать «Установить » и «Установить по умолчанию », и кнопки внизу применить и ок )

О размерах в автокаде

Итак, размеры в Автокаде это отдельные объекты, которые имеют по сравнению с примитивами (линии дуги и т.п) целый ряд свойств которые делают их абсолютно незаменимыми при оформлении чертежей.

панель инструментов Размер

Работают они в общем случае довольно интуитивно: указать измеряемое расстояние (угол), последовательно указав точки, между которыми хотим получить размер и указать отступ от объекта измерения. Остальные параметры размера - высота текста, засечки, стрелки, масштаб измерений, допуски и пр. настраиваются по вкусу и требованиям ГОСТ.

Вот на настройке и остановимся подробнее. Настраивать можно каждый размер по отдельности либо с помощью так называемых размерных стилей. Соответственно, по отдельности можно настраивать следующим образом — выбрать на чертеже размер, открыть его «свойства» (ctrl+1, правая кнопка мыши-> «свойства») Параметров, как видите, — множество.

Хорошая новость действительно необходимых для большинства задач не так уж и много. Но об этом ниже.

Итак, размер с помощью свойств мы настроили, однако следующий новый размер придется настраивать с нуля. Либо воспользоваться с настроенного объекта на новый. Что не удобно если размеров больше пары десятков.

Размерные стили в автокаде

Вот тут нам на помощь и приходят размерные стили.

По умолчанию, в новом файле присутствует размерный стили Standard и ISO-25. И соответственно все новые размеры получают свои параметры из этого стиля по умолчанию.

Мы же можем создать свои стили, на все случаи жизни и пользоваться именно ими.

К чему все эти сложности? Дело в том, что Автокад — универсальный инструмент который применяется во множестве отраслей, и стран мира. Соответственно вариантов и стандартов оформления множество, это не говоря о внутренних стандартах компаний, или их подразделений, и даже предпочтений отдельных специалистов.

Кстати, панель инструментов «Размер» можно вывести следующим образом: правой клавишей по любой из кнопок на любой панели инструментов, в выпавшем списке выбрать пункт «Размер»

Создание /редактирование стилей производится с помощью диспетчера размерных стилей. Для его вызова надо кликнуть на кнопку рядом со списком размерных стилей — размер с кисточкой. Либо командой _dimstyle . В новых версиях автокада до него можно добраться через вкладку

Аннотации\Размеры\[в выпадающем списке стилей — диспетчер размерных стилей ]

Создаем новый размерный стиль

Для того чтобы разобраться, предлагаю создать новый стиль, нажимаем кнопку «Новый»

Для простоты работы новые стили создаются на основе стилей существующих. Соответственно задаем имя стиля «1-1» и жмем далее.

Собственно с этого момента и приступаем к настройке стиля. Она заключается в изменении нужных нам параметров для приведения размера к оптимальному для наших целей виду. Другими словами, заставим его выглядеть так как надо нам.

Параметры стиля полностью повторяют настройки свойств размера в автокаде, смотри начало статьи.

Линии:

Тут мы настраиваем вид (толщину, цвет, отступы, удлинения) линий размера. Причем можно их и вовсе убрать чтобы не мешались (Подавить 1-ю, 2-ю.)

Символы, засечки и стрелки у размеров:

Символы и стрелки, на этой вкладке настраиваем так называемые засечки, их размер и вид. Остальные параметры в общем случае можно оставить по умолчанию, ибо применяются достаточно редко.

Настройка текста размера:

В этой вкладке настраиваем свойства размерной надписи, позиционирование, ориентация, цвет, отступ от размерной линии и т.п. Так же для размеров имеет смысл создать отдельный текстовый стиль(кнопка рядом с выпадающим списком «текстовый стиль»): Назовем его «РазмерныйТекстовыйСтиль», и зададим шрифт ISOCPEUR, ttf шрифт, практически аналогичный нашему гостовскому шрифту. Почему именно ttf? — его в отличии от shx (внутреннии оптимизированные автокадовские шрифты) можно использовать и в Word’е и Excel’е, и в Текле, а так же любом другом Windows приложении, что позволяет придать проекту некоторое единообразие. Возвращаемся к размерным стилям:

Размещение:


Размещение текста — этот пункт я бы рекомендовал оставить его изменений, и настраивать индивидуально в случае необходимости для отдельных размеров. Например очень удобно бывает включение для размера опции — строить выноску. Но включенная в стиле она мешает ибо приходится постоянно кроме размера перемещать и текст с ним.

Масштаб размерных элементов — Аннотативный — при включении этой опции в автокаде параметры размеров в модели будут браться в зависимости от заданного масштаба. Задается он на панельке в правом нижнем углу:

в выпадающем списке выбирается рабочий масштаб. Далее параметры размеров автоматически домножаются на значение масштаба. Если эта же деталь будут присутствовать в другом масштабе — меняем рабочее значение, и смело ставим новые размеры. Может получиться мешанина. Не беда — кнопка справа от выбора масштаба — может включить либо выключить отображение аннотативных размеров другого масштаба.

Зачем это надо? Создавая на листе (layout) видовые экраны (viewport) с деталями, планами и разрезами модели, вы выбираете масштаб отображения. А автокад выводит на видовом экране только те размеры, масштаб которых совпадает с масштабом видового экрана. Это удобно, поскольку позволяет не тратить время на создание множества стилей, в зависимости от масштабов отображения. И упрощает фильтрацию отображения размеров в видовом экране.

Глобальный масштаб — по сути множитель всех параметров размера. Ставим 2, и параметры всех элементов размера увеличиваются в два раза, ставим 10 — в десять, ну и так далее.

Основные единицы:

Тут мы задаем формат в котором будут выводиться наши измерения. Важный момент, если вы хотите чтобы ваши угловые размеры показывали не только градусы но и минуты с секундами, то настраивайте точность и формат угловых размеров. Если вы хотите использовать этот стиль для определенного масштаба, то можете задать «масштаб» (по сути множитель на который будет домножен размер полученный из модели, нарисовали линию длинной 1, добавили размер, в размере указали масштаб 1000, соответственно текст размера выводится как 1000).

Префикс и суфикс, это то, что будет дописано до или после размера. Указал в суфиксе «мм» и все размеры будут иметь вид 1000мм.

Альтернативные единицы:

Включение этой опции позволит в размере выводить в скобках еще один вариант этого же размера. В общем случае разумнее эту опцию включать для отдельных размеров, а не в стиле.

Допуски:


Соответственно если вам необходимо указывать допуски, можете настроить этот параметр для вашего стиля здесь. Либо в свойствах отдельных размеров индивидуально.

В качестве небольшого послесловия, поговорим о стилях работы в автокаде, и их влиянии на размерные стили.

Лично я могу выделить три основных стиля работы в Автокаде:

1. Стиль «Рисовальщик» или «всё в модели».

Это наиболее распространённый так называемый неправильный стиль, характерен для тех кто только начинает работать в автокаде, либо тех кто слишком долго работал на бумаге, и соответственно работа с моделью и листом таким людям ничего кроме проблем не доставляет. Поэтому в модели чертится лист, а в этом листе уже создаются чертежи, причем планы, узлы и детали выполняются в соответствующем масштабе. Что довольно бессмысленно, трудоёмко и связано с большим колличеством пустых вычислений.

Но если вы придерживаетесь именно этой школы, то вам будут нужны размерные стили под каждый масштаб. Различаться у них будет только один параметр — Основные единицы масштаб . Нужны будут стили типа М1:1, М1:100, в первом масштаб единиц будет равен единице, во втором ста. И так далее.

2. Стиль «Один к одному»

Это наиболее распространённый стиль. Все планы, узлы и детали выполняются в модели, в масштабе 1 к 1, а компоновка чертежа и подбор масштабов производится на «листе» (layout) с помощью видовых окон. На первый взгляд кажется, что это довольно сложно, однако такой подход позволяет очень легко переносить узлы и детали из проекта в проект, и заниматься не «рисованием» а моделированием в пространстве модели. Что позволяет значительно повысить точность конечной документации и избегать ряда нелепых ошибок.

Особенность размерных стилей при этом подходе заключается в том, что выводя на листе один и тот же элемент в разных масштабах, параметры размеров (высота текста, отступы, размер стрелко и т.п.) должны изменяться, при этом масштаб единиц остаётся неизменным и равным единице.

3: Стиль «1 к 1000», данный стиль характерен для геодезистов и планировщиков. Т.е. за одну условную единицу модели мы в отличии от стиля «1 к 1» принимаем не миллиметр, а метр. Размерные стили аналогично второму стилю меняют свои габариты при неизменном масштабе единиц. Поэтому в масштабе единиц вместо 1, принимаем 1000.

Еще один плюс этого подхода, если вы работаете с планами можно вводить куда меньше нулей. Например нужно построить отрезок длинной один метр: задаем точку, направление и длинну -1. В случае работы в масштабе 1 к 1му, придется ввести уже 1000.

В итоге для простого ввода четыре нажатия на клавиатуре против одного.

В качестве примера, для большей наглядности я сделал файл с размерными стилями под основные масштабы, для всех трех вариантов работы в автокаде.

FAQ по размерам в автокаде:

Добавить свой текст к размеру автокад

В поле текста добавить угловые скобки, в результате ваш текст будет выведен вместе с текущим значением размера.

Как убрать десятичные знаки с размеров автокад

В свойствах размера или стиля размера выставить точность без десятичных знаков.

Добавить минуты и секунды в угловом размере автокад

Либо в размерном стиле в разделе — Основные единицы\Формат единиц : в выпадающем списке выбрать подходящий формат, и настроить точность.

Либо в свойствах конкретного размера (ctrl+1) — основные единицы, формат единиц (angle forman):

AutoCAD 2014/2013. Работа с цепочками размеров

После выделения ручки повёрнутого или параллельного размера, которые на размерной линии:
-нажимаем ctrl, идёт размерная цепь
-ещё раз ctrl, проставляется базовый размер
-ещё раз ctrl, происходит поворот стрелки.
И размерная цепь, и базовый размер будут того же стиля, что и наш размер с ручками, вне зависимости от того какой размерный стиль текущий.
Удобно также тем, что при проведении подобных операций с параллельным размером, размерная цепочка образуется из повёрнутых размеров с соответствующим углом поворота, и таким образом размерная линия не будет поворачиваться из-за точек, от которых выносится размер.

Так же для цепочек размеров советую изучить работу комманды

Редактирование текста размера

команда _ddedit — позволит редактировать текст любого размера как обычный многострочный текст.

В свойствах текста можно вместо текущего размера вывести свой собственный текст. Если вы хотите оставить значение размера вместе со своим текстом — можно прописать <>.

Как удалить размерный стиль в автокаде

Для удаления неиспользуемых размерных стилей, описаний блоков, слоев, шрифтов и так далее в автокаде следует применять команду _purge она вызывает диалоговое окно очистки «мусора» который так или иначе появляется при работе с чертежём (кстати, если у вас на чертеже пара линий, а файл весит несколько мегабайт — _purge поможет привести форму и содержание в гармонию, выкинув всё то что в чертеже хранится, но не используется)

Соответственно если у вас на чертеже нет ни одного размера с удаляемым размерным стилем то он будет определен как «мусор» и появится в списке на очистку в диалоге доступном по команде _purge.

Как копировать размерный стиль из одного чертежа в другой.

Самый простой способ — копировать размер:

  • открыть чертеж с настроенными стилями
  • создать или выбрать размеры нужных стилей

Если вы работаете над чертежом, то однозначно задавались вопросом: как сделать размеры в Автокаде? Ведь это обязательный элемент любого проекта.

В предыдущей статье мы уже рассмотрели, как задать размер в Автокаде , к тому же были изучены основные моменты их нанесения. Теперь самое время поговорить о том, как настраивать размеры, чтобы их внешний вид соответствовал необходимым требованиям к чертежу. Сейчас речь идет не только о размере текста, но и о его ориентации и местоположении, точности числовых значений (т.е. количестве знаков после запятой), внешнем виде стрелок (засечки, точки и т.п.), а также настройке выносных/размерных линий (цвет, тип, вес и т.п.).

Как настроить размеры в Автокаде?

За внешнее отображение размеров на чертеже отвечает Размерный стиль. Достаточно один раз выполнить его настройку, сохранить чертеж как шаблон и в дальнейшем применять его в работе, не теряя время на редактирование размеров.

Итак, в AutoCAD изменить размер, а вернее, настроить его внешний вид, можно в Диспетчере размерных стилей. Есть несколько способов, чтобы вызвать данное диалогового окно:

На вкладке «Главная» - на панели «Аннотации» раскрыть внизспадающий список и нажать на небольшую иконку с изображением размера, как показано на рис. 1.

На вкладке «Аннотации» на панели «Размеры» нажать на небольшую стрелочку в правом нижнем углу панели, как показано на рис. 2.

Прописать в командной строке «_dimstyle».

Какой бы способ вы не выбрали, отроется диалоговое окно «Диспетчер размерных стилей» (см. рис. 3), в котором можно редактировать или создавать новые стили.

Несмотря на то, что настроек довольно-таки много, все они сгруппированы и объединены на соответствующих вкладках «Линии», «Символы и стрелки», «Текст» и т.д.

Настройка размеров в Автокаде. Пример.

Описывать каждый параметр – не целесообразно. Однако, все же перечислю основные моменты, на которые стоит обратить внимание. Также приведу пример настроек, которыми я постоянно пользуюсь.

Лучше всегда создавать новые стили и задавать им названия, которые будут их характеризовать.

Итак, сначала нужно вызвать «Диспетчер размерных стилей». Задать имя нового стиля «ГОСТ_3.5К» на основе «ISO-25»:

1. Вкладка «Линии»:

Цвет и тип линий → По слою.

Вес линии → 0.18 мм.

Шаг в базовых размерах → 10 мм.

Цвет, а также тип выносной линии 1 и 2 → «По слою».

Отступ от объекта → 0 мм.

2. Вкладка «Символы и стрелки»:

Стрелки → Первая, Вторая → Наклон.

Стрелки → Выноска → Закрашенная замкнутая.

Цвет и тип линий → По слою.

Размер стрелки → 3.

Маркер центра → Линия (значение 2.5).

Символ длины дуги → «Над текстовым размером».

3. Вкладка «Текст»:

Текстовый стиль → Выбрать ранее созданный или создать новый (читайте подробнее, про настройку текста). Вот небольшой пример: для создания нового стиля перейти в редактор стилей текста, создать новый на основе «ГОСТ_3.5К» → задать имя «Размерный_3.5» → Имя шрифта «Simplex.shx». Шрифт с расширение *.shx может использовать значение веса линии. Применить → Закрыть → Выбрать вновь созданный стиль.

Цвет текста → По слою.

Цвет заливки → Без заливки (значение «нет»).

Все остальные параметры – по умолчанию.

4. Вкладка «Основные единицы»:

Точность → 0 (все остальные параметры оставить по умолчанию).

5. Все остальные вкладки – по умолчанию.

После всех настроек размеры на чертеже могут выглядеть следующим образом (рис. 4).

Размерный стиль со знаком «диаметр».

Рассмотрим еще один пример, как в AutoCAD изменить размер. Для того чтобы поставить размер со знаком диаметра ∅, нужно перейти на вкладку «Аннотации» → Панель «Размеры» → «Диспетчер размерных стилей» → Новый… → на основе «ГОСТ_3.5К» → Имя «ГОСТ_3.5К_диаметр». На вкладке «Основные единицы» установить значение префикса → %%с (значение спецсимвола на латинице). Читать подробнее,