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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Нумерация листов в AutoCad

Нумерация листов в AutoCad

Ответ
Поиск в этой теме
Непрочитано 11.08.2005, 10:16 #1
Нумерация листов в AutoCad
Sergk
 
инженер-проектировщик
 
Регистрация: 10.03.2005
Сообщений: 54

Суть дела в следующем. Есть проект, выполненный в одном файле.
В пространстве листа сформирован весь проект с соответсвующей нумерацией листов. Каким образом можно сделать так, чтобы при вставке или удалении листа нумерация остальных листов менялась автоматически? [sm1402]
Просмотров: 24328
 
Непрочитано 11.08.2005, 11:10
#2
Vook


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


Программу писать....

Но вообще, такие файлы - извращение

Лучше уж воспользоваться Sheet set из автокад 2005
Vook вне форума  
 
Непрочитано 11.08.2005, 11:17
#3
Кулик Алексей aka kpblc
Moderator

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


Или воспользоваться СПДС 2.5 / MechaniCS 4.5 - там это дело уже решено. Правда, не дешево оно обходится - что по деньгам, что по нервам.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.08.2005, 11:20 Нумерация листов в AutoCad
#4
Sergk

инженер-проектировщик
 
Регистрация: 10.03.2005
Сообщений: 54


Насчет извращений ты не прав, удобно работать, когда весь проект в одном файле, все под рукой, всего лишь переключаешься между листами.
Sergk вне форума  
 
Автор темы   Непрочитано 11.08.2005, 11:23 Нумерация листов в AutoCad
#5
Sergk

инженер-проектировщик
 
Регистрация: 10.03.2005
Сообщений: 54


Нельзя ли подробнее про данную функцию в СПДС 2.5? Она у меня установлена.
Sergk вне форума  
 
Непрочитано 11.08.2005, 11:27
#6
Serge_Y

инженер-конструктор
 
Регистрация: 29.05.2004
Минск
Сообщений: 381


Используйте Sheet Set однозначно. И нумерация и общие данные и работающие ссылки и архивация в формате dwf(также с работающими ссылками) - все это Sheet Set
Serge_Y вне форума  
 
Непрочитано 11.08.2005, 11:31
#7
Кулик Алексей aka kpblc
Moderator

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


Насчет извращения - лично я согласен. Sheet set manager не зря ввели.
Ладно, это лирика. В момент вставки формата надо поставить флажок "Автонумерация". Для уже установленных форматок не рекомендую - номера будут проставлены по своей логике, которую без трех поллитр не поймешь (а к тому моменту уже не до када будет). Поэтому можно снести все установленные форматки и по новой их воткнуть.
Единственное НО: заполнение штампов - обрати внимание, что там и как пишется. Тоже бывает, настроение портит
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.08.2005, 11:34 Нумерация листов в AutoCad
#8
Sergk

инженер-проектировщик
 
Регистрация: 10.03.2005
Сообщений: 54


В спдс2.5 нумерация автоматическая листов идет в рамке, а необходимо в правом верхнем углу. Да, нельзя ли подробнее про Sheet Set , к своему стыду, я с этой функцией не знаком
Sergk вне форума  
 
Непрочитано 11.08.2005, 11:53
#9
Кулик Алексей aka kpblc
Moderator

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


Гхм... А с чего это он там? Хотя, в принципе, можно, наверно, отредактировать их шаблоны, но головняка будет...
Про sheet set manager можно прочитать здесь.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.08.2005, 12:01 Нумерация листов в AutoCad
#10
Sergk

инженер-проектировщик
 
Регистрация: 10.03.2005
Сообщений: 54


Что касается нумерации листов, то кроме нумерации в штампах, идет сквозная нумерация альбома в правом верхнем углу, не я это придумал, а гемороя доставляет. За полезную ссылку большое спасибо.
Sergk вне форума  
 
Непрочитано 11.08.2005, 19:04
#11
ZZZ

электрик
 
Регистрация: 11.03.2005
Киев
Сообщений: 157


Я просто проставляю в месте штампа вместо номера блок с атрибутом. Потом просто запускаю прогу и она меняет значение атрибута этого блока на порядковый номер листа (как они следуют на чертеже).
Вот прога:
Код:
[Выделить все]
(defun c:z-layout-set-numder ( / attent)
  (mapcar
    (function
      (lambda (ent)
	(progn
	  (entmod
	    (subst (cons 1
			 (itoa
			   (vla-get-TabOrder
			     (vla-item (vla-get-layouts
					 (vla-get-activedocument
					   (vlax-get-acad-object)
					   ) ;_ vla-get-activedocument
					 ) ;_ vla-get-layouts
				       (cdr (assoc 410 (entget ent)))
				       ) ;_ vla-item
			     ) ;_ vla-get-TabOrder
			   ) ;_ itoa
			 ) ;_ cons
		   (assoc 1 (entget (setq attent (entnext ent))))
		   (entget attent)
		   ) ;_ subst
	    ) ;_ entmod
	  (entupd ent)
	  ) ;_ progn
	) ;_ lambda
      ) ;_ function
    (mapcar 'cadr
	    (ssnamex
	      (ssget "_x" '((0 . "INSERT") (2 . "LAYOUT_NUMBER")))
	      ) ;_ ssnamex
	    ) ;_ mapcar
    ) ;_ mapcar
  (princ)
  ) ;_ defun
Сразу говорю с vla функциями я не сильно дружу.
Код однозначно можно оптимизировать и подстроить под себя.
[ATTACH]1123772657.dwg[/ATTACH]
__________________
Когда под рукой нет ничего кроме молотка - всё вокруг кажется гвоздями...
Выбор правильного инструмента - залог успеха в любом деле.
ZZZ вне форума  
 
Непрочитано 12.08.2005, 09:12
#12
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Цитата:
Сразу говорю с vla функциями я не сильно дружу.
А напрасно! Жить надо дружно, ибо оно бывает полезно. Здри лиспу
Код:
[Выделить все]
(defun C:LotToDwNo ( / at nm_bk)
  (setq	adoc (vla-get-activedocument (vlax-get-acad-object))
	ps (vla-get-paperspace adoc)
	bks (vla-get-blocks adoc)
      	l_nm (vla-get-name (vla-get-activelayout adoc))
  )
  (if (vla-item bks "*ШТАМП*");Свой Штамп
    (progn
      (vlax-for b ps
	(if (and (= (vla-get-objectname b) "AcDbBlockReference")
		 (= (vla-get-name b) "*ШТАМП*")) (setq nm_bk b)));vlax-for
    	(foreach at (vlax-safearray->list (vlax-variant-value (vla-getattributes nm_bk)))
	 (cond ((= (vla-get-Tagstring nm_bk) "*ЛИСТ*") (vla-put-Textstring at l_nm))
	      ((= (vla-get-Tagstring nm_bk) "*ЛИСТОВ*") (vla-put-Textstring (1- (vla-get-count (vla-get-layouts adoc))))));cond
      );foreach
    );progn
);foreach
    );progn
    (progn; Чужой Штамп
      (prompt "\nВыберите атрибут для нумерации листов: ")
      (setq at (vlax-ename->vla-object (car (nentsel))))
      (vla-put-Textstring at l_nm)
    );progn
  );if
);end
Если штамп свой, то программа проставляет номер листа и кол-во листов. Если чужой, т.е. имя блока не "*ШТАМП*", то нуиеруемый атрибут указывается вручную. Пользуйтесь на здоровье и сугубо и трегубо благодарите меня за то, что я есть.
Лентяй вне форума  
 
Автор темы   Непрочитано 12.08.2005, 10:38 Нумерация листов в AutoCad
#13
Sergk

инженер-проектировщик
 
Регистрация: 10.03.2005
Сообщений: 54


ZZZ, огромная благодарность, при запуске кода вылетает окно вставки блока, но это единственное побочное явление, а все остальное делает отменно. Лентяю тоже спасибо, но мне требовалась
нумерация в углу страницы, штамп у меня сделан в виде блока с атрибутами- там и так все нормально заполняется.
Sergk вне форума  
 
Непрочитано 12.08.2005, 14:44
#14
ZZZ

электрик
 
Регистрация: 11.03.2005
Киев
Сообщений: 157


>Sergk
Цитата:
при запуске кода вылетает окно вставки блока
Можно поподробнее.
Там только при вставке блока запрашивается значение атрибута, но это лечится легко, просто выставить в свойстве атрибута Preset на yes. А прога вызывать окно не должна, и у меня не вызывала ни разу.

У меня ищё вопросик к пользователям СПДС (у меня СПДС нет).
Там штамп вставлен блоком с атрибутами?
Усли да, то для универсализма, хотелось бы узнать имя блока и теги атрибутов лист и листов.

>Лентяй
У Вас прога меняет значение только в текущем листе. Но это легко изменить. За пример использования vla спасибо. Всё понятно. Получается лингвическая ситуация - "понимать понимаю, а сказать не могу". Это всё дело вкуса, на чём програмить.
Я считаю, что главное не способ реализации программы, а заложеная в прогу идея.
Может Вы знаете как на vla определить выбранные layout, в смысле кликаешь с зажатым ctrl.

Также у меня есть идейка проставлять номера листов и в начале имени листа (вкладки), что при публицировании их расположит так как надо и видно будет на вкладке какой лист.
__________________
Когда под рукой нет ничего кроме молотка - всё вокруг кажется гвоздями...
Выбор правильного инструмента - залог успеха в любом деле.
ZZZ вне форума  
 
Автор темы   Непрочитано 12.08.2005, 15:24 Нумерация листов в AutoCad
#15
Sergk

инженер-проектировщик
 
Регистрация: 10.03.2005
Сообщений: 54


Штампами от спдс мы не пользуемся, сделали свои, если нужны, оставь
мыло, вышлю. А причин вылета окна может быть куча, у меня на каде чего только не навешано, временами довески друг с другом не ладят.
Sergk вне форума  
 
Непрочитано 12.08.2005, 16:01
#16
ZZZ

электрик
 
Регистрация: 11.03.2005
Киев
Сообщений: 157


>Sergk
У Вас наверное какаято довеска использует реактор на редактирование блоков, а прога меняет значение атрибута.
Мыло моё есть в профиле, но мне самодельные штампы не нужны, так как у самого свой самодельный штамп.
Успехов.
__________________
Когда под рукой нет ничего кроме молотка - всё вокруг кажется гвоздями...
Выбор правильного инструмента - залог успеха в любом деле.
ZZZ вне форума  
 
Непрочитано 13.08.2005, 08:46
#17
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Цитата:
но мне требовалась нумерация в углу страницы, штамп у меня сделан в виде блока с атрибутами- там и так все нормально заполняется.
А вот здесь - подробнее. В каком углу? Если в левом верхнем и текст ввкрх ногами, типа как номер чертежа по ЕСКД, то это одно, а если чего-то другое - то это совсем другое дело. Так что грузите детали, куда вам всунуть имя/номер листа, а я уже соот-но ихменю свой лисп.
Лентяй вне форума  
 
Непрочитано 07.04.2019, 22:55
1 | #18
ghetuvova


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


Наверное уже все решили эту задачу, но...
Похоже что не конкретно тут указано...
Я решил это следующим, простым относительно способом:

Находим файл, на своём ПК,под названием- acad"год"doc.lsp...(в моём случае 2014) при установленном АКАД, или "accaddoc.lsp"(наверное английская версия), открываем с помощью Блокнота и в конце всего, задаём(записываем) переменную- "(setvar "useri1" (length (layoutlist)))".
Сохраняем... теперь у нас есть информация о полном количестве листов в зарезервированной переменной Useri1
(Думаю легче дописать строку в одном системном файле АКАД всем ПК в локальной сети проектирующей организации, чем каждому устанавливать плагины, или отдельные программы ради нумерации)
Это позволяет нам обращаться к переменной с общим количеством листов через заранее заданную LISP переменную, (системную переменную...)

После этого, при загрузки любого документа, у нас уже есть переменная с общим количеством листов.
Далее... достаточно обратиться к переменной Useri1 через поле c помощью Diesel Expression:
"$(getvar,useri1)"- чтоб иметь общее количество листов через свойство "поле" в числовом выражении.

Для текущего номера листа в зависимости от заданного названия по умолчанию "Лист1","Лист2","Лист3"... в поле, в части для вставленного поля- Diesel Expression пишем следующее:
"$(substr,$(getvar,ctab),5)"

Этот метод работает при вставки полей...

Удачи...

Инфо отсюда- https://www.cadtutor.net/forum/topic...tic-numbering/
ghetuvova вне форума  
 
Непрочитано 20.08.2021, 16:57
#19
qserg


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


Цитата:
Сообщение от ghetuvova Посмотреть сообщение
Для текущего номера листа в зависимости от заданного названия по умолчанию "Лист1","Лист2","Лист3"... в поле, в части для вставленного поля- Diesel Expression пишем следующее:
"$(substr,$(getvar,ctab),5)"
При 5 в конце формулы не выводятся четыре позиции с начала текста имени листа (при имени "Лист2" возвращает "2") при отсутствии символов возвращает "----", при 1 возвращает как есть!

Последний раз редактировалось qserg, 20.08.2021 в 17:10.
qserg вне форума  
 
Непрочитано 14.12.2021, 17:21
#20
west-1988


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


Цитата:
Сообщение от qserg Посмотреть сообщение
При 5 в конце формулы не выводятся четыре позиции с начала текста имени листа (при имени "Лист2" возвращает "2") при отсутствии символов возвращает "----", при 1 возвращает как есть!
А чтоб брать первые 2а символа, что надо поправить
west-1988 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Нумерация листов в AutoCad

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

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