Перейти к содержимому

Как сохранить напечатанный многострочный текст в автокаде

  • автор:

Текст в AutoCAD — Как написать и Как редактировать

На чертежах в AutoCAD текст используется в виде надписей, пояснений или буквенно-цифровых обозначений.

Рассмотрим, какие виды текста в автокаде бывают. Также разберёмся, как написать текст и как редактировать текст в автокаде.

Значения размеров не являются текстовыми объектами.

Виды текста в AutoCAD

В системе AutoCAD предусмотрено два вида текста — однострочный и многострочный.

Это два разных разных объекта. Каждый из них предусматривает использование разных команд.

Для создания текста система AutoCAD может использовать как свои собственные векторные шрифты, так и Windows-шрифты, установленные на компьютере. Работа с векторными шрифтами осуществляется быстрее, а значит, и их использование является предпочтительным. Особенно это существенно для маломощных компьютеров.

Создание и редактирование однострочного текста в AutoCAD

Перейдите на вкладку «Главная»панель «Аннотации»«Однострочный».

Я рекомендую пользоваться набором первых букв вызова команд. Для однострочного текста — это «ДТ».

Команда вызова однострочного текста в автокаде

После вызова команды программа попросит Вас указать точку вставки текста. При этом в командной строке появится следующий запрос:

[ Тек.текстовый стиль:»Стандарт» Высота текста:2.5000 Аннотативный: нет
Начальная точка текста или [Выравнивание /Стиль]: ]

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

Во второй строке запроса необходимо указать точку, которая будет характеризовать месторасположение текста — так называемую точку вставки текста. По умолчанию вводимый текст будет располагаться справа от этой точки. Точку можно указать, задав координаты или указав просто ЛКМ (левой кнопкой мыши).

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

В моем случае высота текста задана 2,5 мм. Если у Вас появляется такое числовое поле, то введите туда значение 2.5.

Следующий шаг — это задание угла поворота текста. По умолчанию угол наклона принят равным 0, то есть никакого наклона нет, текст выводится по горизонтали.

Если вы с этим согласны, то нажмите Enter. Если нет — задайте свое значение угла поворота текста в автокаде.

Ввод значение угла поворота текста в автокаде

Вам будет предложено ввести сам текст. При этом появится мигающий курсор. Введите любой текст.

Чтобы создать еще одну строку с текстом, нажмите Enter. Вы перейдете на следующую строку.

Чтобы закончить написание текста в автокаде, нажмите еще раз Enter.

Создание еще одной строки текста в автокаде

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

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

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

Создание новой строки текста в любом месте чертежа в автокаде

Чтобы отредактировать однострочный текст в autocad, произведите двойной щелчок ЛКМ по самому тексту. После этого текст станет выделен и будет активен для редактирования.

Редактирование однострочного текста в autocad

Можно вводить новый текст поверх старого. Либо мышкой выделить ту часть, которую надо отредактировать.

При нажатии ПКМ в режиме редактирования Вам станет доступно контекстное меню по работе с однострочным текстом в автокаде.

Выравнивание однострочного текста.

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

Выравнивание текста в автокаде по умолчанию

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

Такая возможность в AutoCAD реализована в виде опции «Выравнивание». Обратите внимание на самый первый запрос программы при вызове команды «Текст».

[ Начальная точка текста или [Выравнивание /Стиль]: ]

В ответ на нее в командной строке или просто на рабочем пространстве нажмите клавишу «В».

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

Виды выравнивания однострочного текста в autocad

Рассмотрите эти варианты выравнивания текста в автокаде на наглядном рисунке. Кстати, эти точки также являются точками привязки к тексту.

Виды выравнивания однострочного текста в автокаде

Есть еще две дополнительные опции, предназначенные для размещения текста
точно между двумя указанными точками:

  1. Опция «впИсанный» .
  2. Опция «Поширине».
  • Опция «впИсанный». Выбор опции можно произвести, нажав клавишу «И», а затем Enter на клавиатуре.

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

Если точки будут находиться не на одной горизонтали, то строка текста в autocad будет выведена под наклоном к оси X.

  • Опция «По ширине». Выбор опции можно произвести, нажав клавишу «П», а затем Enter на клавиатуре.

Далее также указываем две точки расположения строки текста. Разница между опциями состоит лишь в том, что от Вас потребуется указать еще высоту текста. У меня эта высота задана 2,5 мм. Ширина букв по-прежнему будет вычисляться автоматически, исходя из расстояния между точками.

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

дополнительные опции, предназначенные для размещения текста в автокаде

Создание и редактирование многострочного текста в AutoCAD

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

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

Для создания многострочного текста на чертеже в системе AutoCAD я использую короткую команду «МТ». Для ознакомления я покажу вам, где находятся кнопки вызова команд однострочного и многострочного текста в автокаде.

Кнопки вызова команд однострочный и многострочный текст

в которой должен располагаться текст. Для этого потребуется сначала указать месторасположение первого угла области, а затем — второго угла (по диагонали).

Обращайте внимание на командную строку! Появится запрос:

[ Текущий текстовый стиль: «Стандарт» высота текста: 2.5 Аннотативный: Нет
Первый угол: ]

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

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

Текстовая область многострочного текста в автокаде

После того, как Вы задали текстовую область в AutoCAD, появится окно встроенного текстового редактора. На ленте инструментов AutoCAD возникнет специальная вкладка «Текстовый редактор». С помощью неё можно задать или изменить настройки внешнего вида текста.

Работа в текстовой области абсолютно аналогична работе в любом текстовом редакторе.

По окончании ввода текста нажмите комбинацию клавиш «Ctrl»+»Enter».

Вкладка

Редактирование многострочного текста в AutoCAD

Чтобы приступить к редактированию многострочного текста, следует дважды щелкнуть по нему ЛКМ. В результате откроются окно ввода текста и вкладка «Текстовый редактор», с помощью которых Вы сможете произвести все необходимые правки и изменения.

Здесь также доступно контекстное меню, с помощью которого можно копировать и вырезать текст, снимать всё проделанное форматирование, объединять абзацы и прочее.

Контекстное меню работы с многострочным текстом в автокаде

Удобно редактировать параметры текста (выравнивание, угол поворота, ширину текстового блока, стиль текста и т. д.) с помощью окна «Свойства». Для начала выйдите из редактора, выделите саму текстовую область и нажмите комбинацию клавиш «Ctrl»+»1».

Окно

Импорт текста в автокаде из различных источников

Часто бывает необходимо внести на чертеж многострочный текст, который
уже имеется в некотором текстовом файле.

Если имеющийся текст находится в формате .txt или .rtf, то удобно импортировать текст в автокад следующим образом.

Откройте два окна (Окно AutoCAD и окно проводника с текстовым файлом) одновременно. Зажмите ЛКМ на текстовом файле и, не отпуская ее, перетащите файл в область окна AutoCAD.

Весь текст скопируется в AutoCAD.

Импорт текста перетаскиванием файла

Я чаще всего использую буфер обмена Windows. Т.е. открываю файл любого формата, выделяю нужный мне текст и нажимаю комбинацию клавиш «Ctrl»+»C». А затем перехожу в AutoCAD, вхожу в текстовый редактор и нажимаю комбинацию клавиш «Ctrl»+»V».

Если неудобно нажимать данные комбинации, Вы всегда можете воспользоваться контекстным меню, вызывается нажатием правой кнопки мыши. А там уже выбирать нужный пункт «Копировать», «Вырезать» или «Вставить».

Импорт текста в автокад при помощи буфера обмена

Теперь Вы знаете, как создать, импортировать и копировать текст в AutoCAD. А также разобрались с понятиями «однострочный» и «многострочный» текст в автокаде.

Освойте профессию проектировщика

Научитесь быстрому черчению, освоите прикладное 3D, автоматизируете создание ведомостей и спецификаций.

Сохранение текста на Esc в AutoCad

Напечатал текст в программе, нажал на эскейп и вылезло окошко типа, сохранить текст или удалить, я нажал на галочку чтобы больше таких вопросов мне не задавали и случайно нажал НЕТ СОХРАНЯТЬ! Как теперь вернуть чтобы нажимая на эскейп, текст не удалялся?!

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

1. Не факт что текст удалился! Может он очень маленький и не виден на экране. Нужно учитывать масштаб пространства и чертежа. Если у вас чертеж многоэтажного дома в масштабе 1 к 1, то высота шрифта должна быть 200-500мм.. По умолчанию высота шрифта около 2мм., но в момент написания автокад этот шрифт увеличивает подгоняя под видимую область экрана, после завершения применяются выбранные параметры шрифта, т. е. по умолчанию высота около 2мм.. На чертеже дома такой текст превратится в точку или вообще не будет виден если его не приблизить.
2. При работе с многострочным текстом при задании области написания в меню автокад появляется вкладка с настройками и параметрами текста, она активна в момент написания. Смотрите внимательно. Там можно выбрать шрифт, высоту текста, и прочие парметры, выбрав нужные параметры можно писать что угодно, ну или можно сначала написать, потом выделить и задать нужны параметры. Для завершения справа в меню есть вкладка «Клоуз» и крестик. Именно во вкладке текст. Она нужна для завершения написания или редактирования. НАжав ее редактор текста закрывается и текст сохраняется в поле автокада.
Так как сделали вы не совсем корректно, но тоже можно. Если вы выбрали сохранить текст, то он сохраниться, толкьо скорее всего его параметры настроены не верно и вы его не видете на экране.
Если поле автокада чистое, т. е. в нем есть только текст, который вы не видете. Можно дать команду «зезким двойным щелчком колеса» именно двойным щелчком колеса, не кручением а щелчком, это команда вместить все в экран. Автокад вместит в экран все объекты которые есть в поле. Тогда вы увидете свой текст.
Если в поле есть еще обьекты, тогда такой вариант не поможет. Нужно искать с помощью выделения области или поиска фильтрами.

064 Multiline Tex (Многострочный текст). avi 5 680 698 -a—

YAROSLAV YRK1NGGODУченик (110) 4 года назад

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

Аванез Кирпикин Оракул (91626) При изменении существующего текста, при нажатии ESC все сохраняется без вопросов. Во всяком случае у меня 16 автокад, все именно так.

Не сохранение многострочного текста по Esc

Набрал в многострочный текст. Нажал кнопку Esc, чтобы закрыть редактор многострочного текста. Autocad предложил сохранить набранный текст, галку еще поставил, чтоб запомнила выбор, и нажал «Да». Теперь каждый раз по Esc текст сохраняется. Подскажите команду, чтоб исправить на «Нет» при закрытии редактора многострочного текста, чтоб не сохранять текст.

Autocad MEP 2019 ru, x86.

Последний раз редактировалось sergey12, 26.08.2018 в 12:43 .
Просмотров: 2745
Регистрация: 03.08.2007
Сообщений: 1,323

Это для EN это здесь: Options > System> Hidden Messages Settings > AutoCAD > Multiline Text > Multiline Text — Unsaved Changes. Для RUS см. соответственно.

AlexCondor
Посмотреть профиль
Найти ещё сообщения от AlexCondor

Регистрация: 10.02.2007
Сообщений: 611
Не указана версия AutoCAD.
Регистрация: 29.08.2009
Сообщений: 86
Исправил, добавил версию.
Регистрация: 03.08.2007
Сообщений: 1,323
Сообщение от sergey12
Исправил, добавил версию.

Ну и! Само диалоговое окно «Hidden Messages Settings/Параметры скрытых сообщений» нашел (см. #2)?
Оно кажется одинаковое что для чистого AutoCAD, что MEP. И там включаются все ранее отключенные сообщения о выборе действий.

AlexCondor
Посмотреть профиль
Найти ещё сообщения от AlexCondor

Регистрация: 29.08.2009
Сообщений: 86
Сообщение от AlexCondor

Завтра проверю, пока нет доступа к компу.

Регистрация: 10.02.2007
Сообщений: 611

Аналогичная опция есть даже в AutoCAD 2009. Поэтому у автора темы должно все получиться. Замечание: если нет скрытых сообщений, то диалоговое окно чистое.

Регистрация: 29.08.2009
Сообщений: 86
Сообщение от AlexCondor

Это для EN это здесь: Options > System> Hidden Messages Settings > AutoCAD > Multiline Text > Multiline Text — Unsaved Changes. Для RUS см. соответственно.

Спасибо, получилось.
В ру версии: параметры-система-параметры скрытых сообщений-Autocad-Многострочный текст-Многострочный текст несохранённые изменения.

P.s. Ни за что бы не догадался там искать %).

Регистрация: 22.03.2011
Сообщений: 22

Та же проблема, проделал то же самое — эффекта нету, все равно по нажатию esc текст сохраняется, хотя не хотелось бы. И самое интересное, захожу опять в туже настройку, а ее попросту нету. Как прикажете поступить, товарищи ? ACAD 2020 x64, win10

—— добавлено через ~23 мин. ——
Ан нет, вроде все работает — смутило отсутствие выскакивающего сообщения о том сохранять или нет текст по нажатию esc, а при редактировании текста мультивыноски оно есть.

Как сохранить напечатанный многострочный текст в автокаде

Слои подобны прозрачным пленкам на которых разложены различные группы элементов. Любой созданный объект имеет свойтва: Слой, Цвет, ТипЛинии. Цвет позволяет различать похожие объекты, тип линии позволяет быстро отличить например центральные и скрытые линии. Раскладка объектов по слоям упрощает работу над сложными чертежами.

РАБОТА СО СЛОЯМИ

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

СОРТИРОВКА СЛОЕВ И ТИПОВ ЛИНИЙ

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

Sub IteratingLayers() Dim layerNames As String Dim entry As AcadLayer layerNames = "" For Each entry In ThisDrawing.Layers layerNames = layerNames + entry.Name + vbCrLf Next MsgBox "Слои рисунка: " + vbCrLf + layerNames End Sub

СОЗДАНИЕ СЛОЯ И ПРИСВОЕНИЕ ЕМУ ИМЕНИ

Для нового чертежа Автокад создает специальный слой с именем «0», по умолчанию ему назначается цвет = 7 (черный или белый в зависимости от цвета фона) и тип линий CONTINUOUS. Данный слой не может быть удален. Вы же можете создавать новые слои и назначать им цвета и типы линий по своему усмотрению. Каждый слоя является часть коллекции Layers , для создания слоя и добавления его в коллекцию есть метод Add . При создании слою можно сразу назначить имя или переименовать его впоследстии изменив свойтво Name . Имя слоя может быть не больше 31 символа, пробелы недопустимы. Пример назначения объекту другого слоя.

Sub NewLayer() ' Создадим окружность Dim circleObj As AcadCircle Dim center(0 To 2) As Double Dim radius As Double center(0) = 2: center(1) = 2: center(2) = 0: radius = 1 Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius) ZoomExtents ' Назначим окружности цвет "ByLayer" (по слою) circleObj.Color = acByLayer ' Создадим слой "ABC" Dim layerObj As AcadLayer Set layerObj = ThisDrawing.Layers.Add("ABC") ' назначим ему красный цвет layerObj.Color = acRed ' назначим окружности слой "ABC" circleObj.Layer = "ABC" circleObj.Update ' окружность изменила цвет (!) End Sub

УСТАНОВКА АКТИВНОГО СЛОЯ

В рисунке всегда один из слоев активный, новые объекты создаются на нем. Можно изменить активный слой устаовив у него свойство ActiveLayer , замороженный слой не может стать активным.

Dim newlayer As AcadLayer Set newlayer = ThisDrawing.Layers.Add("LAYER1") ThisDrawing.ActiveLayer = newlayer

УПРАВЛЕНИЕ ВИДИМОСТЬЮ СЛОЕВ

Автокад не отображает и не выводит на печать объекты расположенные на невидимых слоях. Чтобы не выводить на печать ненужные детали или чтобы они не мешались при работе слой с ними можно отключить или заморозить. Что именно выбрать — зависит от чертежа и от того как вы привыкли работать. Например заморозить можно слои которые долго не понадобятся. На печать можно вывести только размороженный и включенный слой.

ВКЛЮЧЕНИЕ И ВЫКЛЮЧЕНИЕ СЛОЕВ

Sub LayerInvisble() Dim circleObj As AcadCircle Dim center(0 To 2) As Double Dim radius As Double center(0) = 2: center(1) = 2: center(2) = 0: radius = 1 Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius) circleObj.Color = acByLayer Dim layerObj As AcadLayer Set layerObj = ThisDrawing.Layers.Add(«ABC») layerObj.Color = acRed circleObj.Layer = «ABC» circleObj.Update ‘ отключим слой «ABC» layerObj.LayerOn = False ThisDrawing.Regen acActiveViewport End Sub

ЗАМОРОЗКА И РАЗМОРОЗКА СЛОЕВ

Заморозка слоя ускоряет прорисовку чертежа, увеличает скорость отбора объектов и уменьшает время регенерации сложных чертежей. Автокад не отображает, не выводит на печать и не регенирирует объекты на замороженных слоях. Замораживайте те слои которые долго не понадобятся в работе. Свойство Freeze управляет заморозкой и разморозкой. Пример

Sub LayerFreeze() Dim layerObj As AcadLayer Set layerObj = ThisDrawing.Layers.Add("ABC") layerObj.Freeze = True End Sub

БЛОКИРОВКА И РАЗБЛОКИРОВКА СЛОЕВ

Блокировка слоя полезна когда необходимо редактировать объекты других слоев, но при этом видеть без возможности изменения объекты других слоев. Если слой только блокирован, а не отключен и не заморожен — объекты на нем видны. Блокироанный слой можно сделать текущим и довавить на него объекты (!). Но удалить вновь добавленый объект нельзя до тех пор пока слой не будет разблокирован. Для заблокированного слоя можно менять цвет и тип линий. Для блокировки и разблокировки слоя используется свойтво Lock .

Sub LayerLock() Dim layerObj As AcadLayer Set layerObj = ThisDrawing.Layers.Add("ABC") layerObj.Lock = True End Sub

НАЗНАЧЕНИЕ СЛОЮ ЦВЕТА

При назначении цвета слою следует вводить имя цвета или его индекс. Стандартные имена имеются только для цветов с индексами от 1 до 7. Цвет объекту можно назначать независимый от цвета слоя. Значение индекса цвета от 0 до 256, именованные константы только для цветов 1 до 7 и BYBLOCK и BYLAYER . Если используется acByBlock Автокад вычерчивает нове объект в цвете по-умолчанию до тех пор пока они не группируются в блок. Когда же блок вставляется в рисунок, объекты входящие в него наследуют свойтво цвета от блока.

НАЗНАЧЕНИЕ ТИПА ЛИНИЙ ДЛЯ СЛОЯ

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

УДАЛЕНИЕ СЛОЯ

Для удаления слоя есть метод Delete . Нельзя удалить текущий слой, нулевой слой, слой зависящий от внешних ссылок и слой содержащий объекты. Слои ссылающиеся на определение блока называемые DEFPOINTS не могут быть удалены, даже если не содержат видимых объектов.

РАБОТА С ЦВЕТАМИ

Цвет можно назначить слою или отдельному объекту, цвета определяются именами или индексами от 1 до 255 (кроме того 256 — по слою, 0 — по блоку). Стандартные имена цветов: 1 — красный, 2 — желтый, 3 — зеленый, 4 — синий, 5 — голубой, 6 — магента, 7 — черный или белый. Для установки цвета используй свойтво Color .

РАБОТА С ТИПАМИ ЛИНИЙ

Тип линии представляет повторяющийся последовательности точек, тире и пробелов. Сложные типы линий включают так же символы. Описание типа линий включает эти последовательности и расстояния между их отдельными элемнтами, а так же их размеры. Можно создавать собственные типы линий. Перед использованием типа линии их следует загрузить в чертеж. Определение типа линий должно храниться в LIN-файле-библиотеке. Загружаются они методом Load . Пример:

Sub LoadLinetype() On Error GoTo ERRORHANDLER Dim linetypeName As String linetypeName = "CENTER" ' Загрузим тип линии "CENTER" из файла acad.lin ThisDrawing.Linetypes.Load linetypeName, "acad.lin" Exit Sub ERRORHANDLER: MsgBox Err.Description End Sub

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

УСТАНОВКА АКТИВНОГО ТИПА ЛИНИЙ

Чтобы использовать загруженный тип линий его следует сделать активным. Все вновь создаваемые объекты рисуются активным типом линий. Если выбрано «по слою» вновь создаваемые объекты используют активный тип линий, если выбрано «по блоку» новые объекты рисуются используя активный тип линий до тех пор пока не будут объединены в блок. Свойство ActiveLineType устанавливает активный тип линий.

ThisDrawing.ActiveLinetype = ThisDrawing.Linetypes.Item(«CONTINUOUS»)

ПЕРЕИМЕНОВАНИЕ ТИПА ЛИНИЙ

При переименовании типа линий меняется имя только определения типа линий, в файле LIN все остается без изменений. Для переименования свойство Name .

УДАЛЕНИЕ ТИПА ЛИНИЙ

В любой момент можно удалить тип линий кроме следующих BYLAYER, BYBLOCK, CONTINUOUS , текущей и зависящей от внешней ссылки. Так же нельзя удалить тип линии, которая входит в определение блока. Для удаления метод Delete .

ИЗМЕНЕНИЕ ОПИСАНИЯ ТИПА ЛИНИЙ

Типы линий могут иметь описание, которое можно изменить через свойтво Description . Описание может содержать до 47 символов. ThisDrawing.ActiveLinetype.Description = «Внешняя стена»

ЗАДАНИЕ МАСШТАБА ТИПА ЛИНИЙ

Чем меньше масштаб типа линий тем более плотная линия получается на единицу рисунка. По-умолчанию Автокад использует масштаб равный 1.0, для его изменения используется метод LinetypeScale . Системная переменная CELTSCALE задает масштаб типов линий для вновь создаваемых объектов. Пример:

Sub ChangeLinetypeScale() Dim center(0 To 2) As Double Dim radius As Double Dim circleObj As AcadCircle center(0) = 2: center(1) = 2: center(2) = 0: radius = 4 Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius) ' задать масштаб типа линий окружности .5 circleObj.LinetypeScale = 0.5 circleObj.Update End Sub

НАЗНАЧЕНИЕ СЛОЕВ, ЦВЕТОВ И ТИПОВ ЛИНИЙ ОБЪЕКТАМ

Число слоев в рисунке и число объектов на слое виртуально неограниченно. Пример изменения слоя объекта с применением свойства Layer .

Sub MoveObjectNewLayer() Dim circleObj As AcadCircle Dim center(0 To 2) As Double Dim radius As Double center(0) = 2: center(1) = 2: center(2) = 0: radius = 1 Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius) Dim layerObj As AcadLayer Set layerObj = ThisDrawing.Layers.Add("ABC") circleObj.Layer = "ABC" circleObj.Update End Sub

Константы для цвета объекта: acRed, acYellow, acGreen, acCyan, acBlue, acMagenta, acWhite . Пример изменения свойства Color у объекта:

Sub ColorCircle() Dim circleObj As AcadCircle Dim center(0 To 2) As Double Dim radius As Double center(0) = 2: center(1) = 2: center(2) = 0: radius = 1 Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius) circleObj.Color = acRed circleObj.Update End Sub

Пример изменения типа линий объекта. Создается окружность, делается попытка загрузить тип линии из acad.lin, если тип линии уже есть или файл не существует выдается сообщение об ошибке. И в итоге для окружности устанавливается нужный тип линии.

Sub ChangeCircleLinetype() On Error Resume Next Dim circleObj As AcadCircle Dim center(0 To 2) As Double Dim radius As Double center(0) = 2: center(1) = 2: center(2) = 0: radius = 1 Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius) Dim linetypeName As String linetypeName = "CENTER" ' Загрузим тип линии "CENTER" из файла acad.lin ThisDrawing.Linetypes.Load linetypeName, "acad.lin" If Err.Description <> "" Then MsgBox Err.Description ' Назначим окружности тип линии "CENTER" circleObj.Linetype = "CENTER" circleObj.Update ZoomExtents End Sub

ВСТАВКА ТЕКСТА В РИСУНОК

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

РАБОТА СО СТИЛЯМИ ТЕКСТА

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

Свойство Умолчание Описание
Название STANDARD Не больше 31 символа
Название шрифта txt.shx Файл связанный со шрифтом
Название большого шрифта нет Для не ASCII символов
Высота 0 Высота символов
Ширина 1 Раширение или сжатие
Угол 0 Наклон текста
Флаг генерации нет, нет перевернутый, зеркальный или оба

СОЗДАНИЕ И ИЗМЕНЕНИЕ ТЕКСТОВОГО СТИЛЯ

  • FontFile — Задает файл связанный со шрифтом.
  • BigFontFile — Задает форму не ASCII-символов.
  • Height — Задает высоту символа.
  • Width — Задает сжатие или растяжение символов.
  • ObliqueAngle — задает угол наклона текста
  • TextGenerationFlag — Задает зеркальный, перевернутый или оба.
Sub UpdateTextFont() Dim typeFace As String Dim Bold As Boolean Dim Italic As Boolean Dim charSet As Long Dim PitchandFamily As Long ThisDrawing.ActiveTextStyle.GetFont typeFace, Bold, Italic, charSet, PitchandFamily typeFace = "PlayBill" ' Установить ранее созданный текстовой стиль ThisDrawing.ActiveTextStyle.SetFont typeFace, Bold, Italic, charSet, PitchandFamily ThisDrawing.Regen acActiveViewport End Sub 

ПРИМЕНИЕ ШРИФТОВ TRUE TYPE (TTF)

Шрифты True Type всегда выглядят со сплошной заливкой, однако на печать они могут выводиться контурами, все зависит от состояния системной переменной TEXTFILL . При экспорте рисунка в формат PostScript шрифты будут печататься как было задуманно. Для повышения производительности Автокад Windows печатает TrueType шрифты непосредстенно, но в следствии ограничений Windows Автокад может по-своему их обрабатывать в случаях если текст перевернут, зеркально отражен и т.д. Трансформированный текст может выглядеть чуть толще чем задуманно при просмотре, но на печати должно быть все ОК.

ПРИМЕНЕНИЕ ШРИФТОВ UNICODE И BIGFONT

Автокад поддерживает стандарт Unicode, при котором в шрифте может содержаться до 65 тыс. символов из различных языков, правда ввести такие символы непосредственно невозможно, приходится пользоваться последовательностями \U+nnnn, где nnnn — шестнадцатиричный код символа. Все AutoCAD SHX-шрифты являются Unicode. Предыдущие релизы Автокад вплоть до 13, не поддерживают эту возможность. Шрифты BIGFONT используются для представления символов алфавиты которых содержат тысячи «букв». Пример изменения файла шрифтов:

Sub ChangeFontFiles() ThisDrawing.ActiveTextStyle.BigFontFile = "C:/AutoCAD/Fonts/bigfont.shx" ThisDrawing.ActiveTextStyle.fontFile = "C:/AutoCAD/Fonts/italic.shx" End Sub 

Примечание: нельзя использовать длинные имена файлов содержащие запятую в качестве имени файла шрифта.

УСТАНОВКА ВЫСОТЫ ТЕКСТА

Высота текста определяется размером символа в единицах вычерчивания. Значение обычно представляет размер букв верхнего регистра, исключение шрифты TrueType. Для них к высоте заглавных букв может прибавляться резевная зона для символов ударения. Причем этот размер определяется самостоятельно создателем шрифта. Кроме того для некоторых символов оставляется еще и резерв с низу (q, p, g и т.д.). Пример изменения размера шрифта текстового объекта.

Sub ChangeTextHeight() Dim textObj As AcadText Dim textString As String Dim insertionPoint(0 To 2) As Double Dim height As Double textString = "Hello, World." insertionPoint(0) = 3: insertionPoint(1) = 3: insertionPoint(2) = 0 height = 0.5 Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height) textObj.height = 1 textObj.Update End Sub 

пример установки наклона для текстового объекта

Sub ObliqueText() Dim textObj As AcadText Dim textString As String Dim insertionPoint(0 To 2) As Double Dim height As Double textString = "Hello, World." insertionPoint(0) = 3: insertionPoint(1) = 3: insertionPoint(2) = 0 height = 0.5 Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height) ' Изменим угол на 45 градусов (.707 радиан) textObj.ObliqueAngle = 0.707 textObj.Update ZoomExtents End Sub 

УСТАНОВКА ФЛАГА ГЕНЕРАЦИИ ТЕКСТА

Данный флаг устанавливает режим отражения текста — «вверх ногами», зеркально или оба.

Sub ChangingTextGenerationFlag() Dim textObj As AcadText Dim textString As String Dim insertionPoint(0 To 2) As Double Dim height As Double textString = "Hello, World." insertionPoint(0) = 3: insertionPoint(1) = 3: insertionPoint(2) = 0 height = 0.5 Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height) Dim Center(0 To 2) As Double Dim magnification As Double Center(0) = 3: Center(1) = 3: Center(2) = 0: magnification = 10 ThisDrawing.Application.ZoomCenter Center, magnification textObj.TextGenerationFlag = acTextFlagBackward textObj.Update msgbox "Первая трансформация" textObj.TextGenerationFlag = acTextFlagUpsideDown textObj.Update msgbox "Вторая трансформация" textObj.TextGenerationFlag = acTextFlagUpsideDown+acTextFlagBackward textObj.Update msgbox "Обе трансформации сразу" End Sub 

СОЗДАНИЕ ТЕКСТА

Для создания текстового объекта используй метод AddLineText , требующий три параметра: собственно строка текста, точка вставки и высота текста. В качестве текстовой строки принимаются Unicode-символы, управляющие и специальные символы. Точка вставки — переменная типа Variant. Высота текста положительное значение в текущих единицах чертежа. Пример:

Sub CreateText() Dim textObj As AcadText Dim textString As String Dim insertionPoint(0 To 2) As Double Dim height As Double textString = "Hello, World." insertionPoint(0) = 2: insertionPoint(1) = 2: insertionPoint(2) = 0 height = 0.5 Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height) textObj.Update End Sub 

ФОРМАТИРОВАНИЕ СТРОКИ ТЕКСТА

  • Alignment — Задает горизонтальное и вертикальное выравнивание
  • InsertionPoint — Задает точку вставки
  • ObliqueAngle — Задает угол наклона
  • Rotation — Задает угол вращения в радианах
  • ScaleFactor — Задает фактор масштабирования
  • TextAlignmentPoint — Задает точку выравнивания
  • TextGenerationFlag — Задает отоброжение вверх ногами,зеркальное и оба
  • TextString — Задает текстовую строку

ПОВТОРНОЕ ВЫРАВНИВАНИЕ ТЕКСТА

Пример создает объект Text и объект Point, последний задает точку выравнивания текста и меняется на красное перекрестие.

Sub TextAlignment() Dim textObj As AcadText Dim textString As String Dim insertionPoint(0 To 2) As Double Dim height As Double textString = "Hello, World." insertionPoint(0) = 3: insertionPoint(1) = 3: insertionPoint(2) = 0 height = 0.5 Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height) Dim Center(0 To 2) As Double Dim magnification As Double Center(0) = 3: Center(1) = 3: Center(2) = 0: magnification = 10 ThisDrawing.Application.ZoomCenter Center, magnification Dim pointObj As AcadPoint Dim alignmentPoint(0 To 2) As Double alignmentPoint(0) = 3: alignmentPoint(1) = 3: alignmentPoint(2) = 0 Set pointObj = ThisDrawing.ModelSpace.AddPoint(alignmentPoint) pointObj.Color = acRed ' сменим стиль отображения точки ThisDrawing.SetVariable "PDMODE", 2 ' выровняем текст влево textObj.Alignment = acAlignmentLeft ThisDrawing.Regen acActiveViewport MsgBox "Текст выровнян по левому краю" ' теперь по центру textObj.Alignment = acAlignmentCenter ' теперь по точке textObj.TextAlignmentPoint = alignmentPoint ThisDrawing.Regen acActiveViewport MsgBox "Текст центрирован" ' Теперь вправо textObj.Alignment = acAlignmentRight ThisDrawing.Regen acActiveViewport MsgBox "Текст выровнен по правому краю" End Sub 

МОДИФИКАЦИИ ТЕКСТА

  • ArrayPolar — создает полярный массив
  • ArrayRectangular — создает прямоугольный массив
  • Copy — копирует текст
  • Erase — уничтожает текст
  • Mirror — зеркально отражает текст
  • Move — перемещает текст
  • Rotate — вращает текст

МНОГОСТРОЧНЫЙ ТЕКСТ

Принципальное отличие многострочного текста (мультитекста) от текста в том, что форматровать можно отдельные слова и даже символы. Мультитекст может состоять из любого числа параграфов, весь блок мультитекста можно подвергнуть форматированию сразу. Так же только для мультитекста есть подчеркивание.

СОЗДАНИЕ МНОГОСТРОЧНОГО ТЕКСТ

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

Sub CreateMText() Dim mtextObj As AcadMText Dim insertPoint(0 To 2) As Double Dim width As Double Dim textString As String insertPoint(0) = 2: insertPoint(1) = 2: insertPoint(2) = 0: width = 4 textString = "Длиная строка являющаяся примером многострочного текста." Set mtextObj = ThisDrawing.ModelSpace.AddMText(insertPoint, width, textString) ZoomExtents End Sub 

ФОРМАТИРОВАНИЕ МУЛЬТИТЕКСТА

Вновь вводимому тексту автоматически назначается форматирование текущего текстового стиля. (по умолчанию стиль STANDARD) Форматирование можно впоследствии изменить используя специальные символы и свойства объекта. Ориентация, выравнивание, ширина и вращение могут назначаться только целому объекту мультитекст, в отличие например от подчеркивания, которое может выделять лишь нужное слово или букву.

ФОРМАТИРОВАНИЕ ОТДЕЛЬНЫХ СИМВОЛОВ МУЛЬТИТЕКСТА

Индивидуально можно менять шрифт, цвет, подчеркивание и др. атрибуты элементов мультитекста. Таблица кодов форматирующих символов приведена ниже.

Формат-символ Назначение Вводится так
\0. \o надчеркивание Autodesk \OAutoCAD\o 2000
\L. \l подчеркивание Autodesk \LAutoCAD\l 2000
\~ неразрывный пробел AutoCAD\~2000
\\ обратный слеш Autodesk\\AutoCAD
\

фигурные скобки Autodesk\ 2000
\File name; имя файла шрифта Autodesk \Ftimes; AutoCAD 2000
\Hvalue; высота текста в единицах чертежа \H2;AutoCAD
\Hvaluex; высота текста умножением Autocad \H3x;2000
\S. ^. ; текст стопкой используя символы \ # ^ 1.000\S+0.010^-0.000;
\Tvalue; межсимвольный интервал от 0.75 до 4 \T2;Autodesk
\Qangle; угол наклона \Q20;Autodesk
\Wvalue; ширина букв \W2;Autodesk
\A выравнивание 0-низ, 1-центр,2-верх \A1;1\S1/2

В последнем примере вводится дробь 1 и 1/2. Использование фигурных скобок применяет форматирование только внутри них. Вложенность скобок может достигать 8 уровней. Пример форматирования с ASCII-кодами
<<\H1.5x; Big text>\A2; over text\A1;/\A0; under text> Пример использования форматирующих символов

Sub FormatMText() Dim mtextObj As AcadMText Dim insertPoint(0 To 2) As Double Dim width As Double Dim textString As String insertPoint(0) = 2: insertPoint(1) = 2: insertPoint(2) = 0: width = 100 Dim OB As Long,CB As Long,BS As Long,FS As Long,SC As Long OB = Asc("<") CB = Asc(">") BS = Asc("\") FS = Asc("/") SC = Asc(";") ' <<\H1.5x; Big text>\A2; over text\A1;/\A0; under text> textString = Chr(OB) + Chr(OB) + Chr(BS) + "H1.5x" _ + Chr(SC) + "Big text" + Chr(CB) + Chr(BS) + "A2" _ + Chr(SC) + "over text" + Chr(BS) + "A1" + Chr(SC) _ + Chr(FS) + Chr(BS) + "A0" + Chr(SC) + "under text" _ + Chr(CB) Set mtextObj = ThisDrawing.ModelSpace.AddMText(insertPoint, width, textString) ZoomExtents End Sub 

ФОРМАТИРОВАНИЕ МНОГОСТРОЧНЫХ ТЕКСТОВЫХ ОБЪЕКТОВ

Установка свойства объекта StyleName задает стиль по умолчанию для вновь создаваемых объектов мультитекста. При применении нового стиля к ранее созданным объектам имеющее сложное форматирование будет утеряно. Выравнивание текста бывает левое, правое и по центру, а положение вверху, внизу и по центру. Автокад предлагает 9 установок выравнивания: TL (вверх и влево), TC (вверх и по центру), TR (вверх и вправо), ML, MC, MR, BL, BC, BR. Изменять эти значения можно через свойство AttachmentPoint .

ИСПОЛЬЗОВАНИЕ СИМВОЛОВ UNICODE, УПРАВЛЯЮЩИХ И СПЕЦИАЛЬНЫХ СИМВОЛОВ

Символы unicode \U+00B0 градусы, \U+00B1 плюс-минус, \U+2205 диаметр.

Указав %%код_символа можно вводить и другие спец-символы. %%o — надчеркивание, %%u — подчеркивание, %%d — градусы,
%%p — плюс-минус, %%c — диаметр, %%% — проценты.

ЗАМЕНА ШРИФТОВ

Если Автокад не находит шрифт указанный в чертеже можно укзать другой. Для чего в любом текстовом редакторе создается таблица замены fmp-файл, каждая строка которого имеет вид romanc.shx; times.ttf (какой менять; на какой). Для указания файла замены шрифтов отличного от того, что входит в стандартную поставку Автокад используй свойство FontFileMap объекта Preferences .

УСТАНОВКА АЛЬТЕРНАТИВНОГО ШРИФТА ПО-УМОЛЧАНИЮ

По умолчанию для замены несуществующего шрифта используется simplex.shx, однако можно укзать любой другой через свойство AltFontFile объекта Preferences .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *