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

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

Перебор блоков в модели и создание надписи с именем слоя

Ответ
Поиск в этой теме
Непрочитано 15.04.2010, 19:45 #1
Перебор блоков в модели и создание надписи с именем слоя
Sanmart
 
СПб
Регистрация: 05.05.2009
Сообщений: 423

Уважаемые форумчане! Задача вроде-как простая, но самому решить не получается, т.к. умею программировать только на VBA и только под Excel.
Нужно сделать перебор всех вставленных блоков в пространстве модели (с известным именем) и на каждом блоке сделать надпись с именем слоя.
Попытался сделать следующее:
Цитата:
Sub BlockName01()
Dim bl As AcadBlock, blR As AcadBlockReference
Set bl = Blocks("rec")
For Each blR In bl

Next
End Sub
Но оно не работает До надписи с именем слоя я пока ещё не добрался. Помогите чайнику, пожалуйста!
Просмотров: 3324
 
Непрочитано 15.04.2010, 20:15
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Sanmart Посмотреть сообщение
и на каждом блоке сделать надпись с именем слоя
Гиперссылка подойдет? Вместо MyBlock вбей имя своего блока
Код:
[Выделить все]
(defun C:TEST ( / item ss)
  (vl-load-com)
  (and
    (setq ss (ssget "_X" '((0 . "INSERT")(2 . "MyBlock")(410 . "Model"))))
    (repeat (setq item (sslength ss)) ;_ end setq
         (setq obj (vlax-ename->vla-object (ssname ss (setq item (1- item)))))
         (if (vlax-write-enabled-p obj)
           (mip-put-hyperlink obj (vla-get-layer obj))
           )
         ) ;_ end repeat
    )
  (princ)
  )
; Ф-ция mip-put-hyperlink
; Возвращает nil.
; Arguments [Type]:
;   Ename = Object [ENAME]
;  URLDescription = Строка [STR]
; Если строка "", то ссылка удаляется
(defun mip-put-hyperlink (ENAME URLDescription)
  (if (eq (type ENAME) 'ENAME)
    (setq ENAME (vlax-ename->vla-object ENAME))
  ) ;_ end of if
  (vlax-for hyp (vla-get-hyperlinks ENAME) (vla-delete hyp))
  (if (/= URLDescription "")
  (vla-add (vla-get-hyperlinks ENAME)
           "about:blank"
           URLDescription
  ) ;_ end of vla-add
    )
) ;_ end of DEFUN
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 16.04.2010, 09:27
#3
Sanmart


 
Регистрация: 05.05.2009
СПб
Сообщений: 423


VVA, спасибо!
В другой теме подсказали, как это сделать с помощью ATTDEF. Проблема решена.
Sanmart вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Перебор блоков в модели и создание надписи с именем слоя



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание поверности и 3d модели поверхности в AutoCAD Civil 3d 2009 Arhistratig Вертикальные решения на базе AutoCAD 25 07.05.2013 14:53
Создание модели в СКАД PPRщик SCAD 9 11.09.2009 11:02
Как в таблице AutoCAD просуммировать количество блоков разбросанных по модели? Seregadwg AutoCAD 2 17.07.2009 13:41
Создание модели грунтового основания Bridger Расчетные программы 14 19.10.2008 16:33
Выбор блоков по значению слоя атрибута Serge_Y Программирование 2 15.11.2006 22:43