Как отключить shx в автокад
Перейти к содержимому

Как отключить shx в автокад

  • автор:

Шрифты в AutoCAD

1) Шрифт компьютерного формата (True Type Fonts) с расширением *.ttf, используемый во многих операционных системах, разработан компанией Apple.

2) Шрифты, созданные специально для AutoCAD с расширением *.shx и является откомпилированным файлом shp и классифицируется как CAD – файл. Содержит векторное определение форм и описание форм текста для пользователей программы. Все шрифты программы находятся по пути Programm Files/AutoCAD, путь в зависимости от версии может отличаться, но папка расположения называется font.

Как убрать ссылки на shx-файлы? (Страница 1 из 2)

добрый день!
У меня вопрос — мне приносят чертежи, в которых есть ссылки на внешние файлы штифтов (расширение shx). Потом я ставлю свои шрифты, но при каждом открытии постоянно идут запрос — укажите где файл такой-то. Как отключить это и где?
Заранее спасибо

#2 Ответ от nivas 21 марта 2005г. 18:46:08

Re: Как убрать ссылки на shx-файлы?

файлы shx могут быть не только файлом шрифта, но и файлом shape-ов, так что обратите внимание на используемые в чертеже типы линий. возможно какие-то из них используют shape из запрашиваемого файла
евгений

#3 Ответ от JFox 25 марта 2005г. 20:21:05

Re: Как убрать ссылки на shx-файлы?

Нет, не помогло, никаких особых линий в чертеже нету. Попробовал сделать purge — не помогло.

#4 Ответ от kpblc 28 марта 2005г. 08:10:53

Re: Как убрать ссылки на shx-файлы?

Тогда по идее надо отредактировать размерные и текстовые стили (90% случаев)

#5 Ответ от kserg 28 марта 2005г. 09:58:05

Re: Как убрать ссылки на shx-файлы?

> JFox
А какие названия шрифтов ?

Нет, не помогло, никаких особых линий в чертеже нету. Попробовал сделать purge — не помогло.

Нюансы всякие бывают.

#6 Ответ от JFox 31 марта 2005г. 12:01:48

Re: Как убрать ссылки на shx-файлы?

arm.shx
lana_line.shx
Уже все перепробовал. Если найду как — обязательно поделюсь

#7 Ответ от kserg 31 марта 2005г. 14:08:22

Re: Как убрать ссылки на shx-файлы?

С такими «шрифтами» не сталкивался.
Однако, возможны варианты :
1. если CAD сообщает, что не найден файл «arm.shx»,
___то скорее всего речь идет о файле так называемых
___форм («shape»), и, кажется, PURGE в чертеже ничего
___не даст, если этого файла нет;
___следует либо искать этот файл, либо смириться. ;
___если же это файл шрифта, то, кажется, CAD просто
___подменит (по умолчанию) такой шрифт на, например,
___simplex (смотря что в настройках CADа в этом
___отношении задано)
2. если все же идет речь о файле шрифта, а не о файле
___форм, то, хотя бы можно было создать искусственную
___ситуацию наличия (отсутствующего шрифта), т.е.
___сделать копию CADовского «shx»-файла, с присвоением
___копии имени отсутствующего «shx»-шрифта (например,
___»simplex.shx»->»arm.shx»;
___в таком случае CAD по поводу этого шрифта раз и
___навсегда (на этом компе — в этом CADе) заткнется.
Если найдутся arm.shx и lana_line.shx, поделитесь
(ради любопытства) ?

#8 Ответ от Генпланист 1 апреля 2005г. 12:20:55

Re: Как убрать ссылки на shx-файлы?

> JFox
Нужно сделать следующее :
Всем объектам и слоям с чужими типами линий назначить стандартную сплошную линию (при отсутствии файла форм чужие линии обычно отображаются сплошной)
Затем выгрузить чужие типы линий Purge.
И автокад перестанет просить .shx файлы.

#9 Ответ от прохожий 1 апреля 2005г. 13:56:15

Re: Как убрать ссылки на shx-файлы?

Генпланист пишет:

Нужно сделать следующее :
Всем объектам и слоям с чужими типами линий назначить стандартную сплошную линию (при отсутствии файла форм чужие линии обычно отображаются сплошной)
Затем выгрузить чужие типы линий Purge.
И автокад перестанет просить .shx файлы.

1.Не всегда сплошной : в линии помимо форм могут упоминаться, например, только «точки».
2.Если формы используются не линиями, а просто вставлялись в рисунок, как например, сантехника или еще что-то в виде усл. обозначений на планах (к примеру, в старом приложении к AutoCAD -> ARKO), тогда дело — ГЛУХО.

#10 Ответ от Генпланист 1 апреля 2005г. 14:19:59

Re: Как убрать ссылки на shx-файлы?

> прохожий
Ну почему глухо .
Команда ERASE с применением фильтра по формам применительно ко всему чертежу позволит стереть все чужие формы, а команда PURGE — выгрузить освобожденные определения.
Дело одной минуты.

#11 Ответ от прохожий 1 апреля 2005г. 19:03:09

Re: Как убрать ссылки на shx-файлы?

> Генпланист

Команда ERASE с применением фильтра по формам применительно ко всему чертежу позволит стереть все чужие формы, а команда PURGE — выгрузить освобожденные определения.
Дело одной минуты.

А Вы пробовали ?
Я пробовал. Никакие фильтры-шмильтры у меня не хотели не то чтобы выбрать, а и обнаружить в рисунке формы, SHX-файл которых не был найден!
файл которы

#12 Ответ от Fantomas 2 апреля 2005г. 00:51:26

Re: Как убрать ссылки на shx-файлы?

В данном случае прав AutoCAD. Надо через e-Transmit предавать файлы, если там есть нестандартные SHX. Но это лирика.
По делу. Генпланист от части прав в том что:

Команда ERASE с применением фильтра по формам применительно ко всему чертежу позволит стереть все чужие формы, а команда PURGE — выгрузить освобожденные определения.
Дело одной минуты.

Но не надо забывать что упоминание о SHX может встречатся во многих местах:
1. Таблица текстовых стилей STYLE — подтирается Purge, если нигде больше неиспользуется данный SHX
2. Таблица типов линий LTYPE — подтирается Purge, если нет ни одного объекта использующего тип линии с этим SHX.
3. Любой DXF может ссылатся на несуществующий SHX — лечится заменой типа линии. Поиск предложенный Генпланистом
4. Таблица BLOCK — опять же подтирается Purge. Но если хоть одном описании блока есть ссылка на несуществующий SHX. ПОИСК НЕКАТИТ оно внутри!
5. Словари или расширенные данные присоединенные к объекту приложением, могут ссылатся на тип линии с несуществующим SHX. Это актуально только при работе приложения, однако SHX не являлся частью приложения, а просто им по воле пользователя были созданы словари и расширенные данные которые используются для работы.
И это наверняка не все.
e-Transmit Forever!
В принципе не так сложно создать программу которая отыскивает в чертеже все ссылки на «мертвые» шейпы, показывает пользователю где «бяки» и предлагает исправить вручную или автоматом.
По простому проблемму не решить и AutoDesk тут прав заставляя делать «правильный обмен файлами» вместо кнопки «А мне все по . «, давая тем самым безнаказанно менять вид чертежей.

#13 Ответ от Генпланист 4 апреля 2005г. 08:47:25

Re: Как убрать ссылки на shx-файлы?

прохожий пишет:

А Вы пробовали ?
Я пробовал. Никакие фильтры-шмильтры у меня не хотели не то чтобы выбрать, а и обнаружить в рисунке формы, SHX-файл которых не был найден!

Конечно пробовал :)))
ERASE
‘FILTER
Затем в списке фильтров выбираю Shape, Add to List и Apply
Затем на запрос : Select objects отвечаем ALL.
И все вставленные формы (как объекты отображенные в виде точек) будут потерты ERASE.
Затем выгруз определения формы с помощью PURGE.
Другое дело, что если формы вставлены не в чертеж, а в тип линии.
Но об этом уже говорилось.
Пришлите мне на мэйл Ваш .dwg файл — я почищу там чужие формы и верну обратно.
Иначе дискуссия не конструктивна, не так ли .

#14 Ответ от прохожий 4 апреля 2005г. 10:37:30

Re: Как убрать ссылки на shx-файлы?

Генпланист пишет:

Пришлите мне на мэйл Ваш .dwg файл — я почищу там чужие формы и верну обратно.
Иначе дискуссия не конструктивна, не так ли .

Большое спасибо за предложение, но у меня проблема с формами в чертеже была где-то год-два назад (а вернее — не помню!).Тот объект уже давно забыт (удален), а следовательно, и высылать нечего.
Но, по крайней мере, более случаев с недостающими shx-файлами форм у меня (у нас) не было.
Еще раз спасибо.

Как отключить shx в автокад

Сохранение файлов DWG/DXF

Вы можете сохранить вид или макет проекта ARCHICAD в формате DXF или DWG. (В формате DWG нельзя сохранять каталоги, индексы, или сметы.)

Для сохранения часть текущего вида используйте инструмент Бегущая рамка . По команда Сохранить как сохраняется только та часть проекта, которая находится внутри бегущей рамки.

Примечание: Если Вы работаете в AutoCAD и открываете файл DWG, сохраненный из ARCHICAD, выдается предупреждающее сообщение. Однако Вы можете продолжить работу с таким файлом DWG — никакой устойчивой ошибки не должно возникнуть.

При открытии диалогового окна сохранения выберите необходимый формат (DXF или DWG), укажите имя сохраняемого файла. Всплывающее меню Транслятор содержит список имеющихся трансляторов по умолчанию, которые можно использовать в большинстве случаев (например, для вывода). Если Вы не знаете, какой из предлагаемых трансляторов использовать, нажмите кнопку Параметры для открытия диалогового окна Параметры трансляции DXF/DWG Каждый из приведенных в верхней части трансляторов имеет краткую характеристику в поле Описание .

TranslatorDesc.png

Простые элементы ARCHICAD конвертируются в соответствующие элементы AutoCAD:

• узловые точки в точки;

• линии (без стрелок) в линии;

• окружности в окружности;

• дуги (без стрелок) в дуги;

• эллипсы в эллипсы;

• эллиптические дуги (без стрелок) в эллиптические дуги;

• тексты в многострочные тексты;

• штриховка в штриховку;

Примечание: Штриховка стен, колонн и библиотечных элементов трактуется одним и тем же образом.

• рисунки в изображения;

• размеры (всех видов) в размеры;

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

Наличие стрелок у этих элементов (линии и дуги) делает их сложными.

Сложные элементы: они состоят из более, чем одной сущности AutoCAD. Если Вы не отмечаете маркер Разбивать сложные элементы ARCHICAD , то они записываются в блоки и в разделе ENTITY вставляется INSERT.

• Стены. Они записываются в блоки под именем WALL_, где n — индекс элемента стены. Блок содержит видимые линии контуров, штриховку (см. примечание относительно многоугольной штриховки), ссылки на блоки окон, дверей и присоединенных выносных надписей. За ссылками на окна и двери могут следовать ссылки на блоки их размеров и присоединенных выносных надписей, если они имеются.

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

• Колонны. Записываются в блоки под именем COLUMN_, где n — индекс элемента колонны. Блок содержит видимые линии контура, штриховку (см. примечание относительно многоугольной штриховки) и ссылку на блок, содержащий присоединенную выносную надпись.

• Окна. Записываются в блоки под именем WINDOW_, где n — индекс элемента окна.

• Двери. Записываются в блоки под именем DOOR_, где n — индекс элемента двери.

• Объекты. Записываются в блоки под именем OBJECT_, где n — индекс элемента объекта.

• Источники света. Записываются в блоки под именем LIGHT_, где n — индекс элемента источника света.

Примечание для окон, дверей, объектов и источников света: Если библиотечный элемент не имеет 2D-скрипта, то он может иметь до 8 способов представления в зависимости от состояния маркеров Использовать типы линий символа , Использовать цвет символа и маркера зеркального отражения. Таким образом, один библиотечный элемент этого типа не может иметь более 8 экспортируемых блоков. Другие элементы с 2D-скриптами могут иметь любое количество способов представления. И при экспорте плана этажа они будут иметь столько блоков, сколько вариантов представлений они имеют на плане этажа.

Так как в одном блоке могут располагаться несколько экземпляров, присоединенные выносные надписи не могут быть размещены в таких блоках – они располагаются согласно ссылкам на блоки.

• Перекрытия. Записываются в блоки под именем SLAB_, где n — индекс элемента перекрытия. Блок содержит многоугольники контура и отверстий, а также ссылается на присоединенную выносную надпись.

• Крыши. Записываются в блоки под именем ROOF_, где n — индекс элемента крыши. Блок содержит многоугольники контура и отверстий, а также ссылается на присоединенную выносную надпись.

• Балки. Записываются в блоки под именем BEAM_, где n — индекс элемента балки. Блок содержит многоугольники контура и отверстий, а также ссылается на присоединенную выносную надпись.

• 3D-сетки. Записываются в блоки под именем MESH_, где n — индекс элемента 3D-сетки. Блок содержит многоугольники контура и отверстий, линии сетки, а также ссылается на присоединенную выносную надпись.

• Зоны. Записываются в блоки под именем ZONE_, где n — индекс элемента зоны. Блок содержит штриховку переднего плана, паспорт зоны, а также ссылается на присоединенную выносную надпись.

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

• Камеры. Камеры и наборы камер не экспортируются.

Использование шрифтов SHX при преобразовании

Расширение DXF-DWG полагается на шрифты AutoCAD, включая шрифты SHX. Это расширение выводит сообщение, которое запрашивает эти шрифты в процессе выполнения конвертирования.

Если Вы не имеете эти шрифты, то могут возникнуть проблемы при форматировании текстов (например, связанные с переходом на другую строку). В связи с этим мы рекомендуем приобрести файлы шрифтов SHX, которые входят в состав пакета AutoCAD, у Ваших коллег, работающих с AutoCAD. (Хотя в ARCHICAD нет этих шрифтов в связи с соблюдением прав собственности, однако пользователям AutoCAD разрешается их распространять.) В пакете AutoCAD также имеются варианты Truetype шрифтов SHX.

Получив эти шрифты, запомните их в отдельной папке. Когда расширение DXF-DWG запрашивает файл шрифта SHX, выберите его из этой папки. Если у Вас нет запрашиваемого шрифта, выберите другой. (В этом случае результат конвертирования может отличаться.) После того, как Вы указали папку со шрифтами, расширение далее будет обращаться к этой папке автоматически (но не к вновь создаваемым подпапкам) для нахождения необходимых шрифтов SHX.

Примечание о шрифтах TrueType: Вы можете использовать в ARCHICAD шрифты TrueType без каких либо проблем как в Windows, так и в Mac. (Пользователи Mac должны скопировать файлы шрифтов в системную папку библиотеки/шрифтов.)

Примечание о шрифтах и фигурах: AutoCAD использует файлы SHX не только в качестве шрифтов, но и для других целей. Сложные типы линий вставляют фигуры в свои шаблоны. Эти фигуры могут быть добавлены в чертежи в качестве простых символов. Это может вызвать проблемы, связанные с выбором SHX данного класса вместо шрифта. В связи с этим, когда расширение DXF-DWG запрашивает файл шрифта SHX, воспользуйтесь вариантом “Пропустить”, если Вы не уверены, что найденный файл SHX тот, который требуется. Запрашиваемое имя файла может помочь в решении вопроса, какой именно файл требуется — шрифта или фигуры.

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

Вы можете удалить дополнительные реквизиты. Отметка маркера Удалить все неиспользуемые реквизиты на странице Разное панели Параметры выбранного транслятора диалога Параметры транслятора DXF-DWG приводит к удалению тех неиспользуемых реквизитов , которые имеются в файле шаблона DWG.

Как отключить shx в автокад

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

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

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

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

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

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 не будет опубликован. Обязательные поля помечены *