Переопределение настроек размерных стилей

Каждый из размеров, созданный на базе данного размерного стиля, может переопределить некоторые настройки стиля:

  • Dimatfit : тип размещения стрелок размерных линий и текста размера, когда на размерной линии не хватает места;
  • Dimaltrnd : округление альтернативных единиц в размерах;
  • Dimasz : Размер стрелок в размерных линиях и выносках;
  • Dimaunit : формата единиц измерения в угловых размерах;
  • Dimblk1, Dimblk2 : Указывает блоки, используемые для концов стрелок размерной линии;
  • Dimcen : настройка меток и линий центра дуг и окружностей при нанесении на них размера;
  • Dimclrd : цвет размерных линий, стрелок и размерных линий:выносок (радиус, диаметр);
  • Dimclre : цвет выносных линий, маркеров центра и центровых/осевых линий;
  • Dimclrt : цвет текста, относящегося к размерам и допускам;
  • Dimdec : количество знаков после запятой в цифрах линейных размеров;
  • Dimdsep : настройку разделителя в десятичных дробях измерений;
  • Dimexe : величина удлинения выносных линий за размерные линии;
  • Dimexo : величину отступа выносных линий от объекта;
  • Dimfrac : формат дроби, когда для линейных размеров выбран формат "Дюймовые дробные" или "Дробные";
  • Dimltex1, Dimltex2 : задает тип линии для выносных линий размера;
  • Dimlwd : вес размерных линий;
  • Dimlwe : вес выносных линий;
  • Dimjust : выравнивание по горизонтали размерного текста;
  • Dimrnd : настройка округления измерений в размерах;
  • Dimsd1 (Dimsd2) : контроль подавления первой (второй) размерной линии и окончания левой (правой) стрелки;
  • Dimse1 (Dimse2): контроля подавления первой (второй) выносной линии;
  • Dimtad : выравнивание по вертикали размерного текста;
  • Dimtdec : настройки количества десятичных знаков в значениях допуска основных единиц измерения;
  • Dimtfac : настройку высоты текста допуска и дробей;
  • Dimlunit : формат единиц измерения в неугловых размерах;
  • Dimtih : ориентация размерного текста для всех типов размеров, кроме ординатных, если текст вписывается внутри выносных линий;
  • Dimtm : минимальне (нижнее) значение предела допуска;
  • Dimtmove : настройка перемещения текста с позиции по умолчанию;
  • Dimtofl : настройка отрисовки размерных линий между выносными, когда размерный текст находится за пределами выносных линий;
  • Dimtoh : положение текста размеров за пределами выносных линий для всех типов размеров, кроме ординатных;
  • Dimtol : признак отображения текста допуска в измерениях;
  • Dimtolj : выравнивание текста допуска по вертикали по отношению к тексту размера;
  • Dimtp : максимальное (верхнее) значение предела допуска;
  • Dimtxt : высота (величина) размерного текста;
  • Dimzin : настройки подавления нулей в значениях допуска линейных размеров;
  • Prefix : префикс (приставка) к значениям размеров;
  • Suffix : суффикс к значениям размеров;

Свойства ниже характерны только для объектов размеров, не размерных стилей:

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

  • TextPosition : точка расположения текста размера;

  • TextRotation : поворот текста размера в радианах;

Примечание: в nanoCAD .NET API свойства Dimtoh, TextPrecision не реализованы;

Добавление суффикса для линейного размера

В примере ниже редактируется формат отображения линейных размеров, добавляется суффикс, равный значению, которое пользователь введёт из строки (обработка с помощью Editor.GetString)

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;

[CommandMethod("AddDimensionTextSuffix")]
public static void AddDimensionTextSuffix()
{
    // Get the current database
    Document acDoc = Application.DocumentManager.MdiActiveDocument;
    Database acCurDb = acDoc.Database;
    // Start a transaction
    using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
    {
        // Open the Block table for read
        BlockTable acBlkTbl;
        acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId,
                                        OpenMode.ForRead) as BlockTable;
        // Open the Block table record Model space for write
        BlockTableRecord acBlkTblRec;
        acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],
                                        OpenMode.ForWrite) as BlockTableRecord;
        // Create the aligned dimension
        using (AlignedDimension acAliDim = new AlignedDimension())
        {
            acAliDim.XLine1Point = new Point3d(0, 5, 0);
            acAliDim.XLine2Point = new Point3d(5, 5, 0);
            acAliDim.DimLinePoint = new Point3d(5, 7, 0);
            acAliDim.DimensionStyle = acCurDb.Dimstyle;
            // Add the new object to Model space and the transaction
            acBlkTblRec.AppendEntity(acAliDim);
            acTrans.AddNewlyCreatedDBObject(acAliDim, true);
            // Append a suffix to the dimension text
            PromptStringOptions pStrOpts = new PromptStringOptions("");
            pStrOpts.Message = "\\nEnter a new text suffix for the dimension: ";
            pStrOpts.AllowSpaces = true;
            PromptResult pStrRes = acDoc.Editor.GetString(pStrOpts);
            if (pStrRes.Status == PromptStatus.OK)
            {
                acAliDim.Suffix = pStrRes.StringResult;
            }
        }
        // Commit the changes and dispose of the transaction
        acTrans.Commit();
    }
}