Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Взаимодействие с пользователем
Взаимодействие с пользователем заключается в запросах различных данных, объектов, выводе сообщений. Эти действия реализуются объектом AcadUtility, коллекцией AcadSelectionSets и ее объектом AcadSelectionSet. Инициализация ограничений ввода procedure InitializeUserInput(Bits: Byte; KeyWordList: OleVariant); Вызов метода InitializeUserInput задает ограничения по вводу данных для методов: GetKeyword, GetInteger, GetReal, GetDistance, GetAngle, GetOrientation, GetPoint, и GetCorner. Параметры:
Примеры использования: // не разрешен NULL вводAcad.ActiveDocument.Utility.InitializeUserInput(1); // не разрешен NULL ввод и использовать для " резиновой нити" штриховую линию (33 = 32 + 1)Acad.ActiveDocument.Utility.InitializeUserInput(33); // не разрешен NULL ввод, заданы ключевые словаAcad.ActiveDocument.Utility.InitializeUserInput(1, 'Yes No');Вывод сообщений в командную строку procedure Prompt( const Message: WideString); — функция выводит в командную строку текст Message Параметры:
Пример использования: Acad.ActiveDocument.Utility.Prompt('Press any key...');Запрос координат точки function GetPoint(Point: OleVariant; Prompt: OleVariant): OleVariant; Параметры:
Возвращаемое значение — 3-х элементный массив координат точки. Пример использования: var Pnt1, Pnt2: OleVariant; begin // Запрос у пользователя координат первой точки Pnt1: = Acad.ActiveDocument.Utility.GetPoint(, 'Укажите первую точку: '); // Запрос у пользователя координат второй точки с отображением " резиновой нити" от первой точки Pnt2: = Acad.ActiveDocument.Utility.GetPoint(Pnt1, 'Укажите вторую точку: '); // Построение отрезка из первой во вторую точку Acad.ActiveDocument.ModelSpace.AddLine(Pnt1, Pnt2); end;Запрос угла прямоугольника function GetCorner (Point: OleVariant; Prompt: OleVariant): OleVariant; Параметры:
Возвращаемое значение — 3-х элементный массив координат точки. Пример использования: var Pnt1, Pnt2, Pnt3, Pnt4: OleVariant; begin // Запрос у пользователя координат первой точки Pnt1: = Acad.ActiveDocument.Utility.GetPoint(, 'Укажите первый угол: '); // Запрос у пользователя координат второй точки с // отображением " резинового прямоугольника" от первой точки Pnt2: = Acad.ActiveDocument.Utility.GetCorner(Pnt1, 'Укажите второй угол: '); // Вычисление остальных координат прямоугольника Pnt3: = AcadPoint(Pnt1[0], Pnt2[1]); Pnt4: = AcadPoint(Pnt2[0], Pnt1[1]); // Построение прямоугольника Acad.ActiveDocument.ModelSpace.AddLine(Pnt1, Pnt3); Acad.ActiveDocument.ModelSpace.AddLine(Pnt3, Pnt2); Acad.ActiveDocument.ModelSpace.AddLine(Pnt2, Pnt4); Acad.ActiveDocument.ModelSpace.AddLine(Pnt4, Pnt1); end;Запрос угла function GetAngle(Point: OleVariant; Prompt: OleVariant): Double; Параметры:
Возвращаемое значение — угол в радианах против часовой стрелки (т.е. игнорирует значение ANGDIR). Функция выводит в командную строку подсказку Prompt и ожидает от пользователя ввода либо значения угла (в текущем формате угловых единиц), либо ввода 2-х точек прямой с отображением " резиновой нити". При получении угла учитываются переменные ANGBASE и ANGDIR. Пример использования: var Ang: Double; begin // Запрос у пользователя угла Ang: = Acad.ActiveDocument.Utility.GetAngle(, 'Укажите значение угла: '); ShowMessage(Format('Задан угол %f градусов', [RadToDeg(Ang)])); end;Запрос расстояния function GetDistance(Point: OleVariant; Prompt: OleVariant): Double; Параметры:
Возвращаемое значение — расстояние. Функция выводит в командную строку подсказку Prompt и ожидает от пользователя ввода либо одной точки (если параметр Point опущен) либо 2-х точек с отображением " резиновой нити" Пример использования: var Dist: Double; begin // Запрос у пользователя точек для расчета расстояния Dist: = Acad.ActiveDocument.Utility.GetDistance(, 'Select first point: '); // Вывод значения расстояния в командную строку Acad.ActiveDocument.Utility.Prompt(Format('Distance = %f', [Dist])); end;Запрос целого числа function GetInteger(Prompt: OleVariant): Smallint; Параметры:
Возвращаемое значение — введенное пользователем целое число. Пример использования: var Int: Smallint; begin // Запрос у пользователя целого числа Int: = Acad.ActiveDocument.Utility.GetInteger('Введите целое число < -32768...32767>: '); // Вывод значения в командную строку Acad.ActiveDocument.Utility.Prompt(Format('Число = %d', [Int])); end;Запрос вещественного числа function GetReal(Prompt: OleVariant): Double; Параметры:
Возвращаемое значение — введенное пользователем вещественное число. Пример использования: var Dbl: Double; begin // Запрос у пользователя целого числа Dbl: = Acad.ActiveDocument.Utility.GetReal('Введите вещественное число: '); // Вывод значения в командную строку Acad.ActiveDocument.Utility.Prompt(Format('Число = %f', [Dbl])); end; Создание штриховкиЧтобы создавать штриховку, сначала создайте объект Hatch, используя метод AddHatch. После того, как объект Hatch был создан, добавьте внешний цикл, используя метод AppendOuterLoop. Внешний цикл должен быть закрыт и должен быть создан прежде, чем можно добавить любые внутренние циклы. После того, как был создан допустимый внешний цикл, добавляют внутренние циклы, по одному, используя метод AppendInnerLoop. ПРЕДУПРЕЖДЕНИЕ! Как только объект Hatch был создан, Вы должны добавить внешний цикл к объекту Hatch для того, чтобы он стал допустимым объектом AutoCAD. Если Вы делаете любой другой запрос операции кроме метода AppendOuterLoop, AutoCAD введет непредсказуемое состояние.
AddHatch RetVal = object.AddHatch(PatternType, PatternName, Associativity [, HatchObjectType])
Object ModelSpace Коллекция, PaperSpace Коллекция, Block Объект или объекты обращающиеся к этому методу. PatternType AcPatternType or AcGradientPatternType перечисление; только для ввода PatternName String; только для ввода Если значение перечисления HatchObjectType - acHatchObject, то PatternName должен содержать название образца штриховки. Если значение перечисления HatchObjectType - acGradientObject, то PatternName должен содержать один из названия образца градиента, перечисленные в GradientName. Associativity Boolean; только для ввода TRUE: Штриховка будет ассоциативна. FALSE: Штриховка не будет ассоциативна. HatchObjectType HatchObjectType; дополнительный; только для ввода RetVal Hatch объект Недавно созданный объект Hatch. // свойства штриховки hatchObj: =MSpace.AddHatch(1, 'SOLID', True); // передаем обсласть hatchObj.AppendOuterLoop (RectHatch); // финализируем границы hatchObj.Evaluate; AppendOuterLoop object.AppendOuterLoop (loop)
Object Hatch Объект или объекты, обращающиеся к этому методу. Loop Object (массив объектов); только для ввода Массив объектов, формирующих закрытую границу. Массив может состоять из одного или более объектов. Если используется больше чем один объект, их оконечные точки должны совпасть для цикла, который будет создан. Цикл может содержать следующие типы объектов: Line, Polyline, Circle, Ellipse, Spline, Region
Замечания
После того, как объект Hatch был создан, используя метод AddHatch, добавьте внешний цикл. Внешний цикл должен быть закрыт и должен быть создан прежде, чем любые внутренние циклы можно добавить. После того, как допустимый внешний цикл был создан, добавляет любые внутренние циклы, по одному, используя метод AppendInnerLoop.
Как только Вы закончили определять границы для штриховки, используете метод Evaluate чтобы вычислять линии штриховки или заполнения для границ, затем используйте метод Regen, чтобы модифицировать отображение штриховки.
Популярное:
|
Последнее изменение этой страницы: 2017-03-03; Просмотров: 852; Нарушение авторского права страницы