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

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

Номера страниц с индексом, Опять блоки

Ответ
Поиск в этой теме
Непрочитано 10.05.2012, 15:17 #1
Номера страниц с индексом, Опять блоки
gizmo_zx
 
Проектировщик ЭО,ЭМ, ЭОС
 
Нижний Новгород
Регистрация: 18.07.2007
Сообщений: 256

Бодрого дня.
Подсобите с прогой можно на коленке.
Надо пронумеровать блоки "слева-направо". Номера страци в штампах больших и маленьких.
Основная проблемма, если после Большого штампа "ramka" идет маленькая "ramkam" к номеру добавляется индех (2.1 ; 2.2 и тд). Следующая большая рамка продолжает нумерацию. (3 ; 4 и тд.)
Имя атрибута "NUM" .

Вложения
Тип файла: dwg
DWG 2010
Чертеж1.dwg (89.6 Кб, 510 просмотров)

Просмотров: 2828
 
Непрочитано 10.05.2012, 15:31
#2
Кулик Алексей aka kpblc
Moderator

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


А поискать по словам "нумератор"?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.05.2012, 15:33
#3
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


Нумератор он для общих случаев, а для этого частного случая нумератор, конечно можно прикрутить, но совсем быстрой автоматизации не получится.
Alexeipost вне форума  
 
Непрочитано 10.05.2012, 15:33
#4
kha

BIM, С#, AutoCAD, LISP
 
Регистрация: 15.03.2006
Дуброво
Сообщений: 657


http://forum.dwg.ru/showthread.php?t=5307 - не подойдёт?
__________________
"Молодой человек, Вы не представляете всей широты поставленной перед Вами задачи." © Панкратова Г.Е.
kha вне форума  
 
Автор темы   Непрочитано 10.05.2012, 15:56
#5
gizmo_zx

Проектировщик ЭО,ЭМ, ЭОС
 
Регистрация: 18.07.2007
Нижний Новгород
Сообщений: 256
<phrase 1= Отправить сообщение для gizmo_zx с помощью Skype™


Цитата:
Сообщение от kha Посмотреть сообщение
не подойдёт?
Код:
[Выделить все]
 (defun C:NLIST (/ adoc att_list axss blk_list num sort_blk_list blk_obj blk1 space lays lay lock) 
  (vl-load-com) 
  (setq   adoc (vla-get-activedocument 
          (vlax-get-acad-object) 
        ) 
  ) 
  (if (and 
   (= (getvar "tilemode") 0) 
   (= (getvar "cvport") 1) 
      ) 
    (setq acsp (vla-get-paperspace adoc) space (cons 410 (vla-get-name (vla-get-ActiveLayout adoc)))) 
    (setq acsp (vla-get-modelspace adoc) space (cons 410 "Model")) 
  )  
(if (ssget "_X" (list (cons 0 "INSERT") 
         '(-4 . "<OR")       
            (cons 2 "ЛИСТ ЛИСТОВ") ;_Имя блока штампа 
            (cons 2 "Лист") ;_Имя блока штампа 
   '(-4 . "OR>") 
        space ;_Модель или лист 
         (cons 66 1))) 
(progn 
;(setvar "attreq" 1) 
(vla-endundomark adoc) 
(vla-startundomark adoc) 
(initget 4) 
(setq num 1) ;_Начальный номер
(setq lays (vla-get-layers adoc))
(setq axss (vla-get-activeselectionset adoc)) 
(vlax-for a axss 
      (setq blk_list (cons a blk_list))) 
    
(setq sort_blk_list 
 (vl-sort blk_list 
    (function 
      (lambda (e1 e2) 
   (< (car (vlax-get e1 'Insertionpoint)) 
        (car (vlax-get e2 'Insertionpoint))))))) 
(foreach blk_obj sort_blk_list
 (setq lay (vla-item lays (vla-get-layer blk_obj)))
 (if (= (vla-get-lock lay) :vlax-true)
   (progn (vla-put-lock lay :vlax-false) (setq lock (cons lay lock))))
(if (and (vlax-property-available-p blk_obj 'Hasattributes) 
    (vlax-read-enabled-p blk_obj) 
    (vlax-write-enabled-p blk_obj)) 
      (progn 
  (setq att_list (vlax-invoke blk_obj 'Getattributes)) 
  (foreach at att_list 
    (if (eq (strcase (vla-get-tagstring at)) "ЛИСТОВ") 
      (setq blk1 blk_obj));_Запоминаем штамп с атрибутом листов 
    (if (eq (strcase (vla-get-tagstring at)) "ЛИСТ") 
      (progn
	 (setq AAT at)
	 (setq lay (vla-item lays (vla-get-layer at)))
         (if (= (vla-get-lock lay) :vlax-true)
	   (progn (vla-put-lock lay :vlax-false) (setq lock (cons lay lock))))
   (vla-put-textstring at (itoa num)) 
   (vla-update at) 
   (vla-update blk_obj)))))) 
  (setq num (1+ num))) 
(if blk1 
      (progn 
        (setq att_list (vlax-invoke blk1 'Getattributes)) 
     (foreach at att_list 
       (if (eq (vla-get-tagstring at) "ЛИСТОВ") 
         (progn
	 (setq lay (vla-item lays (vla-get-layer at)))
         (if (= (vla-get-lock lay) :vlax-true)
	   (progn (vla-put-lock lay :vlax-false) (setq lock (cons lay lock))))
           (vla-put-textstring at (itoa (1- num))) 
          (vla-update at) 
          (vla-update blk1))))))
(if lock (foreach x lock (vla-put-lock x :vlax-true)))
(vla-clear axss) 
(vla-delete axss) 
(vlax-release-object axss))) 
(vla-regen adoc acactiveviewport) 
(vla-endundomark adoc) 
(prompt (strcat "\nНумерация завершена. Всего "(itoa (1- num)) " элементов в пространстве " (cdr space))) 
(princ) 
) 
(prompt "\nВ командной строке набери NLIST \n")
Только не умеет делать номера для маленьких рамок типа 2.2 ; 2.3
gizmo_zx вне форума  
 
Непрочитано 10.05.2012, 16:14
#6
kha

BIM, С#, AutoCAD, LISP
 
Регистрация: 15.03.2006
Дуброво
Сообщений: 657


Допиливать лисп нужно под твою конкретную задачу
__________________
"Молодой человек, Вы не представляете всей широты поставленной перед Вами задачи." © Панкратова Г.Е.
kha вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Номера страниц с индексом, Опять блоки

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические блоки при копировании перестают быть динамическими. *Voland* Динамические блоки 11 04.07.2012 10:51
ЛИСП слои цвета преобразование Gotch LISP 97 08.11.2011 10:22
опять о нумерации страниц (экземпляров) Димас AutoCAD 3 02.03.2007 02:07
Опять динамические блоки Startrek Динамические блоки 6 25.02.2007 16:03
Номера страниц в прошивке Pave1 AutoCAD 8 03.05.2006 13:03