Почему эти блоки не могут быть переименованы по команде RENAME?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Почему эти блоки не могут быть переименованы по команде RENAME?

Почему эти блоки не могут быть переименованы по команде RENAME?

Ответ
Поиск в этой теме
Непрочитано 17.11.2010, 09:42 #1
Почему эти блоки не могут быть переименованы по команде RENAME?
KAI
 
геологоразведка, строительство
 
Магадан
Регистрация: 14.10.2003
Сообщений: 311

Даны динамические блоки.
Команда RENAME на них не действует (выдает "Invalid old name specified").
Однако функция (snvalid "name") говорит, что имя блока правильное. (при любом значении системной переменной EXTNAMES).

И как следствие, при выборе блоков по функции ssget, эти блоки Acad игнорирует!

Вложения
Тип файла: dwg
DWG 2004
No_renamed_blocks.dwg (57.1 Кб, 384 просмотров)

__________________
Лень - великий двигатель прогресса!
Просмотров: 3261
 
Непрочитано 17.11.2010, 09:50
#2
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Из имен блоков попытайся убрать квадратные скобки. Хотя бы так:
Код:
[Выделить все]
(vla-put-name
  (vla-item
    (vla-get-blocks
      (vla-get-activedocument
        (vlax-get-acad-object)
        ) ;_ end of vla-get-activedocument
      ) ;_ end of vla-get-blocks
    (vla-get-effectivename
      (vlax-ename->vla-object
        (car
          (entsel "\nSelect block : ")
          ) ;_ end of car
        ) ;_ end of vlax-ename->vla-object
      ) ;_ end of vla-get-effectivename
    ) ;_ end of vla-item
  "test1"
  ) ;_ end of vla-put-name
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 17.11.2010, 10:32
#3
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


KAI, Я уже встречал подобные ограничения в командах Автокада именно на имена. Наверное это еще один случай. Мой случай - имена растров. Если в имени есть символ #, то команда _-image их не видит.
Пример: В чертеж втавлен растр #0#1_4.tif
Цитата:
Команда: _-image
Задайте опцию [?/Удалить/Путь/Обновить/вЫгрузить/Вставить] <Вставить>: _d
Какие изображения удалить: #0#1_4
Соответствующие имена изображений не найдены.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.11.2010, 11:55
#4
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Кто сказал, что такие блоки команда RENAME не переименовывает? Нужно знать волшебное слово. Те символы, которые могут восприниматься как шаблонные нужно предварять знаком `. И все прекрасно переименовывается. Аналогично и для функции ssget.
Миниатюры
Нажмите на изображение для увеличения
Название: 17.11.gif
Просмотров: 98
Размер:	11.3 Кб
ID:	48335  
Александр Ривилис вне форума  
 
Непрочитано 17.11.2010, 12:18
#5
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


А что это за знак? У меня на экране точка какая-то.
Profan вне форума  
 
Непрочитано 17.11.2010, 12:30
#6
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Profan Посмотреть сообщение
А что это за знак? У меня на экране точка какая-то.
У меня над клавишей табуляции в нижнем регистре и английской раскладке. А для того, чтобы понять какие символы нужно "квотить" смотрим описание функции (wcmatch) в AutoCAD Help: Developer Documentation (есть в поставке AutoCAD).
Миниатюры
Нажмите на изображение для увеличения
Название: 17.11-1.gif
Просмотров: 62
Размер:	25.2 Кб
ID:	48338  
Александр Ривилис вне форума  
 
Непрочитано 17.11.2010, 12:31
#7
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Profan Посмотреть сообщение
что это за знак? У меня на экране точка какая-то.
Это там где тильда ( ~ ), рядом с цифрой 1
>Александр Ривилис А сработает ли это в варианте командной строки ( _-rename )?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.11.2010, 12:37
#8
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
А сработает ли это в варианте командной строки ( _-rename )?
А попробовать?
В командной строке (во всяком случае в AutoCAD 2008) не срабатывает. Зато срабатывает задание имени слоя без дополнительных `. И прекрасно переименовывает. Во всяком случае в приведенном примере чертежа.
Цитата:
Command: _-rename Enter object type to rename
[Block/Dimstyle/LAyer/LType/Material/Style/Tablestyle/Ucs/VIew/VPort]: b
Enter old block name: ЛЭП выс. напр. `[мет`]

Invalid block name.

Enter old block name: ЛЭП выс. напр. [мет]

Enter new block name: ЛЭП выс. напр.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 18.11.2010, 06:57
#9
KAI

геологоразведка, строительство
 
Регистрация: 14.10.2003
Магадан
Сообщений: 311


Спасибо, коллеги!
Хоть может быть и не до конца, но в сознание что-то вошло.
По крайней мере, ssget начал эти блоки искать.
__________________
Лень - великий двигатель прогресса!
KAI вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Почему эти блоки не могут быть переименованы по команде RENAME?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические блоки при копировании перестают быть динамическими. *Voland* Динамические блоки 11 04.07.2012 10:51
Как удалить эти блоки из пустого файла dextron3 AutoCAD 12 19.06.2008 11:23
Юмор 2007 Огурец Разное 1172 29.12.2007 11:16