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

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

Автозаполнение ведомости рабочих чертежей

Ответ
Поиск в этой теме
Непрочитано 29.10.2007, 09:15 2 |
Автозаполнение ведомости рабочих чертежей
wetr
 
инженер
 
Владивосток
Регистрация: 09.08.2006
Сообщений: 1,535

Те кто видел КОМПАС меня поймут: хочу чтобы ведомость рабочих четрежей заполнялась автоматически. Пользую поля - ссылки на объекты. В моем случае ссылаюсь на блок(рамка) с аттрибутами "№листа" и "наименование листа". Вроде бы все отлично. Убивает трудоемкость создания данной таблицы. Т.е. как я делаю(может не правильно?):
создаем мтекст-вставить поле-объект-выбрать- а дальше проблемка - рамка то находится в лайоутах. А перелистывать лайоуты в режиме выбора нельзя... Приходится сначала открывать лайоут, затем копировать текст вида
"%<\AcObjProp Object(%<\_ObjId 2130566400>%).TextString>%"
в отдельный файл, затем вставлять в нужное мне поле. Есть другие варианты узнать ObjID? Или другие варианты создать эту таблицу?
И еще: в каких случаях меняется этот ID? А то я боюсь теперь эти блоки редактировать - все собьется нафиг
*******************************************************************************************************************
...Прошел год
VVA сделал отличную программу по созданию Ведомости рабочих чертежей (Компас отдыхает)

ВОЗМОЖНОСТИ:
- Ведомость создается в виде таблицы с полями.
- Обязательно использование блока с атрибутами "ЛИСТ" и "НАИМЕНОВАНИЕ.ЧЕРТЕЖА".
- Таблицы вставляется в слое _Таблица. Если слоя нет - он создается. Настройки слоя можно поменять в ЛИСПе
- Таблицы вставляются в Стиле таблиц "Ведомость чертежей" оформленной по ГОСТу. Настройки стиля см. в ЛИСПе
- Запускать командой VRC в командной строке или сделать себе кнопку


ОСОБЕННОСТИ:
- В таблице и блоке используется шрифт "MIPGOST.SHX". Скачать можно здесь. Не нравится? Открывай код и меняй под себя.
- В блок-рамке используется многострочный атрибут, который работает только в AutoCAD 2008 и старше.
Если у вас более ранняя версия - программа будет работать, но атрибут будет однострочный.
- При заполнении многострочного атрибута "НАИМЕНОВАНИЕ.ЛИСТА" не используйте ENTER. Текст перескочит на новую строку сам.(Это актуально если лисп вставляет поля. Варианты лиспа VRCTS и VRCTN отрабатывают без проблем)

ПРО БЛОК:
- Рамка пестрит полями - название проекта заполнять на титульном листе, в рамке обновится
- ШИФР проекта заполнять на титульном листе
- Формат листа - ссылка на lookup внутри блока, обновляется.
- Для того, чтобы количество листов прописывалось автоматом, я сделал себе макрос на кнопку, запускающую VRC
Цитата:
^C^C(setvar "USERI1" (length(layoutlist)));_updatefield;all;;vrc
Внимание! Если у вас используется переменная USERI1, могут возьникнуть проблемы!
**********************

Для тех, кому не нравиться что программа создает стили и слои, вариант от VVA и Red Nova

************************************
***Обновление от 04.02.2008. **********
************************************
Добавлена возможность заполнять таблицу полями, текстом, выбирать или нет листы. Подробности в начале лиспа.
Команды:
VRC - таблица с полями, все листы
VRCTS - таблица с Tекстом, выбор (S) листов
VRCTN - таблица с Tекстом, нет (N) выбора листов
VRCFS - таблица с полями (F), выбор (S) листов

************************************
***Обновление от 06.09.2010. ***********
***********************************
Добавлена возможность выбора стиля таблиц
Версия для x64 : http://forum.dwg.ru/showpost.php?p=349807&postcount=159

Вложения
Тип файла: rar mipgost.rar (6.1 Кб, 1226 просмотров)
Тип файла: dwg
DWG 2004
Пример Ведомость чертежей.dwg (110.4 Кб, 34844 просмотров)
Тип файла: lsp vrc_VVA.lsp (34.6 Кб, 1109 просмотров)

__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)

Последний раз редактировалось Кулик Алексей aka kpblc, 19.04.2014 в 22:22.
Просмотров: 127423
 
Непрочитано 05.06.2008, 22:10
#41
Red Nova

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


VVA,
Может до отпуска как нибудь все-же найдешь время
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 06.06.2008, 02:57
#42
wetr

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


Зря ты таблицы не любишь - хорошая вещь!
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 06.06.2008, 10:54
#43
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Red Nova,
Обещать не буду, но постараюсь.
Оффтоп: Корочку КТН обмыл как следует? Не засохнет?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.06.2008, 11:19
#44
Red Nova

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


По секрету скажу что корочку еще не получил, (два месяца от ВАК ответ ждать) но обмыть уже успел.
__________________
Блог

Последний раз редактировалось Red Nova, 17.07.2008 в 13:08.
Red Nova вне форума  
 
Непрочитано 17.06.2008, 20:18
#45
Red Nova

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


VVA
Ты уже в отпуске?
__________________
Блог
Red Nova вне форума  
 
Непрочитано 17.06.2008, 20:23
#46
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.06.2008, 09:24
#47
Red Nova

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


А где отпуск проводишь? Дома или поехал куда?
__________________
Блог
Red Nova вне форума  
 
Непрочитано 19.06.2008, 09:32
#48
Red Nova

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


Я это к тому, чтобы понять тебя можно щас беспокоить, или ты на отдыхе, тогда я подожду до окончания отпуска.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 19.06.2008, 19:50
#49
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Ну беспокоить можно, если достучишся. Я и сам не знаю что будет завтра. Я взял только 12 дней отпуска и на отдых (в смысле Турция-Болгария-Египет) сейчас не еду. Ковыряюсь потихоньку дома. Вот интернет себе провел. Осталось самое сложное - спрятать провода.
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 16.07.2008 в 23:05. Причина: орфография
VVA вне форума  
 
Непрочитано 19.06.2008, 20:18
#50
Red Nova

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


Эх жалко по разным странам живем, в отличая от лиспа с проводами я бы справился.
На этой неделе пойду к другу, он в некотором роде программист (правда другого профиля), постараюсь поучить лисп и разобраться с лиспом описанным мною на этом форуме, если не получиться то вернусь на форум и буду опять стучать в твою дверь.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 16.07.2008, 20:55
#51
Red Nova

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


VVA Вот решил перейти на блок штампа с атрибутом. Попробовал лисп с поста 5, у меня почему-то не работает. Хотя в файлах от wetr работает нормально.
Мои атрибуты именуются также как и у wetr в файле. Что я делаю не так?
Вложения
Тип файла: dwg
DWG 2004
Мой Штамп.dwg (98.3 Кб, 1676 просмотров)
__________________
Блог
Red Nova вне форума  
 
Непрочитано 17.07.2008, 13:07
#52
Red Nova

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


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

Но не все так радужно. Возникла новая проблема.
В отличие от wetr, у меня номер листа в атрибуте вписывается как поле от имени лейаута. Когда поле копируется в таблицу, то там (при реген алл) оно отображается как odel (это model без первой буквы). Может возможно как-то вписать в таблицу не поле с дизелем, а перед этим переконвертировать его в текст?
Вложения
Тип файла: dwg
DWG 2004
Мой Штамп2.dwg (86.1 Кб, 1687 просмотров)
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 17.07.2008, 15:28
#53
wetr

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


Я пользуюсь автонумератором этих самых блоков. Лайоуты при этом могут называться как угодно. Довольно удобная штука. Ссылку дать не могу, но по моему туда тоже VVA руку приложил. Брал на кадюсере...
...еще недавно где-то здесь на форуме djonikbishkek (извени если не правильно!) давал ссылку прям на этот лисп!
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)

Последний раз редактировалось wetr, 17.07.2008 в 15:29. Причина: орфография
wetr вне форума  
 
Непрочитано 17.07.2008, 16:05
#54
Red Nova

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


Просмотрел недавние сообщения от djonikbishkek , такого не нашел. Может на форум выложишь? Или на мыло пришли пожалста.
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 17.07.2008, 16:32
#55
wetr

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


Сори. Конечно!
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=21092Ky
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 17.07.2008, 16:55
#56
Red Nova

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


Спасибо за ссылку.
Буду просить VVA усовершенствовать лисп тут.
http://dwg.ru/f/showthread.php?t=20139&page=3
К стати, если еще не использовал, там очень полезная программа для работы с листами.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 17.07.2008, 19:24
#57
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Листы листами, а штамп штампом
Часть 1
Вводная
1. Имя блока штампа без разницы
2. Блок штампа должен иметь таг "ЛИСТ" (по умолчанию)
3. Если у вас таг отличается, ищем и правим эту строчку (выделена в коде красным)
Код:
[Выделить все]
 (setq Target-Tag-Name "ЛИСТ") ;_ ТАГ (имя) атрибута блока
4. Значение атрибута с тагом "ЛИСТ" обновляется именем листа, на котором расположен блок, начиная с 1-й цифры. Т.е.
Название листа---------->Значение атрибута
3 ----------------------------> 3
3a ----------------------------> 3a
КЖ-1.1 -----------------------> 1.1
4. Две команды
SHTUPDALL - пробегается по всем листам
SHTUPD - пробегается по текущему листу (CTAB)
Пример можно взять с #4
Код:
[Выделить все]
(defun C:SHTUPDALL ()(update-shtamp-block nil))
(defun C:SHTUPD ()(update-shtamp-block (getvar "CTAB")))
;; obj - Ename or Vla object of block
;; att_list - list ((Tag_Name1 . Value1)(Tag_Name2 . Value2) ...)
;;                 Tag_Name - string
;;                    Value - string

(defun mip-block-setattr-bylist (obj att_list / txt lst)(vl-load-com)
(if (= (type obj) 'ENAME)(setq obj (vlax-ename->vla-object obj)))
(setq att_list (mapcar '(lambda(x)(cons (strcase (mip-conv-to-str(car x)))(mip-conv-to-str(cdr x)))) att_list))
  (if (and obj
           (not(vlax-erased-p obj))
           (= (vla-get-ObjectName obj) "AcDbBlockReference")
	   (eq :vlax-true (vla-get-HasAttributes obj))
	   (vlax-property-available-p obj 'Hasattributes)
	   (vlax-write-enabled-p obj)
      )
    (vl-catch-all-apply
      (function
	(lambda	()
          (foreach at (vlax-invoke obj 'Getattributes)
            (if (setq lst (assoc(strcase(vla-get-TagString at)) att_list))
              (vla-put-TextString at (cdr lst))
            )
            )
          )
        )
      )
    )
  )
(defun mip-conv-to-str (dat)
  (cond ((= (type dat) 'INT)(setq dat (itoa dat)))
         ((= (type dat) 'REAL)(setq dat (rtos dat 2 12)))
        ((null dat)(setq dat ""))
        (t (setq dat (vl-princ-to-string dat)))))
;;;csp - имя листа (getvar "CTAB")
;;;      или nil - все листы
;;(setq csp (getvar "CTAB"))
(defun update-shtamp-block ( csp  / ss i n Target-Tag-Name attValue ch )
(setq Target-Tag-Name "ЛИСТ") ;_ ТАГ (имя) атрибута блока
(if csp  
(setq ss
(ssget "_X" (list
	      '(0 . "INSERT")
	      '(66 . 1)
	      (cons 410 csp)
	      )
       )
      )
  (setq ss
(ssget "_X" (list
	      '(0 . "INSERT")
	      '(66 . 1)
	      )
       )
      )
  )
(repeat (setq n (sslength ss)) ;_ end setq
        (cdr(assoc 410(entget (setq item (ssname ss (setq n (1- n)))))))
         
  (if (/= (setq attValue (cdr(assoc 410 (entget item)))) "Model" )
(progn
    (setq i 0)
  (while (or  
	   (not(wcmatch (setq ch (substr attValue (setq i (1+ i)) 1)) "#"))
	   (=  ch "")
	   )
     )
(setq attValue (substr attValue i))
(mip-block-setattr-bylist  item (list(cons Target-Tag-Name attValue)))
  )
    )
 ) ;_ end
)
Как проверить:
1. Берете пример с #4
2. Грузите лисп
3. Переименовываете любой лист (например КМ-112)
3. Вызываем команду SHTUPD
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 18.07.2008 в 13:32. Причина: Описка (выделена синим)
VVA вне форума  
 
Непрочитано 17.07.2008, 19:34
#58
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Часть 2. Конструктор "ЛЕГО"
Как скрестить LISP. Копирование, сортировка, переименование листов (layout) и код с #57
Вводная
1. Оба лиспа должны быть загружены
2. Будем скрещивать команду LTINC и SHTUPD (т.е. создадим копию листа с увеличенным номером и обновим штамп на этом листе)
Назовем команду LTINC1
Код:
[Выделить все]
(defun C:LTINC1 ()(C:LTINC)(C:SHTUPD))
Все просто как грабли. Хотя я бы сначала нащелкал нужное кол-во листов, а потом SHPUPDALL все обновил
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 18.07.2008 в 09:55.
VVA вне форума  
 
Непрочитано 17.07.2008, 20:10
#59
Red Nova

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


VVA, Спасибо. Все и в правду просто.
Я даже сумел скрестить LTRENN и SHTUPDALL, В результате получилось именно то, что надо.
Код:
[Выделить все]
(defun C:ltren2 ()(C:ltrenn)(C:SHTUPDALL))
P.S. Надо бы на LISP. Копирование, сортировка, переименование листов (layout) добавить эти команды, они все же там ближе по тематике чем здесь.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 17.07.2008, 21:10
#60
Red Nova

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


VVA,
Заметил, что SHTUPD и SHTUPDALL делают то же самое, то есть влияют на все листы, только один не переименовывается.
__________________
Блог
Red Nova вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Автозаполнение ведомости рабочих чертежей

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автозаполнение ведомости чертежей и автонумерация листов в спдс 6 Кукурузо_Джон_Горыныч ПО от CSoft 34 15.02.2019 08:13
Ведомость рабочих чертежей основного комплекта 13Rossoneri Архитектура 3 22.08.2015 00:21
Аннулирование комплекта рабочих чертежей путем замены Elena.sh Разное 8 26.05.2011 05:47
Хочу быстрее заполнять ведомости рабочих чертежей! a-alex Программирование 2 19.02.2008 19:09