Сообщество программистов Autodesk в СНГ

ADN Club => Адаптация AutoCAD и вертикальных приложений => Тема начата: Alexsandr_13 от 12-03-2019, 21:22:34

Название: Поля в Autocad
Отправлено: Alexsandr_13 от 12-03-2019, 21:22:34
Доброго времени суток. Интересует вопрос по полям в Autocad 2018. В базе имеется keyword %<Drawing>%, он выдает имя файла dwg без расширения, допустим будет выдавать U02_BL04_D2600 - имя файла. Это имя будет вставляться в выноску. Вопрос состоит в том как можно убрать лишние символы спереди или сзади. Можно ли решить формулами или какими-нибудь ключами. И где об этом можно почитать.
Название: Re: Поля в Autocad
Отправлено: Александр Ривилис от 12-03-2019, 21:27:21
Alexsandr_13,
Приветствую на форуме. О какой базе идёт речь? В выноску выставляться должно поле или текст?
Название: Re: Поля в Autocad
Отправлено: Alexsandr_13 от 12-03-2019, 21:30:07
База sql сервера
Название: Re: Поля в Autocad
Отправлено: Александр Ривилис от 12-03-2019, 21:36:13
Тогда я не понял в чем вопрос. Получаешь из базы строку, создаёшь выноску, вписываешь в неё строку. И всё. В чем вопрос?
Название: Re: Поля в Autocad
Отправлено: Alexsandr_13 от 12-03-2019, 21:51:09
Дело в том что выноска настроенная уже в сеансе autocad и получает данные с базы. А вот поле %<Drawing>% я могу настроить, чтобы уже был нужный результат.
Название: Re: Поля в Autocad
Отправлено: Александр Ривилис от 12-03-2019, 22:26:33
Alexsandr_13,
Похоже что мы говорим на разных языках. Ну да ладно. В полях AutoCAD можно использовать выражения DIESEL: https://knowledge.autodesk.com/support/autocad-lt/learn-explore/caas/CloudHelp/cloudhelp/2019/ENU/AutoCAD-LT/files/GUID-F94A885A-4DA2-432B-AC1A-EB49CC6C1C72-htm.html
И в частности substr в формате $(substr, string, start [, length])
Например,
Код - Auto/Visual Lisp [Выбрать]
  1. %<\AcDiesel $(substr,$(getvar,dwgname),1,$(-,$(strlen,$(getvar,dwgname)),4))>%
в поле возвращает имя файла без расширения.
Название: Re: Поля в Autocad
Отправлено: Alexsandr_13 от 12-03-2019, 23:15:03
данное ключевое слово %<Drawing>% возвращает уже без расширения, например такое U02-BLOCK03-D2600-Plan3, мне нужно к примеру BLOCK03-D2600 или Plan3. Но в каком направлении идти я понял. Спасибо за помощь. Буду изучать Diesel, до этого обходился макросами и простыми lisp программками.
Название: Re: Поля в Autocad
Отправлено: Александр Ривилис от 13-03-2019, 00:38:23
данное ключевое слово %<Drawing>% возвращает уже без расширения, например такое U02-BLOCK03-D2600-Plan3, мне нужно к примеру BLOCK03-D2600 или Plan3. Но в каком направлении идти я понял. Спасибо за помощь. Буду изучать Diesel, до этого обходился макросами и простыми lisp программками.
Снова ничего не понял. Это "ключевое слово" в чертеже присутствует? Если да, то где? Если нет, то очень сомневаюсь, что Diesel тебе поможет. Также не понял что эта тема делает в разделе .NET
Название: Re: Поля в Autocad
Отправлено: Alexsandr_13 от 13-03-2019, 23:51:48
Спасибо Александр за помощь. С Diesel разобрался. %<Drawing>% - ключевое слово в базе sql, определяет dwg файл из списка в то же базе. Дальше передается в открытый сеанс autocad в мультивыноску как поле. Ваш пример %<\AcDiesel $(substr,$(getvar,dwgname),1,$(-,$(strlen,$(getvar,dwgname)),4))>% помог разобраться. Только синтаксис немного изменил. %<\AcDiesel $(substr, %<Drawing>%, 4)>%,  %<Drawing>% - определяется как ключевое слово, дальнейшие параметры согласно функции возвращают нужное количество символов.
На счет "Также не понял что эта тема делает в разделе .NET", могу сказать только, что пока писал сообщение время регистрации истекло и пришлось перерегистрироваться, а дальше попала наверно в первую попавшуюся.
Если хотите перенесите куда надо или удалите.
Спасибо за помощь, я проблему решил.
Название: Re: Поля в Autocad
Отправлено: xag от 22-03-2019, 05:25:28
Всем добрый день. Интересует вопрос по полям в Autocad 2017рус.
Пишу формулу для поля: %<\AcVar ctab \f "%tc1">%.
Часть в формуле (\f "%tc1") является ключом к редактированию названия вкладки чертежа.
Вопрос состоит в том как можно убрать лишние символы спереди или сзади при помощи ключей.
Эту формулу планировал вставлять в МТекст, в атрибуты блоков.
Название: Re: Поля в Autocad
Отправлено: Александр Ривилис от 22-03-2019, 19:22:15
xag,
Код - Auto/Visual Lisp [Выбрать]
  1. %<\AcDiesel $(substr,$(getvar,ctab),начальный_номер,конечный_номер)>%
Название: Re: Поля в Autocad
Отправлено: xag от 23-03-2019, 09:16:32
Есть МТекст 1 (Доброе утро страна), хочу получить Поле в МТексте 2 (утро).
Создаю МТекст 2, вставляю поле:
Категории полей: Объекты
Имена полей: Объект
Тип объекта: при помощи выбора объекта выбираю МТекст 1
Свойство: Содержимое
Получаю формулу для поля:
%<\AcObjProp Object(%<\_ObjId 2099770336>%).TextString \f "%tc3">%
Часть в формуле (\f "%tc3") является ключом к редактированию содержимого.
Вопрос состоит в том как можно убрать лишние символы спереди или сзади при помощи ключей.
%<\AcDiesel $(substr,$(getvar,ctab),начальный_номер,конечный_номер)>%
Если вместо ctab написать формулу %<\AcObjProp Object(%<\_ObjId 2099770336>%).TextString \f "%tc3">%, то ничего не получается.
%<\AcDiesel $(substr,$(getvar, %<\AcObjProp Object(%<\_ObjId 2099770336>%).TextString \f "%tc3">%),начальный_номер,конечный_номер)>%
Название: Re: Поля в Autocad
Отправлено: Александр Ривилис от 23-03-2019, 14:19:50
xag,
Почитай эту тему и поймёшь, что это тупиковый путь: http://adn-cis.org/forum/index.php?topic=609.0