РАЗМЕРНОСТИ И ДОПУСКИ
Размерности представляют собой геометрические характеристики объектов - расстояния углы между ними. В Автокаде их три разновидности - линейные, радиальные (от слова радиус) и угловые. Они могут создаваться как для объектов (линий, мультилиний, дуг, окружностей, сегментов полилинии) так и самостоятельно. Каждая размерность имеет свой размерный стиль, включающий цвет, тип линий, стиль текста. Переменные определяющие вид размерностей:DIMAUNIT, DIMUPT, DIMTOFL, DIMFIT, DIMTIH, DIMTOH, DIMJUST, DIMTAD
. Однострочный текст размерности использует текущий текстовый стиль. Ассациативные размерности это те, в которых все линии, стрелки, дуги и тексты рисуются как единый объект. По умолчанию системная переменная отвечающая за ассациативность размерностейDIMASO
включена.СОЗДАНИЕ РАЗМЕРНОСТЕЙ
Можно создавать линейные, радиальные, угловые и ординатные размерности. При этом используется активный размерный стиль. Линейные размеры могут вращаться и выравниваться. Они строятся параллельно измеряемой части объекта с использованием методовAddDimAligned, AddDimRotated, AddDim3PointAligned
.Для создания радиальных размеров дуг и окружностей есть метод
AddDimRadial
, пример построения радиальных размеров:Пример создания угловых размеров
Sub CreateRadialDimension() Dim dimObj As AcadDimRadial Dim center(0 To 2) As Double Dim chordPoint(0 To 2) As Double Dim leaderLen As Integer center(0) = 0: center(1) = 0: center(2) = 0 chordPoint(0) = 5: chordPoint(1) = 5: chordPoint(2) = 0 leaderLen = 5 Set dimObj = ThisDrawing.ModelSpace.AddDimRadial(center, chordPoint, leaderLen) ZoomExtents End SubОрдинатные размеры измеряют перпендикулярное расстояние от заданной точки до измеремого объекта. Обычно используются, чтобы избежать ошибок взаимного положения объектов. Пример:
Sub CreateAngularDimension() Dim dimObj As AcadDimAngular Dim angVert(0 To 2) As Double Dim FirstPoint(0 To 2) As Double Dim SecondPoint(0 To 2) As Double Dim TextPoint(0 To 2) As Double angVert(0) = 0: angVert(1) = 5: angVert(2) = 0 FirstPoint(0) = 1: FirstPoint(1) = 7: FirstPoint(2) = 0 SecondPoint(0) = 1: SecondPoint(1) = 3: SecondPoint(2) = 0 TextPoint(0) = 3: TextPoint(1) = 5: TextPoint(2) = 0 Set dimObj = ThisDrawing.ModelSpace.AddDimAngular(angVert, FirstPoint, SecondPoint, TextPoint) ZoomAll End SubДля редактирования размеров используется следующие свойства
Sub CreatingOrdinateDimension() Dim dimObj As AcadDimOrdinate Dim definingPoint(0 To 2) As Double Dim leaderEndPoint(0 To 2) As Double Dim useXAxis As Long definingPoint(0) = 5: definingPoint(1) = 5: definingPoint(2) = 0 leaderEndPoint(0) = 10: leaderEndPoint(1) = 5: leaderEndPoint(2) = 0 useXAxis = 5 Set dimObj = ThisDrawing.ModelSpace.AddDimOrdinate(definingPoint, leaderEndPoint, useXAxis) ZoomExtents End SubА в дополнение следующие методы
Rotation
- задает угол поворота в радианахStyleName
- задает имя размерного стиляTextPosition
- задает положение текста размераTextRotation
- задает угол вращения текста размераMeasurement
- задает актуальное измерение для размераПример переопределения текста размера
ArrayPolar
- создает полярный массивArrayRectangular
- создает прямоугольный массивCopy
- копируетErase
- стираетMirror
- зеркально отражаетMove
- перемещаетRotate
- вращаетScaleEntity
- масштабирует
Sub OverrideDimensionText() Dim dimObj As AcadDimAligned Dim point1(0 To 2) As Double Dim point2(0 To 2) As Double Dim location(0 To 2) As Double ' задаем размер point1(0) = 5#: point1(1) = 3#: point1(2) = 0# point2(0) = 10#: point2(1) = 3#: point2(2) = 0# location(0) = 7.5: location(1) = 5#: location(2) = 0# Set dimObj = ThisDrawing.ModelSpace.AddDimAligned(point1, point2, location) ' меняем текст dimObj.TextOverride = "Значение <>" dimObj.Update End SubРАБОТА С РАЗМЕРНЫМИ СТИЛЯМИ
Именованный размерный стиль - группа настроек определяющих вид размеров. Создание нового стиля осуществляется методомAdd
, методCopyFrom
позволяет копировать стиль, при этом если копировать стиль не с объекта стиль а с объектаDocument
, то переносятся все переопределения стиля. Пример копирования стиля с переопределениями. Он создает три размерных стиля и копирует их при разных установках. Для его работы следует в новом рисунке создать линейный размер, изменить цвет на желтый, изменить значение системной переменнойDIMCLRD
на 5.Открыть диалог
Sub CopyDimStyles() Dim newStyle1 As AcadDimStyle,newStyle2 As AcadDimStyle Dim newStyle3 As AcadDimStyle Set newStyle1 = ThisDrawing.DimStyles.Add ("Стиль 1 скопирован с dim") Call newStyle1.CopyFrom(ThisDrawing.ModelSpace(0)) Set newStyle2 = ThisDrawing.DimStyles.Add ("Стиль 2 скопирован со Стиль 1") Call newStyle2.CopyFrom(ThisDrawing.DimStyles.Item ("Стиль 1 скопирован с dim")) Set newStyle2 = ThisDrawing.DimStyles.Add ("Стиль 3 скопирован с настройками") Call newStyle2.CopyFrom(ThisDrawing) End SubDIMSTYLE
должны появиться три разных стиля.ПЕРЕОПРЕДЕЛЕНИЕ РАЗМЕРНОГО СТИЛЯ
Следующие свойства доступны для большинства размеров.Пример выровненного размера с суффиксом определенным пользователем
AltRoundDistance
- Задает округление изменяемых единицAngleFormat
- Задает формат единиц для угловых размеровArrowhead1Block, Arrowhead2Block
- задает блок используемый как пользовательский тип стрелок.Arrowhead1Type, Arrowhead2Type
- задает тип стрелокArrowheadSize
- задает размеры стрелок и hook lines.CenterMarkSize
- задает размер центральной отметки для радиальных размеровCenterType
- задает тип центральной отметки для радиальных размеровDecimalSeparator
- задает символ используемый как десятичный разделитель в десятичных размерах и значениях допускаDimensionLineColor
- задает цвет размерной линииDimensionLineWeight
- задает вес линииDimLine1Suppress, DimLine2Suppress
- задает подавлениеDimLineInside
- задает показ размеров внутри линий расширенияExtensionLineColor
- задает цвет для размеров линий расширенияExtensionLineExtend
- задает расстояние линии расширенияExtensionLineOffset
- задает расстояние линии расширения по смещениюExtensionLineWeight
- задает вес линии расширенияExtLine1EndPoint, ExtLine2EndPoint
- задает конечную точку линии расширенияExtLine1StartPoint, ExtLine2StartPoint
- задает начальную точку линии расширенияExtLine1Suppress, ExtLine2Suppress
- задает подавление линий расширенияFit
- задает полодение текста и стрелок внутри или снаружи линий расширенияForceLineInside
- задает если размерная линия чертится между линией расширения даже когда текст расположен вне линии расширенияFractionFormat
- задает формат дробной частиHorizontalTextPosition
- задает горизонтальное выравнивание текстаLinearScaleFactor
- задает глобальный масштаб для r for измерений линейных размеровPrimaryUnitsPrecision
- задает число десятичных знаков для первичных единицSuppressLeadingZeros, SuppressTrailingZeros
- задает подавление лидирующих и хвостовых нолей в значениях размеровSuppressZeroFeet, SuppressZeroInches
- задает подавление нулевых футов и дюймов в измерениях размеровTextColor
- задает цвет текстаTextGap
- задает расстояние между текстом размера и размерной линией когда разрывается линия для размещения текстаTextHeight
- задает высоту текста размера и допускаTextInside
- задает если текст размера рисуется внутри линий расширенияTextInsideAlign
- задает положение текста размера внутри линий расширения для всех типов размеров кроме ординатныхTextMovement
- задает как текст размера рисуется когда текст перемещенTextOutsideAlign
- задает положение текста размера вне линий расширения для всех типов размеров кроме ординатныхTextPosition
- задает положение текста размераTextPrecision
- задает точность текста угловых размеровTextPrefix
- задает префикс значения размераTextRotation
- задает угол вращения текста размераTextSuffix
- задает суффикс значения размераToleranceDisplay
- задает если допусков отображается с текстом размераToleranceHeightScale
- задает масштаб для текста или высоту текста допуска относительно высоты текста размераToleranceJustification
- задает вертикальное выравнивание значений допуска относительно номинального текста размераToleranceLowerLimit
- задает миним. предел допуска для текста размераTolerancePrecision
- задает точность значений допуска в первичном размере.ToleranceSuppressLeadingZeros
- задает подавление лидирующих нулей в значениях допускаToleranceSuppressTrailingZeros
- задает подавление хвостовых нулей в значениях допускаToleranceUpperLimit
- задает макс. предел допуска для текста размераUnitsFormat
- задает формат единиц для всех размеров исключая ept угловыеVerticalTextPosition
- задает вертикальное положение текста в отношении к линии размера
Sub AddTextSuffix() Dim dimObj As AcadDimAligned Dim point1(0 To 2) As Double Dim point2(0 To 2) As Double Dim location(0 To 2) As Double Dim suffix As String ' Определим размер point1(0) = 0: point1(1) = 5: point1(2) = 0 point2(0) = 5: point2(1) = 5: point2(2) = 0 location(0) = 5: location(1) = 7: location(2) = 0 Set dimObj = ThisDrawing.ModelSpace.AddDimAligned(point1, point2, location) ThisDrawing.Application.ZoomExtents ' Позволим пользователю сменить суффикс suffix = InputBox("Новый суффикс для размера", "Set Dimension Suffix", ":SUFFIX") dimObj.TextSuffix = suffix ThisDrawing.Regen acAllViewports End SubРАЗМЕРНОСТИ В ПРОСТРАНСТВЕ МОДЕЛИ И ПРОСТРАНСТВЕ ЛИСТА
Рисовать размерности можно как в пространстве модели, так и в пространстве листа, однако если фигуры в пространстве модели, то и размеры лучьше рисовать там же. Если же рисовать размер в пространстве листа, когда фигур нарисованы в пространстве модели, то они не меняются автоматически когда вы используете команды редактирования и увеличения. Если вы проставляете размеры в пространстве листа, и глобальный фактор масштабирования для линейных размеров меньше нуля,DIMLFAC
измеренное расстояние умножается на абсолютное значениеDIMLFAC
. Если размеры в пространстве модели, то используется значение 1.0, даже еслиDIMLFAC
меньше нуля.СОЗДАНИЕ УКАЗАТЕЛЕЙ И ПРИМЕЧАНИЙ
Указатель - это линия соединяющая примечание с какой-либо частью рисунка. указатель связан с примечанием и меняется вместе с ним, если примечание отредактировать. Не путайте объект указатель с линией-указателем автоматически создаваемой Автокадом как часть размерной линии. Указатель может быть в форме прямого сегмента или кривой. Цвет его зависит от цвета текущих размерных линий. Масштаб его управляется общим масштабом размерностей, установленном в активном размерном стиле. Тип и размер стрелок, если они есть, управляется первой стрелкой определенной в активном размерном стиле. Малая линия, известная как крючок, обычно присоединена к примечанию, если у указателя нет примечания, то нет и крючка. Для создания указателя используется методAddLeader
, принимающий три параметра: массив координат в форме переменной типа Variant, собственно примечание, и тип определяющий форму - прямой или кривая, а так же есть у него стрелка или нет. Следующие константы определяют тип указателя:acLineNoArrow, acLineWithArrow, acSplineNoArrow, acSplineWithArrow
.
Sub CreateLeader() Dim leaderObj As AcadLeader Dim points(0 To 8) As Double Dim leaderType As Integer Dim annotationObject As AcadObject points(0) = 0: points(1) = 0: points(2) = 0 points(3) = 4: points(4) = 4: points(5) = 0 points(6) = 4: points(7) = 5: points(8) = 0 leaderType = acLineWithArrow Set annotationObject = Nothing Set leaderObj = ThisDrawing.ModelSpace.AddLeader(points, annotationObject, leaderType) ZoomExtents End SubДОБАВЛЕНИЕ ПРИМЕЧАНИЯ К УКАЗАТЕЛЮ
Примечание может быть в виде объектовTolerance, MText, BlockRef
и присоединяется к указателю только при его создании.АССАЦИАТИВНОСТЬ УКАЗАТЕЛЕЙ
Примечание связывается с соответствующим указателем и при перемещении примечания конечная точка указателя перемещается с ним. Уничтожение обоих объектов методами Erase, Add (для блоков) и WBlock. При копировании примечания и указателя одной командой они становятся ассациативными в любом случае. Если ассациативность разрывается по любой причине, например если копируется отдельно указатель или удаляется примечание, то крючок тоже удаляется.
Sub AddAnnotation() Dim leaderObj As AcadLeader Dim mtextObj As AcadMText Dim points(0 To 8) As Double Dim insPoint(0 To 2) As Double Dim width As Double Dim leaderType As Integer Dim annotObj As Object Dim textString As String, msg As String textString = "Hello, World." insPoint(0) = 5: insPoint(1) = 5: insPoint(2) = 0: width = 2 Set mtextObj = ThisDrawing.ModelSpace.AddMText(insPoint, width, textString) ' данные для указателя points(0) = 0: points(1) = 0: points(2) = 0 points(3) = 4: points(4) = 4: points(5) = 0 points(6) = 4: points(7) = 5: points(8) = 0 leaderType = acLineWithArrow ' Создаем указатель и связываем с ним объект MText Set annotObj = mtextObj Set leaderObj = ThisDrawing.ModelSpace.AddLeader(points, annotObj, leaderType) ZoomExtents End SubРЕДАКТИРОВАНИЯ АССАЦИАТИВНОСТИ УКАЗАТЕЛЯ
Исключая случая ассациативности указатель и его примечание являются отдельными объектами. Хотя текстовые примечания создаются с использованием системных переменныхDIMCLRT, DIMTXT, DIMTXSTY
определяющих их цвет, высоту и стиль они не могут быть изменены через эти переменные, т.к. на самом деле не являются объектами Размеры. Редактировать их следует теми же методами что и обычный мультитекст. МетодEvalute
обновляет размеры указателя при изменении примечания, если это необходимо.РЕДАКТИРОВАНИЕ УКАЗАТЕЛЕЙ
Любые изменения примечаний приводят к изменению конечной точки указателя. Для измения размера указателя его можно масштабировать, при этом размеры примечания остаются без изменения. Можно так же перемещать, вращать и зеркально отражать указатель.СОЗДАНИЕ ГЕОМЕТРИЧЕСКИХ ДОПУСКОВ
Геометрические допуски показвают возможные отклонения форм, профилей и т.д. Для их создания есть методAddTolerance
, требующий три параметра - текстовая строка, расположение и направляющий вектор. Можно так же копировать, стирать, вращать, масштабировать допуски. Пример создания:
Sub CreateTolerance() Dim toleranceObj As AcadTolerance Dim textString As String Dim insPoint(0 To 2) As Double Dim direction(0 To 2) As Double ' Define the tolerance object textString = "Here is the Feature Control Frame" insPoint(0) = 5: insPoint(1) = 5: insPoint(2) = 0 direction(0) = 1: direction(1) = 1: direction(2) = 0 ' Create the tolerance object in model space Set toleranceObj = ThisDrawing.ModelSpace.AddTolerance(textString, insPoint, direction) ZoomExtents End SubРЕДАКТИРОВАНИЕ ДОПУСКОВ
Допуски подвержены влиянию нескольких системных переменных:DIMCLRD, DIMCLRT, DIMGAP, DIMTXT, DIMTXTSTY
Читать дальше - В начало - На главную