Добрый день!
Есть динамичекий блок основной надписи. В нем два линейных параметра: высота и ширина рамки. Эти параметры могут принимать значения из списка (по ГОСТу 297, 420, 594 и тд).
Под рамкой требуется выводить формат листа, например А4, А3х2 и т.д.
Создала атрибут, поняла что в него можно выводить значения самого параметра (через задание значения по умолчанию)
Например, если высота листа 297, то в атрибуте будет значение 297. Если поменять высоту листа, после регенерации изменится и атрибут.
Но мне надо как то свзять значение 297 со строкой "А4". То есть не напрямую выводить значение атрибута, а обрабатывать его каким то образом.
Подскажите, пожалуйста, можно ли это сделать и как?
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
kpblc2000 написано:
писать жуткое DIESEL-выражение (которое будет учитывать все варианты),
суть ясна, но я не оч знакома с diesel и не могу понять как использовать в diesel-выражение значение параметра. Если его имя "высота", оно имеет формулу поля
%<\AcObjProp.16.2 Object(?BlockRefId).Parameter(48).UpdatedDistance \f "%lu6">%
мне надо составить выражение на подобие
1) $(if,$(=,"высота",297),A4,....)
это конечно упрощенно, но я хочу хотя бы увидеть что поле правильно работает с параметром и обновляется при изменении параметра. но ничего пока не выходит и ответа не нашла:
тут подобный вопрос без ответа http://forums.autodesk.com/t5/Dynamic-Blocks/If-statement-in-field-of-dynamic-block/td-p/2376448
kpblc2000 написано:
либо использовать несколько параметров видимости - и уже от них "плясать",
ятак понимаю, в этом случае пользователь должен будет сам выбирать из списка состояние видимости и автоматически будет меняться какое из значений формата становится видимым? или можно как то добиться, что состояние видимости будет изменяться само при изменении параметров высоты и ширины листа?
kpblc2000 написано:
А4 - это не только высота 297, но и ширина 210.
я думала сделать 2 атрибута, Высота точно определяет формат А0-А4, а Ширина - кратность формата, ну то есть если составить список всех возможных значений ширины листа по ГОСТ, там не будет одинаковых значений для разных высот, поэтому я думала создать два рядом стоящих атрибута
"АN"x"K"
где "AN" - От А0 до А4 - определяется параметром высоты
К - кратность ширины листа - однозначно определяется параметром ширины листы
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
kpblc2000 написано:
А как учитывать, что А3, например, может быть повернут на 90°?
да, об этом я не подумала... вы правы
С видимостью я поняла, посмотрела как сделан блок на dwg.ru.
У меня просто ситуация немного другая: у меня написана dll, которая подгружает корпоративное меню, одна из команд в меню - сформировать лист произвольного размера. Выпадает форма с всеми возможными размерами (там есть не только ГОСТ, но и наши внутренние размеры). Пользователь выбирает нужный размер - формируется лист с нужной конфигурацией плоттера и на него размещается блок штампа в нужных размерах. Это все делается программно. А сейчас потребовалось еще формат выводить внизу для ГОСТ размеров
Поэтому я и думала - не сильно изменяя код, изменить блок - чтобы для ГОСТовских размеров автоматически менялось значение атрибута.
Но видимо не получится, вопрос остается ткрытым как использовать параметр в Diesel-выражении..
Если не получится, буду менять и код и блок - чтобы работать с видимостью
спасибо
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
kpblc2000 написано:
Я бы подумал о том, чтобы это "программное" значение выводить внутри того же кода. Наверняка это окажется чуть ли не самым простым и внятным решением.
я тоже так сначала подумала. Но если я выведу программно текст, то после этого при изменении блока вручную, поле останется "мертвым".
То есть, если пользователь решит увеличить формат листа (например не влез чертеж в предполагаемый размер), блок изменит размер, а подпись формата останется прежней
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
Cпасибо за советы.
Обсудили с руководителем, остановились на временном варианте - пока оставить простой текстовый объект и изменять его ручками самим пользователям.
В будущем (если руки дойдут) - думаю использовать атрибут со значением по умолчнанию "формат листа". (это название конфигурации печати из файла pc3)
1) При формировании листа в пространстве листа программно не только блок размещается с нужными размерами, но и размер самого печатного листа. (как раз устанавливается нужная конфигурация из pc3). Поэтому ее удобно использовать, т.к. она должна всегда соответсвовать размеру блока.
2) Только вот сейчас у меня названия конфигураций из файла pc3 не соответсвуют названиям гостовских форматов. Придется их переименовывать и переписывать код, т.к. сейчас как раз используется в коде названия этих кофигураций.
Вообщем это выходит за рамки первоначального вопроса, но решила поделиться:))
еще раз спасибо
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
Я писал не про параметр видимости, а про параметр выбора.
На работе админы доступ к сети порезали и ответить толком не получилось. Так что повторюсь...
1. В «Редакторе блоков» создаем нужное количество параметров ‘Выбор’.
2. Там же создаем операцию ‘Выбор’ и связываем с любым свободным параметром ‘Выбор’.
3. В окне «Таблица выбора свойств» операции ‘Выбор’ нажимаем кнопку «Добавить свойства…». В раскрывшемся окне «Добавление свойства параметров» выбираем переключатель «Добавить свойства поиска» и подключаем все остальные свободные (нужны именно свободные) параметры ‘Выбора’.
4. Создаем атрибут, а в нем поле. В окне «Поле» выбираем ‘МестозаполнительБлока’, а там имя нужного параметра ‘Выбора’.
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
Под нестандартными размерами я предпологал, что имеются в виду форматы А2х1,5; А2х2,5 и т.д., которые не трудно внести в список. Но если препологается вообще произвольный формат, то все равно можно выкрутиться.
В "Таблице выбора свойств" есть вторая снизу позиция <Несоответствующий>, которая автоматически выбирается при любом несоответствии 'Входных свойств (Input Properties)', прописаных в таблице. Можно реализовать указаный на рисунке вариант с 'пробелом' в текстовом поле. Только что проверил, при соответствии 'Входных свойств' выводится 'Формат 100х100' или 'Формат 200х100', а при не соотвествии 'пробел'.
В окне «Таблица выбора свойств» разработчиками предусмотрен вариант <Несоответствующий>, который автоматически выбирается при любом несоответствии 'Входным свойтсвам (Input Properties)'. Т.ч вполне можно предусмотреть и нестандартные размеры.
Пробел в тектсовом поле 'Свойства поиска (lookup Properties)' успешно справляется с поставленой задачей.
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
Здравствуйте. У меня такая же задача, как и у автора созданной темы. Я попробовал Ваш метод. Всё вроде бы получилось, но при выборе одного из вариантов формата, атрибут не меняет своего значения, и пребывает всегда в одном состоянии. Пожалуйста, помогите решить проблему.
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
Спасибо большое за ответ! Даже не ожидал, что Вы мне ответите) Столько лет прошло с момента вашего поста.
@kpblc2000 написал (-а):
А если выполнить регенерацию?
Если Вы имеете ввиду обновить вхождение блока, то я пробовал - не помогло.
Не нашли то, что искали? Задайте вопросы в сообществе или поделитесь своими знаниями.