Компас надпись на чертеже

Компас надпись на чертеже

Содержание

Продолжаем цикл статей по работе с API САПР КОМПАС-3D. Управляющие символы уже несколько раз встречались нам на предыдущих уроках цикла. Тогда каждый раз говорилось, что выводимые строки не должны их содержать, так как КОМПАС обрабатывает их особым образом. Теперь пришло время познакомиться с ними поближе.

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

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

Содержание цикла уроков «Работа с API КОМПАС-3D»

Беглый обзор

, ^ и #. К сожалению в КОМПАС SDK крайне мало информации о том, как их использовать. Более подробная информация приведена в справке КОМПАС, в разделе «9. Настройки КОМПАС-3D/Хранение настроек системы/Служебные файлы/Файл пользовательских меню/Синтаксис файла».

Все управляющие символы условно можно разделить на две группы: основные и вспомогательные. Вспомогательные символы используются только совместно с основными и, сами по себе не описывают какую-либо компоненту. В таблице ниже приводится краткое описание управляющих символов.

Рассмотрим их более подробно.

Вставка специальных символов

Мы уже рассматривали специальные символы (см. уроки 4 и 10). Тогда для вставки одного спецсимвола использовался отдельный экземпляр интерфейса ksTextItemParam. С помощью управляющих символов вы можете вставлять в строку столько спецсимволов, сколько сочтете нужным без многократного использования интерфейса ksTextItemParam.
Синтаксис вставки специальных символов имеет вид:

где
АА – строка, располагаемая до специального символа,
Y – модификатор представления кода спецсимвола,
XXXX – код вставляемого спецсимвола.
BB – строка, располагаемая после спецсимвола.

Код вставляемого спецсимвола указывается между @ и

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

Примечание: как показывают мои эксперименты, КОМПАС нормально обрабатывает отсутствие символа

Ниже приводится пример программы, демонстрирующей вывод спецсимволов.

В данном примере дважды выводится один и тот же символ (α альфа). В первый раз его код задается в десятичной системе счисления, во второй раз – в шестнадцатеричной. На рисунке ниже показан результат работы программы.

Управляющие символы позволяют выводить в одной строке несколько спецсимволов. Так, в следующем примере демонстрируется вывод первых трех букв греческого алфавита за один вызов метода ksText.

На рисунке ниже показан результат работы этой программы.

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

При этом результат работы программы останется прежним.

Если после @ стоит недопустимый символ, то строка между @ и

опускаются. Например, при строке:

В документ будет выведено:

Примечание: такое поведение КОМПАС является недокументированным и может различаться в разных версиях программы.

Примечание: управляющие символы не подходят для вставки спецсимволов, содержащих строку. Дело в том, что для ограничения их действия нужно использовать флаг SPECIAL_SYMBOL_END (более подробно см. 10 урок цикла), но управляющие символы не позволяют использовать флаги.

Вставка символов шрифта

. Их синтаксис приведен ниже

где
AA – строка располагаемая до вставляемого символа,
FNAME – наименование шрифта, из которого берется символ,
Y – модификатор представления кода символа (аналогично @),
XXXX – числовой код вставляемого символа,
BB – строка располагаемая после вставляемого символа.

По своему назначению управляющий символ ^ похож на @. У них даже схожий синтаксис. Но между ними есть два важных отличия:

  1. ^ вставляет не специальный символ, а символ шрифта по его коду;
  2. для вставляемого символа можно задать шрифт в поле FNAME (@ этого не позволяет).

Коды символов можно посмотреть с помощью приложения charmap (Таблица символов), входящего в состав операционной системы Windows.

Если шрифт не указан, то используется шрифт по умолчанию. Ниже приводится пример использования символа ^.

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

Обратите внимание: шрифт задается только для выводимого символа. Как показывают мои эксперименты, КОМПАС нормально обрабатывает отсутствие завершителя

. Однако я не рекомендую полагаться на такое поведение и всегда ставить завершитель.

Если после ^ указан недопустимый символ (или недопустимый код), то ^ и

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

В документ будет выведено:

“До Q(Arial)*B1 После”

Если в поле FNAME будет указано некорректное имя шрифта, то КОМПАС сам подберет шрифт и выведет символ в нём.

Если в строке нет закрывающей круглой скобки, то такая строка будет выведена не полностью. Например, при строке:

В документ будет выведено только

Примечание: приводимое выше поведение при некорректном синтаксисе управляющих символов справедливо для КОМПАС-3D V17 и не документировано. В других версиях оно может отличаться.

Дополнительные способы вставки символов

У символов @ и ^ есть аналоги – & и # соответственно. Они имеют схожий синтаксис:

AA – строка, выводимая до вставляемого символа,
XX – код вставляемого символа (для & – спецсимвола, для # – символа шрифта),
BB – строка, выводимая после вставляемого символа,
FNAME – наименование шрифта.

Различий между символами @ и ^, и их аналогами всего два:

  1. В символах & и # нет модификатора Y. Код символа всегда задается в десятичной системе счисления.
  2. Код вставляемого символа задается максимум двумя цифрами.

Ниже приводится исходный код программы, демонстрирующей работу с символами & и #.

На рисунке ниже показан результат работы этой программы.

Многострочный текст

. Ниже приводится исходный код программы, демонстрирующей вывод многострочного текста с помощью управляющих символов.

Обратите внимание: благодаря использованию управляющих символов мы выводим двустрочный текст всего одним вызовом метода ksText. На рисунке ниже показан результат работы этой программы.

Вставка управляющих символов

Мы разобрались, как вставлять произвольные спецсимволы и символы Unicode. Но что если требуется вставить сам управляющий символ? Тут можно пойти двумя путями. Первый способ это использовать символ ^ и вставить их как обычные символы шрифта. Но есть и более простой способ.

Символ ; является вспомогательным и может быть вставлен непосредственно в текст. Для вставки других управляющих символов их нужно задвоить. То есть пара символов @@ вставляет в текст один символ @. Это же справедливо и для других управляющих символов.

Ниже приводится пример программы, демонстрирующей вставку управляющих символов в строку.

На рисунке ниже показан результат работы этой программы.

Верхнее и нижнее отклонения

Для вставки отклонений используется следующий синтаксис:

AA – текст выводимый до отклонений;
XX – верхнее отклонение;
YY – нижнее отклонение;
BB – текст выводимый после отклонений.

Обратите внимание: вся конструкция ограничивается символами $, а символ «;» служит разделителем между верхним и нижним отклонениями.

Если между символами $ нет разделителя «;», то вся строка между ними интерпретируется как верхнее отклонение. Если компонента XX отсутствует, то есть после первого $ сразу идет «;», то вся последующая строка до ближайшего $ интерпретируется как нижнее отклонение.

Примечание: текст верхнего отклонения не должен начинаться с букв b, d, s, m и l (строчная L). Причина этого будет объяснена чуть позже.

Ниже приводится пример программы, демонстрирующей вывод текста с отклонениями

На рисунке ниже показан результат работы этой программы:

Учтите, КОМПАС обрабатывает только один символ «;». Второй символ «;» может интерпретироваться как завершитель всей конструкции. Например, при строке «11$22;33;44$» на экран будет выведено:

Примечание: такое поведение КОМПАС не документировано, поэтому полагаться на него нельзя.

Дробь

Синтаксис дроби похож на синтаксис отклонений и имеет два равнозначных варианта:

AA – текст выводимый до дроби;
XX – числитель;
YY – знаменатель;
BB – текст выводимый после дроби.

Обратите внимание: единственное, чем отличается вывод дроби от вывода отклонений это наличие буквы d или b сразу после первого знака $. Во всем остальном их синтаксисы идентичны.

Если между символами $d ($b) и $ нет символа «;», то вся строка между ними будет интерпретироваться как числитель. Если компонента XX отсутствует, то есть после $d ($b) сразу идет «;», то вся последующая строка до ближайшего $ интерпретируется как знаменатель.

Примечание: текст числителя не должен начинаться с букв s, m или l (строчная L). Причина этого будет объяснена чуть позже.

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

На рисунке ниже показан результат работы этой программы.

Учтите, КОМПАС обрабатывает «лишние» символы «;» также как и в случае отклонений. Такое поведение является недокументированным, и полагаться на него нельзя.

Управление размером отклонений и дроби

В самом начале конструкции построения отклонений или дроби может находиться одна из букв: s, m или l (строчная L). Они задают размер отклонений и элементов дроби (числителя и знаменателя). Их назначение описывается в таблице ниже.

Если ни одна из этих букв не указана, то для дроби используется l, а для отклонений m. Ниже приводится пример программы, демонстрирующей использование этих букв.

На рисунке ниже показан результат работы этой программы.

Хотя в данном примере буквы s, m и l используются для дроби, их применение для отклонений ничем не отличается.

Учтите, что если между началом дроби или отклонения ($, $d или $b) и буквой s, m или l находится хотя бы один «посторонний» символ (например, пробел), то КОМПАС «не увидит» букв, и дробь или отклонение будут иметь размер по умолчанию.

Вложенные управляющие символы

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

На рисунке ниже показан результат работы этой программы.

Для вставки букв греческого алфавита мы используем управляющие символы @ и ^ (для буквы  пи). Степень в первом слагаемом выводится с помощью отклонений. Ее выводит подстрока $s2$. Буква s указывает на малый размер отклонения, а благодаря отсутствию разделителя «;» выводится только верхнее отклонение.

Для формирования дроби используется комбинация $d;$. Причем в состав числителя и знаменателя входят управляющие символы, которые обеспечивают вывод букв греческого алфавита.

Последнее вычитаемое (π пи) выводится как символ шрифта Symbol с помощью управляющих символов ^ и

К сожалению возможности такой «рекурсии» сильно ограничены. Мы не можем дробь и отклонения вкладывать друг в друга. Проблема в том, что они оба формируются с помощью управляющего символа $. Из-за этого КОМПАС не может правильно разобрать, какой $ к какому элементу относится.

Управляющие символы в параграфе

Частично обойти ограничение с вложенными управляющими символами можно с помощью параграфов. Совместное использование управляющих символов и параграфов позволяет строить еще более сложные конструкции. Пример ниже демонстрирует построение 4-уровневой дроби.

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

Заключение

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

Продолжение следует, следите за новостями блога.

Сергей Норсеев, к.т.н., автор книги «Разработка приложений под КОМПАС в Delphi».

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

На компактной панели активируем кнопку "Обозначения". Далее переходим к кнопке "Ввод текста" (см. скриншот выше). После этого щелчком левой клавиши мыши нам необходимо обозначить место на чертеже, точку, от которой мы начнем набирать наш текст. Место можно выбрать любое, так как набранный и сохраненный текст в будущем можно легко перенести и отредактировать.

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

Обратите внимание, что кроме формата текста в вкладке параметры (внизу) есть еще и вкладка "Вставка", при помощи которой можно вставить любой символ или спецзнак. В нашем случае нам необходим знак "Плюс-минус".

После ввода текста нажимаем вместе клавиши Ctrl+Enter. Текст готов.

Теперь его можно переместить. Для этого достаточно нажать и удерживать на нем левую клавишу мыши и перемещением разместить текст в номов месте. Кроме этого двойное нажатие клавиши мыши возвращает нас к редактированию текста. Само редактирование — аналогично офисным приложениям: выделяем текст, а только потом меняем его параметры.

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

Кнопки для вызова команд простановки размеров собраны на панели инструментов Размеры (рис. 2.43). Эту панель можно вызвать, щелкнув на одноименной кнопке переключения компактной панели.

Рис. 2.43. Панель Размеры

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

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

Линейный размер – предназначен для простановки линейного размера на чертеже. Создание размера состоит из последовательного указания трех точек: две первые определяют собственно величину размера, а третья указывает (фиксирует) местоположение размерной линии на чертеже. В отдельных случаях трудно задать точки, определяющие величину размера. При этом лучше указать сам прямолинейный объект, чтобы система самостоятельно определила его габариты. Это можно сделать, нажав кнопку Выбор базового объекта

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

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

Радиальный размер – строит радиальный размер для дуг окружностей. В этой же группе находится команда Радиальный с изломом

Угловой размер – отвечает за построение углового размера между двумя прямолинейными объектами. Для простановки угловых размеров существует еще несколько команд, объединенных в одну группу (Угловой от общей базы, Угловой цепной, Угловой с обрывом и пр.).

Размер дуги окружности – предназначен для построения размера, показывающего длину дуги окружности (рис. 2.44).

Рис. 2.44. Варианты отрисовки размеров дуги окружности

Размер высоты – позволяет создавать ряд размеров, обозначающих отметки высоты (рис. 2.45).

Рис. 2.45. Размер высоты

При вводе размера любого типа вы можете управлять различными настройками их отображения. Их можно изменять на вкладке Параметры панели свойств (рис. 2.46).

Рис. 2.46. Параметры отображения размера (на примере команды Диаметральный размер)

Доступны следующие параметры отображения размера и размерной надписи (приведены типовые параметры для всех разновидностей размеров):

• выбор типа стрелки на концах размерной линии (раскрывающийся список Стрелка):

• выбор способа размещения текста размерной надписи и линии выноски (раскрывающийся список Размещение текста):

– автоматическое (текст размещается посредине размерной линии);

– ручное (размещение текста размера определяется пользователем);

– на полке, вправо;

• настройка положения надписи (раскрывающийся список Положение надписи):

– параллельно, над линией;

– параллельно, в разрыве линии;

– горизонтально, в разрыве линии.

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

Очень хорошие возможности КОМПАС-График предлагает для оформления текстовой надписи (простановки различных знаков, квалитетов, отклонений и пр.). Все элементы оформления настраиваются в окне Задание размерной надписи (рис. 2.47), для вызова которого следует щелкнуть на поле Размерная надпись вкладки Размер настроек любого размера.

Рис. 2.47. Диалоговое окно Задание размерной надписи

В этом окне можно ввести текст и символ, которые разместятся до значения размера, а также текст после размера (например, ?45°). Вы также можете вводить значение размера, согласованное со стандартным рядом (Ra5, Ra10, Ra20 или Ra40), или включить автоматическое определения размера указанного объекта (флажок Авто). Данное окно также содержит элементы управления для настройки квалитета и отклонений, отображаемых в размерной надписи, причем значения отклонений автоматически согласовываются с выбранным квалитетом. Выбор квалитета производится в окне Выбор квалитета, которое появляется при щелчке на кнопке Квалитет. Это избавляет вас от долгого поиска в справочнике нужного квалитета для отверстия или вала, а также значений отклонений, соответствующих ему. В текстовом поле в нижней части окна Задание размерной надписи отображается размерная надпись, которая является результатом сделанных настроек. Установив флажок Использовать по умолчанию, вы можете сохранить настройки (символ, квалитет, значение), и они будут применятся при последующих вызовах этого окна.

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

Рис. 2.48. Наклонный размер

1. Создайте новый чертеж и постройте в нем какой-либо прямолинейный объект, например отрезок произвольной длины.

2. Нажмите кнопку Линейный размер на панели инструментов Размеры.

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

на панели специального управления нажата, то щелкните на ней (если данная кнопка не нажата, ничего делать не нужно).

4. Укажите точки размера по краям отрезка или сам отрезок в качестве базового объекта для построения размера (во втором случае предварительно нужно нажать кнопку Выбор базового объекта).

5. В группе кнопок Тип нажмите кнопку Параллельно объекту

6. После фиксации размерной линии нажмите кнопку Наклонить размер

на панели специального управления. При этом на панели свойств должно отобразиться поле Угол для задания угла наклона (рис. 2.49).

Рис. 2.49. Задание угла наклона линий-выносок

7. Задайте необходимый угол (или просто наклоните размер, перетащив его за характерные точки сбоку от размерной линии), после чего отожмите кнопку Наклонить размер.

8. Щелкните на кнопке Создать объект, чтобы завершить построение размера. Полученный размер должен напоминать показанный на рис. 2.48.

Читайте также:  Маркер меловой на водной основе
Оценить статью
Добавить комментарий