Поступил вопрос от читателя:
Добрый день Андрей!Действительно, это очень неудобно - каждый раз вводить коэффициент преобразования для отображения площади в квадратным метрах, а не миллиметрах (как по-умолчанию).
При проставлении площадей в автокаде с помощью полей приходится вводить коэффициент преобразования ( например для метров - 1e-006) и каждый раз заново. Есть ли возможность сохранения введенных значений Conversion factor(а), чтобы их не приходилось вводить заново каждый раз!
Заранее спасибо Вам!
С уважением,
Максим
Задача: необходимо создать новый или изменить существующий формат поля Площадь, который позволяет наносить значение площади в метрах и добавлять к значению надпись кв.м.
1. Закрываем все текущие сеансы AutoCAD
Если AutoCAD запущен на рабочем месте, то закройте его.
2. Ищем файл AcFields.fdc
В AutoCAD все описания и настройки полей хранятся в файле AcFields.fdc
Найти этот файл можно в каталоге Support. Например, если у вас AutoCAD 2015 RUS, то путь к файлу будет следующим \Documents and Settings\[Пользователь]\Application Data\Autodesk\Autocad 2015\R20.0\RUS\Support
3. Сохраняем резервную копию файла AcFields.fdc
Подстрахуйтесь, лишним не будет.
4. Отрываем файл AcFields.fdc и ищем строку FormatType name="Area"
В итоге находим блок
5. Редактируем файл
Если вы хотите изменить существующий формат "Десятичный", то вам нужно исправить формат "473".
Для этого ищем блок
И заменяем формат FormatString на %lu2%pr3%ps[, кв.м.]%ct8[1e-006]
После изменения блок должен выглядеть вот так (красным выделена измененная часть)
6. Сохраняем файл и запускаем AutoCAD
Проверяем работу. Вставляем поле Площадь и выбираем формат Десятичный. Обратите внимание на ОбразецГотово! Можете пользоваться.
Однако, пытливый читатель может захотеть добавить свой формат поля, а не менять существующий. Это сделать можно, достаточно добавить в блок FormatType name="Area" новый блок (выделен красным)
В этом случае в списке форматов появится еще один доступный формат.
Если вы хотите самостоятельно записать параметры формата, то вот расшифровка нужных ключей:
%lu2 - децимальные единицы
%pr3 - точность (3 - три знака после запятой)
%ps[Префикс, Суффикс] - префикс и суффикс
%ct8[0.1] - коэффициент преобразования
UPD: Если вы хотите в поле площади поменять разделитель дробной части (заменить точку на запятую или пробел), то в сроку формата необходимо добавить код разделителя %ds44, тогда формат FormatString будет выглядеть так
%lu2%pr3%ps[, кв.м.]%ds44%ct8[1e-006]
В файле это должно выглядеть так
Доступные коды разделителей:
%ds46 - точка (установлен по умолчанию, его можно не указывать)
%ds44 - запятая
%ds32 - пробел
UPD2: Если вы также хотите изменить формат для поля "Длина", то в том же файле AcFields.fdc найдите строку FormatType name="LUnits" и исправьте формат существующего поля или добавьте новый, в котором будет строка
%lu2%pr3%ps[, м]%ct8[1e-003]
В файле это должно выглядеть так
В этом случае поле длины будет выводиться в виде "0.001 м".
С остальными приемами работы в AutoCAD вы можете познакомиться на этой странице блога.
С уважением, Андрей
Если вы получили ответ на свой вопрос и хотите поддержать проект материально - внизу страницы для этого есть специальная форма.
Если вы получили ответ на свой вопрос и хотите поддержать проект материально - внизу страницы для этого есть специальная форма.
Благодарю. Полезное улучшение!
ОтветитьУдалитьЗаходите еще!
УдалитьА как добавить в библиотеку AcFieldRes.dll описание вновь введенного ресурса "478" ? что бы вместо абракадабры отображалось нормальное описание в поле выбора?
Удалитьотличная статья
ОтветитьУдалитьНадеюсь, кому-то будет полезно
УдалитьСпасибо!
ОтветитьУдалитьУдивлен, что мало комментариев. Урок очень полезный. Часто слышишь: "Автокад площади не считает". А это не так и поля тому подтверждение. Есть конечно лиспы (Ptlb ; ATTSS и др.), за которые низкий поклон и благодарность их создателям, но и про "штатные" средства программы не стоит забывать. У меня все получилось, но префикс и суффикс я вводить не стал.
%lu2%pr2%ct8[1e-006]
Интересно, а для Формулы - Сумма какой параметр нужно найти аналогичный FormatType name="Area", чтобы установить точность и коэффициент преобразования?
И еще, если можно вопрос, название формата так и будет %lu2%pr2%ct8[1e-006] или возможно его заменить на пользовательское название по типу "Decimal" или др.
Спасибо!
1. Для формул таких настроек нет. Или я не знаю о их существовании
Удалить2. Имя формата считывается из AcFieldRes.dll по цифровому коду. DLL править я бы не хотел. Можете заменить код 478 на 473, тогда имя будет отображаться как "Десятичные"
Спасибо за информацию! Все понятно. Удачи!
УдалитьПрошу прощения, не прошло, как настроился формат, но может и не важно, а вот для формулы в полях можно уточнить где установить установить точность и коэффициент преобразования?
ОтветитьУдалитьСпасибо!
Добрый день !!! все сделал как вы описали в статье и все работает, но только почему-то не на площадь срабатывает , а на длину
ОтветитьУдалитьЕсли у ВАС есть время, подскажите пожалуйста в чем причина
Автокад 2016, 2017 (пробовал и там и там)
Да, вам уже верно ответили. Нужно выбрать для правки ветку FormatType name="Area"
УдалитьДобрый день!
ОтветитьУдалитьВсе работает для площади, параметр FormatType name="Area".
А вот с Формулой и ее опциями пока не идет. По идее должно сработать, но никак не могу найти нужный параметр в файле AcFields.fdc.
Спасибо Макс, "а слона то я и не приметил"
УдалитьДобрый день!
ОтветитьУдалитьА есть возможность продолжения данной темы и подсказать (если это возможно), что нужно изменить для формата поля "Длина", чтобы не вводить 1e-003. Или все возможно только для площади? Площадь и Длина - самые "ходовые" форматы. Пробовал для Длины по аналогии с Площадью, но увы. Может для Длины есть решение, чтобы работу с "основными" форматами полей более упростить.
Добрый день! Посмотрю, с ходу не могу сказать
УдалитьСпасибо! Если будет возможность рассмотреть данный вопрос (по аналогии с форматом "Площадь"), то было бы очень хорошо. С ходу конечно не надо, по наступлению временной возможности. Вы и так очень много дали полезной информации и решений для пользователей Автокада. А написать (даже самую маленькую статью) это труд и подчас весьма не малый.
УдалитьДобрый день! Добавил в конец статьи. Если кратко, то в том же файле найдите строку FormatType name="LUnits" и исправьте формат существующего поля или добавьте новый, в котором будет строка %lu2%pr3%ps[, м]%ct8[1e-003]
УдалитьСпасибо! Все работает! Добавил %lu2%pr2%ct8[1e-003] без префиксов и суффиксов в файл AcFields.fdc.
УдалитьДля площади создавал свой формат поля, а для длины добавил в существующий (в "Decimal").Хорошая получилась тема. Первый вопрос (начало темы) изначально задавал про площадь , а теперь и с длиной вообще отлично все закруглилось и связалось. Можно даже хоть снова на главную страницу тему вынести для пользователей.
Андрей спасибо Вам огромное, удачи и добра!
Андрей, спасибо большое!
ОтветитьУдалитьА не подскажете, как заменить точку на запятую в полях (подменю Дополнительный формат, там же, где коэффициент преобразования) ?
Это легко. Нужно в строку добавить код разделителя %ds44.
УдалитьВ итоге формат должен быть таким %lu2%pr3%ps[, кв.м.]%ds44%ct8[1e-006]
Добавил подробную инструкцию в конец статьи
УдалитьА как массово заменить в существующих полях запятую на точку?
УдалитьДобрый день!
ОтветитьУдалитьУважаемый Андрей, может Вы знаете как решить данный вопрос:
При работе с полями в таблице возможно суммировать, вычитать, умножать и т.п. ячейки таблицы и получать в другой ячейке конечный результат. Причем! при изменении данных в ячейках автоматически меняется и конечный результат. Пользуясь Формулой (имя поля) тоже можно производить вычисления, причем элементами для вычисления могут служить поля. Например 2*10=20, где 2 ,например, площадь некоего объекта, а 10, например, длина другого объекта. И эти величины - поля в тексте и поменяются при изменении самих объектов после, например, реген. Но вот вопрос, конечная величина 20 не изменится, как меняется конечное число в ячейке таблицы. Возможно-ли при вычислении с помощью Формулы сделать так чтобы конечное поле вычисленное с помощью выражения в Формуле менялось сообразно изменению полей непосредственно в самом выражении. В общем: 2*10=20 ,изменилась площадь и длина объектов - стало после реген: 3*11, и автоматически после реген вместо 20 стало 33, по аналогии как в таблицах Автокад. Может есть решение. Спасибо.
Добрый день, интересно, есть ли плагин для перевода чертежей из Visio в Autocad с разбивкой на слои, ну и возможностью редактирования?
ОтветитьУдалитьСпасибо
Хороший сайт, но почему не отображаются картинки, и внизу надпись Не удаётся установить соединение с сайтом. Виден только текст, вместо картинок маленькие квадратики?..
ОтветитьУдалитьК сожалению да, если вы из РФ, то часть трафика блокируется. Либо VPN, либо переезд. Это одна из причин, почему я заброс блог
Удалить