|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Спрошу про блоки
Москва
Регистрация: 20.01.2004
Сообщений: 154
|
||
Просмотров: 13821
|
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
;FixBlock.lsp [December 31, 1997]
; ; Copyright 1996, 1997 ManuSoft Computer Services ; ; Freeware by: ; ManuSoft Computer Services ; http://www.manusoft.com ; ; Load function, then enter FIXBLOCK to redefine selected blocks ; so that all entities are on layer '0', color 'BYBLOCK'. ; (defun C:FixBlock (/ ss cnt blkname donelist Grp Update) (defun Grp (gc el) (cdr (assoc gc el))) (defun Update (bname / ename elist) (setq ename (tblobjname "BLOCK" bname)) (while ename (setq elist (entget ename '("*")) elist (subst '(8 . "0") (assoc 8 elist) elist) elist (if (assoc 62 elist) (subst '(62 . 0) (assoc 62 elist) elist) (append elist '((62 . 0))))) (entmake elist) (setq ename (entnext ename))) (if (/= "ENDBLK" (Grp 0 elist)) (entmake '((0 . "ENDBLK") (8 . "0") (62 . 0)))) ) (if (> (logand (Grp 70 (tblsearch "layer" "0")) 1) 0) (princ "\nLayer 0 must be thawed before running FIXBLOCK!\n") (progn (if (progn (princ "\nPress <Enter> to fix all defined blocks\n") (setq ss (ssget '((0 . "INSERT"))))) (progn (setq cnt (sslength ss)) (while (>= (setq cnt (1- cnt)) 0) (if (not (member (setq blkname (Grp 2 (entget (ssname ss cnt)))) donelist)) (progn (Update blkname) (setq donelist (cons blkname donelist))))) (setq cnt (sslength ss))) (progn (setq cnt 0) (while (setq blkname (Grp 2 (tblnext "BLOCK" (not blkname)))) (Update blkname) (setq cnt (1+ cnt))))) (princ (strcat "\n" (itoa cnt) " block" (if (= cnt 1) "" "s") " redefined\n")))) (princ) ) ;End-of-file После этого команда Regen |
|||
![]() |
|
||||
Регистрация: 18.10.2004
Odessa
Сообщений: 226
![]() |
У меня тоже есть вопросик касательно блоков: - Создаю значится блок, присваиваю ему имя, аккуратненько заполняю description, сохраняюсь, затем вдруг захотелось поменять или дополнить имя или описание, -так description виден только в DesignCenter, в свойствах даже и не упоминается и ничем другим не читается, refedit позволяет редактировать сам блок, но не имя и описание.
Пока борюсь с этим EXPLODE>EDIT>MAKE BLOCK, может кто подскажет более простой путь, и как оперативно просмотреть DESCRIPTION? |
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Если будешь пользоваться убери из листинга фразу:
Цитата:
|
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Пришлось немного усовершенствовать и подправить поскольку сам работаю с архитектурными чертежами и этот ЛИСП мне не лишний. Прога делает блоки "правильными" т. е. 1) все составляющие примитивы в слое "0" 2) цвет "ByBlock". Сами блоки остаются в своем слое и им присваивается цвет "ByLayer". Заблокированные слои на время работы программы разблокируются и потом восстанавливают состояние.
Код:
|
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
http://www.kurganobl.ru/cad/book.jsp...=272&tn=main#b |
|||
![]() |
|
||||
Регистрация: 18.10.2004
Odessa
Сообщений: 226
![]() |
Fantomas
Огромное спасибо за помощь, оба LISPa как раз в тему, правда мне приходится работать с элетронными компонентами и библиотека накопилась довольно приличная. Жаль конечно, что разработчики не решили этот вопрос, хотя он напрашивается сам собой :roll: |
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
У меня на этот счет есть идея. Можно ведь использоваь атрибуты блоков причем невидимые. Мне несложно написать лиспик который вставил бы в каждый блок ваших библиотек этот невидимый атрибут соответствующий Description блока.
Будет просмотр и редактирование по двойному щелчку ну и соответственно все все остальное с атрибутами связанное 8) Делаете свои библиотеки по привычке заполняя Description, затем запускаете прогу и она автоматом вставляет во все блоки невидимые атрибуты. Если к примеру вы используете "чужой" блок без Description, то атрибут тоже будет создаваться но к примеру с прочерком "-". А если в Description использовать по договоренности служебные знаки к примеру $1$Locheed-Martin$1$ $2$Laser Gun$2$ $3$SLG-134$3$ $4$10000000 USD$4$ то в блоке могут создаваться несколько атрибутов: Manufacturer: Locheed-Martin Devise: Space Laser Gun Model: SLG-134 Price: 10000000 USD Что то я разошелся... ![]() |
|||
![]() |
|
||||
Регистрация: 18.10.2004
Odessa
Сообщений: 226
![]() |
Цитата:
![]() |
|||
![]() |
|
||||
Регистрация: 18.10.2004
Odessa
Сообщений: 226
![]() |
Цитата:
Цитата:
Цитата:
|
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Цитата:
Лиспик "синхронизирующий" Description и соответствующий атрибут блока напишу. Насчет "$1$"тоже не слишком сложно, но хочется знать насколько нужно и если нужно то какие пункты? Цитата:
|
|||
![]() |