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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Можно ли переименовать Layout?

Можно ли переименовать Layout?

Ответ
Поиск в этой теме
Непрочитано 12.09.2005, 14:03 #1
Можно ли переименовать Layout?
===AAA===
 
г. Норильск
Регистрация: 15.08.2005
Сообщений: 616

Всем привет!

Как вы уже догадались, такое простое название темы - "для затравки" :-)

На деле ситуация несколько сложнее. Имеем рисунок, у которого 3 вкладки:

[Модель] [\U+2566шёЄ1] [Лист1]

2-я вкладка указывает на "наследие мрачных времен" - DOS-версий
жизни этого чертежа. У него и с названием слоев не все в
порядке (правда, там все символы - разрешенные), а если
порыть, то и другие проблемы, вероятно, есть.

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

Вопрос:

Можно ли программно что-нибудь сделать с этим Лайоутом?
Переименовать там, или удалить на худой конец...
__________________
Счастливо, Алексей!
Просмотров: 4274
 
Непрочитано 12.09.2005, 14:25
#2
Геннадий aka PG

Машиностроение, Проектирование
 
Регистрация: 15.09.2003
Москва
Сообщений: 1,113
<phrase 1=


Чуть что сразу ДОС винить!
По-моему она тут не причем!

переименовать наверное можно и программно только имя листа надо "облагородить", может через win-коды или ASCII
__________________
С уважением,
Геннадий aka PG
Геннадий aka PG вне форума  
 
Автор темы   Непрочитано 12.09.2005, 14:31
#3
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Привет!

DOS-то сама по себе, конечно, непричём!

"Причем" - кривые руки проектировщиков, неправильно
в свое время "поднявшие" файл из архива :-)

"Облагородить" - да думал, перебрал массу вариантов.
Пока безуспешно.
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 12.09.2005, 14:35 Re: Можно ли переименовать Layout?
#4
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от ===AAA===
Всем привет!

Как вы уже догадались, такое простое название темы - "для затравки" :-)

На деле ситуация несколько сложнее. Имеем рисунок, у которого 3 вкладки:

[Модель] [\U+2566шёЄ1] [Лист1]

2-я вкладка указывает на "наследие мрачных времен" - DOS-версий
жизни этого чертежа. У него и с названием слоев не все в
порядке (правда, там все символы - разрешенные), а если
порыть, то и другие проблемы, вероятно, есть.

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

Вопрос:

Можно ли программно что-нибудь сделать с этим Лайоутом?
Переименовать там, или удалить на худой конец...
Вроде должно пособить горюшку:
Код:
[Выделить все]
(defun renl (lname)
  (vl-load-com)
  (or adoc
      (setq adoc
	     (vla-get-activedocument
	       (vlax-get-acad-object)
	     )
      )
  )
(setq bad_layout (vla-item (vla-get-layouts adoc) lname ))
(vla-put-name bad_layout
  (getstring T "\nНовое имя вкладки:\n"))

(vla-regen adoc acallviewports)
(princ)
  )
;CaLL: (renl "\U+2566шёЄ1")
fixo вне форума  
 
Автор темы   Непрочитано 12.09.2005, 15:17
#5
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Привет!

Команда: (setq bad_layout (vla-item (vla-get-layouts adoc) "\U+2566шёЄ1"))
Ошибка Automation. Key not found

Команда: (setq bad_layout (vla-item (vla-get-layouts adoc) "\\U+2566шёЄ1"))
Ошибка Automation. Key not found

Увы...

Надо бы попробовать подставить заместо ""\U+2566" букву
"Л", а вернее, то, что от нее получится в Win-кодировке,
но пока не получается...
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 12.09.2005, 16:04
#6
AY

webcad.pro
 
Регистрация: 06.01.2005
Московская обл.
Сообщений: 501


А откуда списано такое имя? Если это надпись на вкладке, то может для уяснения того, что под этим наименованием понимает Acad получить програмно все имена вкладок и по результатам думать дальше.
AY вне форума  
 
Непрочитано 12.09.2005, 18:40
#7
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от ===AAA===
Привет!

Команда: (setq bad_layout (vla-item (vla-get-layouts adoc) "\U+2566шёЄ1"))
Ошибка Automation. Key not found

Команда: (setq bad_layout (vla-item (vla-get-layouts adoc) "\\U+2566шёЄ1"))
Ошибка Automation. Key not found

Увы...

Надо бы попробовать подставить заместо ""\U+2566" букву
"Л", а вернее, то, что от нее получится в Win-кодировке,
но пока не получается...
Тогда мы с ним собакой по-грубому:

Код:
[Выделить все]
(defun ren (/ adoc cnt lt)
  (vl-load-com)
  (or adoc
      (setq adoc
	     (vla-get-activedocument
	       (vlax-get-acad-object)
	     )
      )
  )

(setq cnt 1)
(vlax-for lt (vla-get-layouts adoc)
  (if (not (eq (vla-get-name lt) "Model"))
    (progn
    (vl-catch-all-apply (function (lambda ()
    (vla-put-name lt (strcat "LIST" (itoa cnt))))))
    (setq cnt (1+ cnt)))))
  (princ)
  )
;Вызов:(ren)
А потом можно вручную переименовать те
вкладки как тебе надо

Или другой метод:
В предыдущей рутине вместо этих крякозяблов поставь единицу:
Код:
[Выделить все]
(setq bad_layout (vla-item (vla-get-layouts adoc) 1))
fixo вне форума  
 
Автор темы   Непрочитано 15.09.2005, 07:40
#8
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Привет!

Fatty

Увы, не получается... Если хочешь - сброшу на мыло файл *.dwg.

Но сам я уже склоняюсь к мысли, что нужно просто отлавливать
эту ситуацию и выдавать пользователю соответствующее
сообщение - пускай он ручками сам до ума свой файл доводит.
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 16.09.2005, 14:08
#9
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от ===AAA===
Привет!

Fatty

Увы, не получается... Если хочешь - сброшу на мыло файл *.dwg.

Но сам я уже склоняюсь к мысли, что нужно просто отлавливать
эту ситуацию и выдавать пользователю соответствующее
сообщение - пускай он ручками сам до ума свой файл доводит.
Давно бы выложил, быстрей бы все вместе помогли
Впрочем кидай на мыло
fixo вне форума  
 
Автор темы   Непрочитано 16.09.2005, 14:57
#10
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Привет!

Да как-то не хотелось эфир засорять...

Вот он - "коварный тип гражданской наружности" :-)

Только переименуйте DWG на ZIP.
[ATTACH]1126868461.dwg[/ATTACH]
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 16.09.2005, 19:08
#11
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Извини что поздно - у меня отключили электрику
Похоже что эта вкладка была вставлена из пользовательского
Temlate Layout'a с другого компа и поэтому в рисунке она
отображается как несозданная, т.е. в коллекции Layouts
она отсутствует как объект и соответственно к ней ничего
нельзя применить
Проще перетащить весь чертеж в новый Drawing
Или если он тебе дорог как память создавай новые вкладки
а эту кракозябру передвинь в конец
После того как создашь новые вкладки кликни на этой беде
правой кнопкой и выбери Move or Copy

Однако...
fixo вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Можно ли переименовать Layout?