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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Есть ли переменная содержащая количество листов (layouts)?

Есть ли переменная содержащая количество листов (layouts)?

Ответ
Поиск в этой теме
Непрочитано 25.11.2008, 11:27
Есть ли переменная содержащая количество листов (layouts)?
Red Nova
 
ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Торонто
Регистрация: 23.10.2007
Сообщений: 1,980

Нужно полем вставить количество листов содержащихся в файле. Есть ли для этого переменная?
__________________
Блог
Просмотров: 22753
 
Автор темы   Непрочитано 27.11.2008, 10:24
#21
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,980
Отправить сообщение для Red Nova с помощью Skype™


К сожалению не обновляется если количество листов изменить. regen all не помогает, нужно заново открыть файл и заново вставить поле, чтобы количество листов было заново учтено.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 27.11.2008, 10:40
#22
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,254


Да, так и есть, колличество изменится только при следующем открытии файла.
Поле заново вставлять не нужно.

ЗЫ Опять по той же ссыке, можно сделать кнопку, принудительно изменяющую поле с количеством листов.
Код:
[Выделить все]
^C^C(setvar "USERI1" (length(layoutlist)));_updatefield;_all;;
Makswell вне форума  
 
Непрочитано 27.11.2008, 11:08
#23
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,664


В свойствах чертежа можно какое-либо из них (в смысле, свойств - "Ключевые слова" там и т.д.) отвести под количество листов (или новое создать на вкладке "Прочие", если основные свойства уже используются) Ну и в штампах - таблицах использовать field со ссылкой на это свойство.
Конечно, при изменении кол-ва листов придется значение это ручками менять, но всего в одном месте. А может, и программно можно - отследить события удаления-добавления листов...
AlexV вне форума  
 
Непрочитано 29.11.2008, 14:03
#24
ACAD


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
ACAD, а ты ничего не перепутал? Например, с топиком...
Хорошо. Создал отдельную тему.
http://forum.dwg.ru/showthread.php?t=27464

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
chspace тебе в руки
ACAD вне форума  
 
Непрочитано 28.01.2009, 10:53
#25
alexxandr


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


Господа!
Хотелось бы все таки осилить тему счетчика листов. Не ЛИСПами а полями.
Подскажите пожалуйста.

При вставке вышеуказанного выражения Makswellа в текст получается значение - 0
Как с этим бороться?
alexxandr вне форума  
 
Непрочитано 28.01.2009, 12:26
#26
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,254


Без лиспа всё равно никак. В том выражении в поле вставляется значение переменной USERI1, которая заполняется всё равно программно.

PS Всё таки, если не секрет, какоё прикладное значение имеет количество вкладок листа? Подшивку никто не пытался использовать?
Makswell вне форума  
 
Непрочитано 28.01.2009, 13:35
#27
alexxandr


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


Да прикладное значение элементарное - Сделал штамп динамическим блоком - рамка меняет форматы, сбоку выбираешь есть/нет штампик СОГЛАСОВАНО, поля штампа заполняются сами...ну вобщем все дела, И завис на счетчике листов. Хочу чтобы два этих пункта заполнялись сами - чтобы один атрибут считал сколько листов в чертеже, а другой выводил номер листа на котором находится.
И эту рамку вставляю на все листы, чем с себя снимаю постоянные гемор с проверкой - Все ли штампики заполнил? Переделал ли нумерацию в поле - Лист/Листов при перемещении/создании нового листа и т.д
А через подшивку не делаю потому как пока не внедрил еще ее в работу, но уже движусь по этому направлению (на нее у меня грандиозные планы) Да и с расстановкой нумерации листов в каждом отдельно взятом альбоме подшивки мне она врятли поможет... Насколько я понял из своих экспериментов с ней, с ее помощью я смогу посчитать только количество листов во ВСЕЙ подшивке.

А не хочу Лспом потому что тогда каждому из мох коллег придется ставить это лисп, объяснять че к чему...ну и т.д... Помоему было бы проще и функциональнее (со всех сторон) сделать это в виде некого атрибута...
alexxandr вне форума  
 
Непрочитано 28.01.2009, 14:21
#28
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,254


Вопросы:
1. Я так понял весь проект в одном файле. Не тормозит? Хотя нет, лучше так: какой объём файла?

Для примера посмотрел 1-й попавшийся проект у себя: 10-этажный жилой дом, альбом АС - 20 файлов *.dwg общим объемом 11Mb. Если всё это запихнуть в один файл, то можно предположить, что он будет весить не менее 10Mb. Мой комп пока такое вряд ли потянет.

2. Как заполняютя твои штампы? Конкретно, если например меняется шифр проекта или стадия, в скольких местах надо изменить, чтобы поменялось во всём проекте?

С вопросами пока всё, теперь сентенции.
1. Ничто не заменит автоматически создаваемую и в последствии автоматически изменяющуюся в подшивке ведомость листов, которую можно вставить в виде таблицы в рисунок. Даже лисповых аналогов, достойных сего чуда я не встречал.

2. В подшивке все данные штампа, кроме названия и номера листа можно прописать в одном месте.

3. Справедливости ради надо отметить, что в пошивке всё таки нет поля для количества листов. Но ничто не мешает сделать доп. свойство подшивки "кол-во листов" и полем ссылаться на него. Не автоматически, но всё равно достаточно быстро.

4. И ещё справедливовсти ради надо отметить, что многострочные атрибуты в блоке, использующие поля подшивки (как показала статистика - именно подшивки!) иногда глючат. Об этом я уже упоминал в другой теме.
Makswell вне форума  
 
Непрочитано 28.01.2009, 15:07
#29
alexxandr


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


Ну у меня гдето 4-6Mb не тормозит вроде ниче...
Меняются путем ввода данных в Свойствах чертежа. (создал пару пользовательских свойств, ну и соответственно там у меня все данные штампа. Один раз ввел, на всех листах поставилось.)
Да. Поле - Номер листа есть, но опятьже номер листа относительно ВСЕХ листов в подшивке (надо глянуть может возможно сделать номер листа определенной группы)

Ну и взаключение подмогните Нармальным стопроцентов работающим лиспом(я о щетчике) посажу его на кнопочку и буду нажимать...Раз другого выхода нет...
alexxandr вне форума  
 
Непрочитано 28.01.2009, 15:33
#30
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,254


Ну раз всё в одном файле, так сделай пользовательское свойство в _DWGPROPS "кол-во_листов" и в штампе поле со ссылкой на него. Тоже самое получится: "Один раз ввел, на всех листах поставилось".

Насчёт "нармального" лиспа, чем лисп (setvar "USERI1" (length(layoutlist))) вкупе с полем %<\AcVar USERI1>% не устраивает?

PS Мне бы такой комп как у тебя. У меня 4-6Mb всё же подтормаживает. Даже завидно.
Makswell вне форума  
 
Непрочитано 28.01.2009, 17:49
#31
alexxandr


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


Лисп, кстати говоря, при ближайшем рассмотрении меня вполне устроил!
Только растолкуйте мне что за переменная USERI1?
Как я понял используется она для хранения какихто устанавливаемых пользователем значений? Ну типа записной книжки...Я прав? Или я не верно понял?
alexxandr вне форума  
 
Непрочитано 28.01.2009, 20:10
#32
alexxandr


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


Для полноты картины нужно еще чтобы значение ЛИСТ заполнялось

Неужели в автокаде нет казалосьбы элементарной функции - Учета количества листов?!
alexxandr вне форума  
 
Непрочитано 29.01.2009, 08:20
#33
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,254


Цитата:
Сообщение от alexxandr Посмотреть сообщение
Только растолкуйте мне что за переменная USERI1?
Как я понял используется она для хранения какихто устанавливаемых пользователем значений? Ну типа записной книжки...Я прав? Или я не верно понял?
Так и есть. Значение переменной сохраняется в файле рисунка. Подробности в справке.
Цитата:
Сообщение от alexxandr Посмотреть сообщение
Для полноты картины нужно еще чтобы значение ЛИСТ заполнялось
В подшивке это можно реально сделать. И ещё ведомость чертежей создать. Для твоего варианта не вижу ничего лучшего, как проставлять номер листа вручную. Хотя если листы расположены последовательно, то можно в принципе написать лисп.
Цитата:
Сообщение от alexxandr Посмотреть сообщение
Неужели в автокаде нет казалосьбы элементарной функции - Учета количества листов?!
Функция layoutlist возвращает список из имён вкладок листов.
Функция length считает количество элементов в списке.
Makswell вне форума  
 
Непрочитано 29.01.2009, 10:32
#34
alexxandr


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


Конечно последовательно. Тут, я думаю, нужно нечто ссылающиеся на номер листа на котором находится...

Последний раз редактировалось alexxandr, 29.01.2009 в 10:40.
alexxandr вне форума  
 
Непрочитано 29.01.2009, 18:54 Предлагаю вариант решения вопроса вашего топика
#35
compositum


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


Вариант решения есть и при этом довольно таки простой и изящный на мой взгляд - написать код обработчиков событий, скомпилировать это в dll-сборку и подключить к автокаду. Что я и сделал.

Только сразу предупреждаю - писал я это под 2009-й автокад. Тестировал в нем же. У меня всё замечательно работает.
Протестировать на другом акаде/компе нет возможности. Кроме того, на компе должен быть установлен .Net Framework 3.5 SP1 (если он у вас не установлен, то скачать его можно абсолютно бесплатно с официального сайта Майкрософт отсюда

В общем вот выкладываю архив, в нем лежит readme.txt о том как правильно установить (всё до безобразия просто).
Любопытно услышать замечания/пожелания.
__________________
С уважением Андрей.
compositum вне форума  
 
Непрочитано 30.01.2009, 14:52
#36
alexxandr


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


compositum
Чет не получается...
Да я думаю вышепредложенное вполне приемлемое решение. Еще сценарий на выполнения макроса написать и все.
А на счет атрибута - ЛИСТ у тебя никаких идей нет?

Последний раз редактировалось alexxandr, 30.01.2009 в 15:09.
alexxandr вне форума  
 
Непрочитано 30.01.2009, 19:25
#37
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


Переменная "CTAB", если ее вставить в FIELD то с прерменой лайоута она будет менятся. Кроме того если сделать лисп то его тоже можно загнать в FIELD начиная с 2008 акада.
__________________
Сквозь тернии к звездам.... и обратно :yes:
Startrek вне форума  
 
Непрочитано 30.01.2009, 19:35
#38
alexxandr


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


Если я вставлю в поле CTAB то отображатся будет Имя листа на котором нахожусь, а нужен его номер.
alexxandr вне форума  
 
Непрочитано 21.04.2009, 07:23
#39
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,555
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от Startrek Посмотреть сообщение
Кроме того если сделать лисп то его тоже можно загнать в FIELD начиная с 2008 акада.
Лисп загнать в FIELD..................
У меня голова под вечер не варит или это то, о чем я думаю?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 07.07.2010, 16:21
#40
EvilHouse


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


Такая переменная должна быть! Откуда он берёт эти цифры? [IMG]http://s53.***********/i139/1007/83/eadb966464f1.jpg[/IMG]. Вот только как её (переменную) найти...
EvilHouse вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Есть ли переменная содержащая количество листов (layouts)?

Инженерные консультации
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменная содержащая имя листа deConstructor AutoCAD 6 11.11.2007 17:57
Есть ли такая системная переменная? {Smirnoff} Программирование 6 19.08.2005 12:11
Количество листов в layout AleXYZ AutoCAD 6 06.05.2004 17:40