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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Макрос для создания лайаута

Макрос для создания лайаута

Ответ
Поиск в этой теме
Непрочитано 24.04.2008, 15:23
Макрос для создания лайаута
dextron3
 
проектировшик
 
СССР
Регистрация: 01.01.2007
Сообщений: 5,149

Задался вопросом, как будет выглядеть макрос на кнопку,
чтобы он проделовал следующие действия:

Алгоритм:

1. Выбор самого последнего лайаута
2. Копирование его в конец списка
3. К номеру выбранного лайаута прибавить +1
4. Остаться на полученном лайауте.

Буду ждать полезных советов,
и можно ли это сделать макросом?

Миниатюры
Нажмите на изображение для увеличения
Название: Snap2.jpg
Просмотров: 417
Размер:	45.3 Кб
ID:	5755  Нажмите на изображение для увеличения
Название: Snap3.jpg
Просмотров: 336
Размер:	22.8 Кб
ID:	5756  Нажмите на изображение для увеличения
Название: Snap4.jpg
Просмотров: 281
Размер:	18.7 Кб
ID:	5757  

__________________
инженер проектировшик с опттом программа авто гад образование высшие
Просмотров: 8422
 
Автор темы   Непрочитано 30.04.2008, 15:42
#21
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA, лисп из поста #5 не кооректно себя ведет, например,
когда на 9 создаешь 10, 10 появляется не в конце, а перед 9,
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 30.04.2008, 16:36
#22
VVA

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


Так ведет себя команда _LAYOUT. Пришлось прибегнуть к помощи vla- методов. По другому не знаю как.
Код:
[Выделить все]
(defun C:test ( / layout_names layout_length old_layout_name new_layout_name)
  (vl-load-com)
  (setq layout_names (LAYOUTLIST))
  (setq layout_length (apply 'max (mapcar 'atoi layout_names)))
  (setq old_layout_name (itoa layout_length))
  (if (member old_layout_name layout_names)
    (progn
      (setq new_layout_name (itoa (1+ layout_length)))
      (command "_.LAYOUT" "_C" old_layout_name new_layout_name)
      (vla-put-TabOrder (vla-item(vla-get-layouts(vla-get-activedocument
      (vlax-get-acad-object))) new_layout_name)(length (layoutlist)))
      (setvar "CTAB" new_layout_name)
    )
    (alert "имена листов не такие, как задумал dextron3")
  )
  (princ)
)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 30.04.2008 в 18:29. Причина: Новая редакция
VVA вне форума  
 
Автор темы   Непрочитано 30.04.2008, 18:12
#23
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Command: LAYNEXT
_.LAYOUT
Enter layout option [Copy/Delete/New/Template/Rename/SAveas/Set/?] <set>: _C
Enter name of layout to copy <9>: 9
Enter layout name for copy <9 (2)>: 10 Layout "9" copied to "10".

Command: ; error: Automation Error. Invalid value for property TabOrder

работает также как и предыдущий только еще в командной строке ругается
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 79
Размер:	2.1 Кб
ID:	5975  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 30.04.2008, 18:29
#24
VVA

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


Изменил #22
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 30.04.2008, 19:49
#25
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA, не до конца, при порядке листов 11, 12, 9 выдает лист 13,
хотя по аналогии дожен выдавать 10 .... так как активным является 9
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 02.05.2008, 09:50
#26
VVA

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


Нет не должен. Для следующего номера берется лист с максимальным номером и увеличивается на 1. А если текущим является лист 9, а лист 10 уже существует.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.05.2008, 13:33
#27
VVA

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


Выложил в "Готовых программах" команду LAYINC - копирование листа с автоувеличеним его номера. Причем название листа может быть цифровым (лист "9" скопируется в "10"), буквенным (лист "Лист А" скопируется в "Лист Б") или буквенно-цифровым (лист "Кж-1.1" скопируется в "Кж-1.2"). Подробности и иллюстрации по ссылке http://dwg.ru/f/showthread.php?p=238638
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 02.05.2008, 17:14
#28
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA, откоментировал в посланном месте
если честно я не понимаю людей которые пишут Кж-1, Кж-2, Ар-1, Ар-2, ведь если ты архитектор то естественно у тебя будут только АР, если ты конструктор-КЖ, все вроде бы понятно, а буквы КЖ, и АР дают меньще места на экране для расположения большего числа лайаутов, ...

Но если ты Ар и КЖ делаешь одновременно то Делай марку АС, но не надо писать Ас-1, Ас-2,.....

Если я что то не так понял объясните мне...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Макрос для создания лайаута

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закладные лифтовых приямков винсент75 Поиск литературы, чертежей, моделей и прочих материалов 13 11.08.2009 10:16
Москва не сразу строится Perezz!! Разное 20 21.04.2009 23:52
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46
Макрос типа клавиш Cntr-Tab! Нужно для AutoHOOK! Колян Программирование 5 31.10.2006 13:06
Определение нагрузок для нестандартных конструкций. NIVa Конструкции зданий и сооружений 2 06.08.2005 21:42