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

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

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

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

Нужно полем вставить количество листов содержащихся в файле. Есть ли для этого переменная?
__________________
Блог
Просмотров: 14588
 
Непрочитано 31.05.2013, 21:43
#41
BIzzzzzzON


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


Здравствуйте.
Тоже интересно, как можно с помощью поля отобразить "номер листа" и "количество листов". Может, появилась или стала известна системная переменная, или у кого-то есть наработки? Желательно, без лиспа, точнее, чтобы не вносить изменения в файлы автокада и без внешних подключаемых лисп-файлов. Тут писали про возможность вставки лиспа в филд, как это реализовать?
Спасибо.
BIzzzzzzON вне форума  
 
Непрочитано 01.06.2013, 17:10
#42
Walkmax


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


Тут смотрели?
Walkmax вне форума  
 
Непрочитано 02.06.2013, 10:23
#43
BIzzzzzzON


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


Walkmax, спасибо.
Предложенный вами вариант очень хорош по функционалу, особенно благодаря автоматическому обновлению, но он опять требует внесения изменений в файлы автокада или в реестр, но мне это не совсем удобно, так как, если правильно понимаю, открытый на другом компе автокадовский файл уже не будет обладать корректно работающим счетчиком. Всё же надеялся, что есть что-то встроенное и доступное по умолчанию хотя бы последним версиям автокада.
BIzzzzzzON вне форума  
 
Непрочитано 08.02.2016, 12:11 Как достать эту переменную?
#44
Awave

Инженер-проектировщик
 
Регистрация: 12.10.2010
Москва
Сообщений: 41
<phrase 1=


Переменная считающая листы есть, как её получить для использования. Как получить её адрес?
Миниатюры
Нажмите на изображение для увеличения
Название: листов в группе.png
Просмотров: 276
Размер:	31.2 Кб
ID:	164923  
Awave вне форума  
 
Непрочитано 08.02.2016, 12:36
#45
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,855


Залезть в подшивку программно, посчитать листы в перечислении. С чего вы решили - что это переменная?
Сергей812 на форуме  
 
Непрочитано 08.02.2016, 12:53
#46
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 696


попадалось такое решение, кажется от VVA и wetr:
1. (setvar "USERI1" (length(layoutlist))) - системной переменной user1 задается значение (length(layoutlist))
2. В поле прописывается dieselexpression $(-,$(getvar,USERI1),0)
http://forum.dwg.ru/showthread.php?t=14548 - здесь подробнее всё описано

Последний раз редактировалось kacugu, 08.02.2016 в 13:05. Причина: неправильно понял вопрос
kacugu вне форума  
 
Непрочитано 03.07.2019, 10:46
#47
allar8


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


Цитата:
Сообщение от Walkmax Посмотреть сообщение
Тут смотрели?
Интересно, но для меня например было бы достаточно просто чтоб обновлялось кол-во листов в файле в этом поле %<\AcVar USERI1>%
Как я понял стандартная переменная в акад отсутствует и поэтому это можно только реализовать на той машине где произведены необходимые манипуляции, написан код, подгружена библиотека и т.п.
Ну раз уж так то для себя сделал след образом - стандартную команду регенерировать все ВСЕРЕГЕН превратил в макросик, т.е. дополнил ее всем уже известной тут строчкой
^C^C(setvar "USERI1" (length(layoutlist)));_updatefield;_all;;
В результате у меня на кнопке ВСЕРЕГЕН
прописано так ^C^C_regenall ^C^C(setvar "USERI1" (length(layoutlist)));_updatefield;_all;;
Т.е. что получили
При открытии файла конечно не обновляется это поле, но обновляется при выполнении команды регенерировать все
Но может, кто нить подскажет как без подгрузки библиотек допилить такую простую схему чтоб и при открытии файла обновлялось?
allar8 вне форума  
 
Непрочитано 03.07.2019, 10:51
1 | #48
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,699


allar8, fieldeval поменяй на 31 (подробнее в справке)
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.07.2019, 10:53
#49
allar8


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
allar8, fieldeval поменяй на 31 (подробнее в справке)
Да в 31 и стоит у меня. Да и это не совсем, то.
У меня не речь не про обновление полей, а про обновление конкретного поля, под обновлением которого подразумевается загон в переменную USERI1 кол-ва листов в документе и отображение значение этой переменной в поле
Т.е. по сути все как бы просто при открытии файла мне надо чтоб запустился макрос на моей кнопке
^C^C_regenall ^C^C(setvar "USERI1" (length(layoutlist)));_updatefield;_all;;

Последний раз редактировалось allar8, 03.07.2019 в 11:11.
allar8 вне форума  
 
Непрочитано 03.07.2019, 11:21
#50
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,699


Поменяй acaddoc.lsp или acad.mnl
Код:
[Выделить все]
(setvar "useri1" (length (layoutlist)))
(vl-cmdf "_.updatefield" "_all" "")
Код не проверял
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.07.2019, 12:08
#51
allar8


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Поменяй acaddoc.lsp или acad.mnl
acaddoc.lsp не нашел
а в acad.mnl вот это
(setvar "useri1" (length (layoutlist)))
(vl-cmdf "_.updatefield" "_all" "")
вставить просто в конец файла?
allar8 вне форума  
 
Непрочитано 03.07.2019, 12:31
1 | #52
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,699


Да, только проверь корректность кода. Может быть, будет иметь смысл заменить на
Код:
[Выделить все]
(vl-cmdf "_.updatefield _all  ")
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.07.2019, 12:39
#53
allar8


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Да, только проверь корректность кода. Может быть, будет иметь смысл заменить на
Код:
[Выделить все]
(vl-cmdf "_.updatefield _all  ")
Спасибо, ща попробую

----- добавлено через ~16 мин. -----
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
(setvar "useri1" (length (layoutlist)))
(vl-cmdf "_.updatefield" "_all" "")
Работает. Спасибо!

Сведем в одно сообщение рабочее решение теперь.

Создаем поле %<\AcVar USERI1>%
Стандартную команду регенерировать все ВСЕРЕГЕН превращаем в макросик, т.е. дополняем ее всем уже известной тут строчкой
^C^C(setvar "USERI1" (length(layoutlist)));_updatefield;_all;;
В результате получаем кнопку ВСЕРЕГЕН с макросом ^C^C_regenall ^C^C(setvar "USERI1" (length(layoutlist)));_updatefield;_all;;
Т.е. что получили
при выполнении регенерировать все ВСЕРЕГЕН - это поле (%<\AcVar USERI1>%) обновляется, но при открытии файла обновления не происходит.
А с помощью Кулика Алексея удалось и при открытии файла выполнить обновление этого поля см. #50
У меня из #50 зарабатало с файлом acad.mnl
В конце файла acad.mnl прописал, рекомендуемые Куликом Алексеем строчки:

(setvar "useri1" (length (layoutlist)))
(vl-cmdf "_.updatefield" "_all" "")

Мелоч казалось бы - обновляемое поле с кол-вом лайотов, а приятно)))

Последний раз редактировалось allar8, 03.07.2019 в 13:26.
allar8 вне форума  
 
Непрочитано 19.08.2019, 09:04
#54
allar8


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


Вопрос всем Гуру программирования. Позскажите плиз, направьте так скать в нужное русло. Нужно создать поле со значением с зависимым от кол-ва лайотов в чертеже.
Т.е. конкретно нуно чтоб поле выдавало значение "0" если число кол-ва лайотов двузначное, т.е. больше 9.
и значение "00" если число кол-ва лайотов однозначное, т.е. меньше 10
Нужно еното мне чтоб в шифре у меня автоматически менялась концовка шифра типа - 001, 002... 010,011 и.т.д.
где 1,2...10 число лайотов - с этим нет проблем. Проблема с автовыбором кол-ва нулей перед значение кол-ва листов
Зачем мне это не спрашивайте - такие правила оформления в нашей конторе. В шифре документа такое должно быть окончание.
И вообще такое реально сделать? Если да - подскажите с помощью каких средств и как
Заранее благодарен.
allar8 вне форума  
 
Непрочитано 19.08.2019, 09:13
#55
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,855


Ничего не понял, но в .Net это решается так, например)

----- добавлено через ~31 мин. -----
А вообще то ГОСТ Р 21.1101 еще не отменили:
Цитата:
4.2.5 Допускается оформление основного комплекта рабочих чертежей отдельными документами с присвоением им обозначения, состоящего из базового обозначения, марки основного комплекта, и добавлением через точку порядкового номера документа арабскими цифрами.
нигде не говорится, что должны быть лидирующие нули) Это введено в стандарт предприятия или личный маразм нормоконтроля?)
Сергей812 на форуме  
 
Непрочитано 19.08.2019, 10:03
#56
allar8


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
нигде не говорится, что должны быть лидирующие нули) Это введено в стандарт предприятия или личный маразм нормоконтроля?)
Я же говорил - не спрашивайте зачем))). Спорить с местными правилами я не вправе. Приходится подстраиваться. Тем более руководство и НК в другом городе). Я просто проектировщик а не законадатель мод в конторе. Подскажите лучше по теме вопроса, чем рассуждать о том что по Гост или нет)))
allar8 вне форума  
 
Непрочитано 19.08.2019, 10:13
#57
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,855


Так уже подсказал
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Ничего не понял, но в .Net это решается так, например)
С такими загонами руководства просто заполнял программно бы блоки основных надписей без всяких полей. А программно можно любой маразм реализовать, если он укладывается в алгоритмизацию)

Можно еще попробовать DIESEL, но с ним толком и не работал.
Сергей812 на форуме  
 
Непрочитано 19.08.2019, 10:15
#58
allar8


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Можно еще попробовать DIESEL, но с ним толком и не работал.
как раз на него и обращал внимание - но блин не обновляет(

----- добавлено через ~1 мин. -----
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
С такими загонами руководства просто заполнял программно бы блоки основных надписей без всяких полей. А программно можно любой маразм реализовать, если он укладывается в алгоритмизацию)
Я не один работаю - всех тоже не способен переучить - есть особенности. В обчем мине нуно так. Про маразм не спорю. Есть у всех это НК). Да ладно бы конторка была маленькая - можно поспорил бы еще с НК). Компания всероссийская. Я в филиальчике работаю). Все закреплено на уровне местных нормативных документов)

Последний раз редактировалось allar8, 19.08.2019 в 10:22.
allar8 вне форума  
 
Непрочитано 19.08.2019, 10:21
1 | #59
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,855


Ну тут по тем же граблям бегали)
Сергей812 на форуме  
 
Непрочитано 19.08.2019, 10:24
#60
allar8


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Ну тут по тем же граблям бегали)
погляжу) спасибо! Грабли это наша тема)
allar8 вне форума  
Ответ
Вернуться   Форум 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