1. ВНИМАНИЕ! В течении пары дней +- будет переезд форума на более защищённый сервер. Возможны перебои в работе.
    Dismiss Notice

Редактирование атрибутов блоков

Discussion in 'Autocad' started by victori*a, Sep 17, 2017.

  1. victori*a

    victori*a Форумчанин

    Добрый день. Подскажите, пожалуйста, как можно массово поменять высоту текста и ширину текста атрибута блока. В чертеже существует большое количество разных блоков с атрибутами. Необходимо поменять характеристики атрибутов массово, только чтобы атрибуты не сдвигались со своих мест.
     
  2. sergtor

    sergtor Форумчанин

  3. victori*a

    victori*a Форумчанин

    Спасибо большое. Но лисп не решает мою проблему. Мне нужно, чтобы менялась степень растяжения, помимо высоты текста.
     
  4. Здравствуйте, если я правильно понял ваш вопрос, то вам нужно зайти в редактор блока ( через контекстное меню "редактор блоков"), выбрать нужный атрибут и в его общих свойствах поменять высоту и коффициент сжатия. Затем выйти из редактора блока и сохранить изменения ;)
     
  5. sergtor

    sergtor Форумчанин

     

    Attached Files:

  6. victori*a

    victori*a Форумчанин

    Так пробовала, не получается. Внутри блока сохраняется вновь выставленный коэффициент сжатия, а при выходе из блока ничего не изменяется.
     
  7. sergtor

    sergtor Форумчанин

    Зачем Вам входить редактор блоков? См. GIF
     

    Attached Files:

    • 003.gif
      003.gif
      File size:
      610.4 KB
      Views:
      419
  8. victori*a, файл с нужным блоком в студию ;) Так будет быстрее решить ваш вопрос. Ну или не быстрее, но явно проще ;)
    --- Сообщения объединены, Sep 20, 2017, Оригинальное время сообщения: Sep 20, 2017 ---
    sergtor, А лисп полезный, спасибо! :)
     
  9. rino_black

    rino_black Форумчанин

    а можно еще добавить функцию изменения атрибута на заданное число?(
     
  10. АлексЮстасу

    АлексЮстасу Форумчанин

    Чтобы состояние атрибута изменялось после редактирования, необходимо делать _ATTSYNC (АТРОБНОВИТЬ).
    Заменить значение атрибута на число? Или заменить атрибут на текст с содержимым из числа?
    Значения попробуйте заменять _FIND (НАЙТИ).
     
  11. sergtor

    sergtor Форумчанин

    Да, и поднастроить немного опции выбора (скрин)
     

    Attached Files:

  12. gpsman

    gpsman Форумчанин

    Со стилем текста пробовали поэксперементировать?
     
  13. rino_black

    rino_black Форумчанин

    я имею ввиду, что есть к примеру блок с атрибутом, как изменить текст в атрибуте у нескольких блоков к примеру на 1,15
     

    Attached Files:

  14. sergtor

    sergtor Форумчанин

    Опять не понятна Ваша задача. Изменить значение атрибутов, чтобы в итоге у всех блоков была одна и та же величина, или поднять(опустить) из на определенное значение.
     
  15. rino_black

    rino_black Форумчанин

    поднять на определенное значение
     
  16. АлексЮстасу

    АлексЮстасу Форумчанин

    Выбрать пикеты, вызвать _MOVE (ПЕРЕНЕСТИ), вбить @0,0,1.15. "@" означает приращение, т.е. на сколько.
    Сделайте в атрибуте поле, считывающее Z блока. Изменится Z - изменится и значение атрибута. После регенерации - _REGEN (РЕГЕН), _REGENALL (ВСЕРЕГЕН). Сами значения в таких атрибутах руками трогать не нужно - утратится связь с Z.
     

    Attached Files:

    sergtor likes this.
  17. sergtor

    sergtor Форумчанин

    А может после этого этапа проще выполнить экспорт координат блоков в текстовый файл, а затем импортировать блоки с атрибутами. Для этого, я думаю, идеально подойдет Geo_import/export.
     
  18. АлексЮстасу

    АлексЮстасу Форумчанин

    Можно просто заменить блоки на блоки с полем, считывающим Z. Например, с помощью BLOCKREPLACE из Express.
     
  19. sergtor

    sergtor Форумчанин

    После этого этапа применить этот лисп: (ZBLATT)
    .Предварительно подредактировать свои значения имени блока и тэга.
    Code:
    (defun C:ZATTBL ( / blname tagname round  objSet *error*)
    (vl-load-com)
    (defun *error*(msg)(princ msg)
    (vla-EndUndoMark (vla-get-activedocument (vlax-get-acad-object)))(princ))
    (vla-StartUndoMark (vla-get-activedocument (vlax-get-acad-object)))
    (vla-StartUndoMark (vla-get-activedocument (vlax-get-acad-object))) 
    (setq blname  "PICKET"  ;_Block name
          tagname "OTMETKA" ;_Tag Z value
          round   3         ;_ Round Z value to 3 digit
     
  20. rino_black

    rino_black Форумчанин

    а можно только текст изменить на число?
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice