Подстановки


Подстановки используются во многих командах A>V>C>, например в программах Таблица данных, Таблица напилки, Выкладка, Маркировка и Умные выноски. Подстановки - это система аналогичная полям Автокада.  Подстановки показывают программам A>V>C> в какое место текста вставить данные о деталях. Например, вам надо чтоб заголовок детали на выкладке содержал строку "Деталь №1, слой ДСП", где 1 - это имя детали, а ДСП имя слоя детали. Тогда вы используете в настройках выкладки две подстановки: "Деталь №%name%, слой %layer%". И программа подставит у каждой детали имя детали там, где написано %name%, и слой детали там, где написано %layer%. 

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

Если вы не можете самостоятельно настроить подстановки, то обращайтесь в техподдержку или в Telegram-чат. Небольшие консультации предоставляются бесплатно.

Написание подстановок

Каждая подстановка начинается и заканчивается символом процента % и может состоять из имени или нескольких имен свойств, затем цифры индекса и затем формата:

%имяимяимяN:Формат%

Имена подстановок чувствительны к регистру - обычно надо писать маленькими английскими буквами, или так же как называется атрибут, свойство чертежа. Некоторые данные можно подставить короткой подстановкой или длинной (например, %n% или %name%) - разницы нет никакой. 

Имя подстановки может быть составным. Например, face означает что надо подставить какое-то свойство поверхности солида. За face указываем какое именно: facearea - площадь, facemat - материал покрытия поверхности. А после mat может быть еще и свойство этого материала. facematprice - цена материала покрытия поверхности солида. Все эти части следует писать маленькими буквами без пробелов.   


%facematprice2:#.##'$'%


Здесь вы видите внутри подстановки не только ее трехсоставное имя, но еще и индекс и формат. Индекс используется только для указания номера раскрашенной поверхности или номера торца детали. В данном случае 2 означает, что вам нужно подставить цену материала второй (тыльной) стороны детали. Причем отформатировать цену надо с центами и символом доллара в конце. А например, %edgematart1% - артикул (art) кромочного материала (mat) на первой (самой длинной) кромке (edge) детали.

Форматы подстановок

Формат подстановки пишется после имени и индекса и отделяется двоеточием. Формат переопределяет стандартное форматирование чисел, размеров, площадей. Формат позволяет задать сколько цифр дробной части числа выводить. Так же в формате можно задать любой текст в кавычках. Этот текст будет подставлен только, если значение числа/длины/площади/объема не равно нулю. Вы можете использовать это для вывода единиц измерения. Для строковых подстановок строка формата позволяет подставить какие-нибудь вводные слова, но только если значение подстановки - не пустая строка. Так как я использую язык программирования C# для моих плагинов, то вы можете посмотреть описания форматных строк для C# и использовать их в подстановках.


%info:\PОписание: {0}% 

Такая подстановка превратится в пустую строку, если информация о детали пуста. А если не пуста, то будет вставлен перенос строки (в Автокаде кодируется символами \P ), потом слово Описание с двоеточием и только после этого будет вставлено описание детали.

Не пытайтесь вставить между фигурными скобками вместо 0 другую цифру. Это вызовет ошибку программы. Используйте только {0}


Далее в описании каждой подстановки будет указан ее тип. Исходя из этого можно выбрать допустимые форматы.

Функция substr (подстрока)

Функция substr позволяет вам извлечь часть строки (подстроку). Имя функции следует писать маленькими буквами. После имени функции следует написать два целых числа через запятую: стартовую позицию и длину подстроки. Первое число - номер символа в исходной строке начиная с 1. Эту цифру можно пропустить, сразу написать запятую и тогда подстрока будет извлечена с начала строки, с первого символа. Вторая цифра означает количество символов, которое надо извлечь. Если длина задана больше длины исходной строки, или если вторая цифра не указана, то извлекаются все символы до конца исходной строки. Примеры:


%name:substr3,4% 

В этом пример извлекается имя объекта (например, имя старого блока в команде AsmNew), а затем функция substr извлекает из имени 4 символа, начиная с третьего. Например, если имя было "Сб9876A", то будет подставлено только "9876". 

Другие примеры:

Математические выражения

Многие команды, работающие с подстановками, позволяют вычислять математические выражения с числами и числовыми подстановками. В частности вы можете написать математическую формулу в настройках любого столбца любой табличной команды: Таблицы Данных, Таблицы Напилки и так далее. Для вычисления формулы надо начать текст с символа =.

Например, для вычисления площади габаритного прямоугольника детали, можно в Таблице Напилки создать столбец со значением  "= %length% * %width% / 1000000" . В этом случае сначала будет подставлено значение длины и ширины, а затем они будут перемножены и пересчитаны из мм в метры квадратные. 

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

Операторы: 

^ + - / ÷ * × %

Функции:

exp, log, ln, sqrt, fpart, round, ceil, floor, fac, sfac, abs 

Тригонометрические функции:

cos, sin, tan, cotan, acos, asin, atan, acotan, cosh, sinh, tanh

Операторы сравнения (возвращают 0 или 1):

>, <, ==, !=, >=, <=

Логические операторы:

&&, ||, ! 

Константы: 

euler, pi, nan, infinity, true, false 


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

Учтите, что в Excel и в dwg-таблицу будет записываться результат, а не формула (если только его удастся вычислить). Если невычисленное выражение попадает в ячейку таблицы, то AutoCAD будет пытаться вычислить выражение сам и скорее всего покажет ошибку (ячейку с символами ####). 

Диалог выбора подстановки

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

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

В диалоге настроек все подстановки сгруппированы по объектам из которых можно извлечь данные. Формат подстановки можно ввести в отдельном поле ввода, причем поле запоминает последние введенные вами форматы и содержит примеры - вы можете выбрать их из выпадающего списка. Если подстановка допускает индекс, то появится поле ввода индекса. В низу формы вы увидите поле с результирующим кодом подстановки. Его можно подправить. Здесь тоже есть список из последних подстановок - возможно вам будет проще выбрать подстановку из этого списка. Нажмите ОК для вставки подстановки. Или закройте диалог крестиком, чтоб не вставлять ничего.

Общие свойства

У всех объектов чертежа можно получить и подставить в текст несколько стандартных свойств. Вот подстановки для них:

Имя объекта

Если вы используете панель свойств A>V>C> (AVCPalette), то для всех объектов чертежа вам будут доступны подстановки:


Вы можете заказать добавление любых текстовых свойств к объектам. Доработка одного свойства - 50$. 

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

Для объектов извлеченных из блоков-сборок, можно извлечь свойства блока и его константных атрибутов. Для этого напишите в подстановке слово block и далее нужное свойство. Учтите, что объекты не знают через какую ссылку на блок их получили и поэтому свойства ссылки на блок недоступны. Так же недоступны и параметры динамических блоков и изменяемые атрибуты.

Солид

Помимо стандартных свойств у твердых тел можно подставить свойства: 

Если вы используете панель свойств A>V>C> (AVCPalette), то вам будут доступны подстановки:


Метрика солида

Если вы запускали команды SolSize, Умная выноска, Выкладка, Таблица напилки, то в xData солида будет записана его метрика. Вы можете получить эти данные используя подстановки:

Индексы торцев солидов

Торцы солидов в подстановках edge, bandings и slopes нумеруются (индексируются) в порядке обхода фасадной поверхности по часовой стрелке, начиная от левого нижнего угла детали. Имеется ввиду, что деталь уже выложена в плоскость XY командой Выкладка. Таким образом у прямоугольной детали на выкладке торец номер 

Но торцев не обязательно 4, их может быть сколько угодно. И они не обязательно линейные

Если на прямоугольной детали срезаны углы или есть вырезы, то номера торцев сбиваются и вы не сможете вывести именно правый торец по его индексу, он уже не третий, а, например, 6. Для решения этой проблемы вы можете использовать 4 специальных индекса основных направлений торца:

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

Если в таблице нужно сначала указать столбцы верхней и нижней кромки, а потом левой и правой (как этого требует экспорт в программу OptiCut), то используйте такой порядок столбцов: 2000,4000,1000,3000. 

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

У детали может не быть какого-то из этих 4х торцев (треугольная деталь, дуга, круг). Будет подставлено Н/Д.

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

Именно эти четыре основных направления торцев могут быть названы буквами Л, В, П, Н или стрелками, если вы включите такую опцию в Общих Настройках.

Блок 

Для ссылки на блок (BlockReference) доступны все стандартные свойства примитивов плюс дополнительные свойства:


Так же доступны свойства определения блока (BlockTableRecord):


Атрибуты и параметры - тоже доступны. Как константные (из определения блока), так и изменяемые (из ссылки на блок). Их название надо заключить между символами %. Важно соблюдать регистр букв как записан тэг атрибута, так и писать в подстановке. Подстановки атрибутов и параметров можно форматировать как строку. Целочисленные и действительные параметры можно форматировать как число.

Кривые

Все линии, полилинии, мульти-линии, дуги, окружности, плоские сплайны, эллипсы добавляют к стандартным подстановкам:

Полилиния

Добавляет к стандартным подстановкам и подстановкам кривых:

Дуга

Добавляет к стандартным подстановками подстановкам кривых:

Окружность

Добавляет к стандартным подстановкам и подстановкам кривых:

Текст (Text и MText)

Добавляет к стандартным подстановкам:

Выноска (MLeader)

Добавляет к стандартным подстановкам:

Таблица

Видовой экран (Viewport)

Слой

Слои обычно не доступны сами по себе, их следует получать, как свойство видимых объектов чертежа через подстановку %layerNNN%, где вместо NNN вы можете написать одну из следующих подстановок свойств слоя:

Группа

Под группами имеются ввиду группы совместно выбираемых объектов пространства модели. Группы обычно не доступны сами по себе, их следует получать, как свойство видимых объектов чертежа через подстановку %groupNNN%. AutoCAD позволяет приписать один объект ко многим группам, но программы AVC выберут одну (первую попавшуюся) группу. Вместо NNN вы можете написать одну из следующих подстановок свойств группы:

Лист (Layout)

Подстановки свойств листа доступны только в настройках команды Деталировки (DDraw). По мимо свойств самого листа, вы можете подставить свойства вьюпорта или детали, видимой во вьюпорте. Для этого следует использовать префикс view. Например %viewstandardscale% - это масштаб вьюпорта. Если на листе несколько вьюпортов, то будут подставлены все варианты свойства. Свойства детали подставляются в первую очередь, даже если у вьюпорта есть такое же свойство. Например, %viewlayer% - это слой детали, показанной во вьюпорте, а не слой самого вьюпорта.

Свойства детали

Когда команды Выкладка, Таблица Данных и Таблица Напилки группируют одинаковые объекты в одну запись и подсчитывают количество одинаковых, то в таких командах доступны подстановки свойств детали:

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

Если включен поиск объектов внутри блоков-сборок или множитель (серия) больше 1, то можно использовать дополнительные подстановки:

Свойства детали нигде не сохраняются и поэтому не доступны в Умных Выносках и Маркировке.

Материалы

Если вы используете панель свойств A>V>C> (AVCPalette), то вам будут доступны подстановки свойств материала. Если вы извлекаете данные из солидов, то надо написать перед подстановкой mat. А команде Таблица Материалов эта приставка не нужна.


В команде Таблица Материалов, вы можете использовать подстановки расчета материала на выбранные детали:

Свойства чертежа

Для любого объекта вы можете использовать подстановки свойств чертежа DWG:

Так же вы можете подставить и пользовательские (прочие) свойства чертежа. Для этого оформите подстановку в виде %customdp.Имя_моего_свойства% Не забудьте точку перед именем. Важно написать имя в том регистре букв как и в свойствах чертежа. 

Все свойства чертежа, кроме дат, форматируются как строка.

Текущее время

Для любого объекта вы можете использовать подстановки даты и времени

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

Контуры деталей для ЧПУ

Команды подготовки контуров для ЧПУ (Внешний контур, ЧПУ_Подготовка и DXF Экспорт) умеют использовать подстановки при создании новых слоев. В этих подстановках могут использоваться данные о контурах детали, необходимые для назначения параметров обработки детали. Эти же подстановки можно использовать в Таблице Сверлений и на выносках угла наклона торца.

Имя вида

Программа Выкладка (Lay) может выкладывать детали лицом или задом. С помощью специальной подстановки %view% вы можете вывести название вида в заголовок детали. Подстановка так же доступна в команде DXF экспорт.

Неизвестные свойства

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

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

Поля

Поля AutoCAD - это тоже подстановки специального вида. Они вставляются командой _Field в любые тексты (мультитекст, выноски, атрибуты, таблицы) позволяют отображать свойства чертежа или объектов. Удобно то, что поля обновляются автоматически, почти сразу после того как вы измените свойство объекта. Обновление полей может происходить при регенерации изображения (команда _Regen), переключении листов, перед печатью или в ручную командами _UpdateField и AVCUpdate. Обновления полей настраиваются системной переменной FieldEval.

Команды из плагинов A>V>C> умеют создавать поля и заменять подстановки на поля. Это может быть удобно для частых изменений объектов - данные изменятся на Умных Выносках даже без вызова команды LeaderUpdate. Но есть ряд ограничений и особенностей:

Создание полей легко отключить в Общих Настройках - см. галочку "Использовать поля".

В Общих Настройках можно настроить формат отображения цифр/размеров. Эта настройка действует и для полей. Но тут есть ограничение - вы не можете добавлять в строку формата свои символы и тексты. И бесполезно указывать специальные форматы в самой подстановке - они не будут использованы в полях.