Вообще я пытаюсь получить имя стиля выделенной таблицы на чертеже и сделать это имя активным с помощью вот этой функции:
(while (setq el (car (entsel "\n Выбери объект:")))
;entsel выдает имя объекта и все остальное, car - Извлекает первый элемент из списка: имя объекта
;команды которые должны выполняться в цикле пока не будет пустой ввод
(setq dan (entget el));получает список с характеристиками примитива
(setq name0 (assoc 0 dan)) ;получаем имя объекта
(setq name (cdr name0))
(princ name)
;;; (alert (strcat "Был выбран " name))
(princ (strcat "Был выбран " name))
(setq cLayer0 (assoc 8 dan)) ;получаем имя объекта
(setq cLayer (cdr cLayer0))
(setq cLWeight0 (assoc 370 dan)) ;получаем текущий вес линии
(setq cLWeight (cdr cLWeight0))
(setq cLType0 (assoc 6 dan)) ;получаем текущий тип линии
(setq cLType (cdr cLType0))
(setq cLTypeScale0 (assoc 48 dan)) ;получаем текущий масштаб типа линии
(setq cLTypeScale (cdr cLTypeScale0))
(setq cColor0 (assoc 62 dan)) ;получаем текущий цвет
(setq cColor (cdr cColor0))
(setq cThick0 (assoc 39 dan)) ;получаем текующую толщину
(setq cThick (cdr cThick0))
;Назначим текущим слой выбранного объекта (setvar "clayer" <имя слоя>)
(setvar "clayer" cLayer)
(princ (strcat (chr 10) "Был назначен текущий слой " (chr 34) cLayer (chr 34)))
;Назначим текущий вес линий
(cond ((eq cLWeight nil)
(setvar "CELWEIGHT" -1)
(princ (strcat (chr 10) "Был назначен текущий вес линий " (chr 34) "ПоСлою" (chr 34)))
)
((eq cLWeight -2)
(setvar "CELWEIGHT" -2)
(princ (strcat (chr 10) "Был назначен текущий вес линий " (chr 34) "ПоБлоку" (chr 34)))
)
((eq cLWeight -3)
(setvar "CELWEIGHT" -3)
(princ (strcat (chr 10) "Был назначен текущий вес линий " (chr 34) "ПоУмолчанию" (chr 34)))
)
(t
(setvar "CELWEIGHT" cLWeight)
(princ (strcat (chr 10) "Был назначен текущий вес линий " (chr 34) (rtos (/ cLWeight 100.0)) (chr 34)))
)
)
;Назначим текущий тип линии
(cond ((eq cLType nil)
(setvar "CELTYPE" "ByLayer")
(princ (strcat (chr 10) "Был назначен текущий тип линий " (chr 34) "ПоСлою" (chr 34)))
)
(t
(setvar "CELTYPE" cLType)
(princ (strcat (chr 10) "Был назначен текущий тип линий " (chr 34) cLType (chr 34)))
)
)
;Назначим текущий масштаб типа линии
(cond ((eq cLTypeScale nil)
(setvar "CELTSCALE" 1)
(princ (strcat (chr 10) "Был назначен текущий масштаб типа линий " (chr 34) "1" (chr 34)))
)
(t
(setvar "CELTSCALE" cLTypeScale)
(princ (strcat (chr 10) "Был назначен текущий масштаб типа линий " (chr 34) (rtos cLTypeScale) (chr 34)))
)
)
;Назначим ткущий цвет чертежа
(cond ((eq cColor nil)
(setvar "CECOLOR" "ByLayer")
(princ (strcat (chr 10) "Был назначен текущий цвет " (chr 34) "ПоСлою" (chr 34)))
)
((eq cColor 0)
(setvar "CECOLOR" "ByBlock")
(princ (strcat (chr 10) "Был назначен текущий цвет " (chr 34) "ПоБлоку" (chr 34)))
)
(t
(setvar "CECOLOR" (rtos cColor))
(princ (strcat (chr 10) "Был назначен текущий цвет " (chr 34) (rtos cColor) (chr 34)))
)
)
;Назначаем текущую толщину
(cond ((eq cThick nil)
(setvar "THICKNESS" 0)
(princ (strcat (chr 10) "Была назначена текущая толщина " (chr 34) "0" (chr 34)))
)
(t
(setvar "THICKNESS" cThick)
(princ (strcat (chr 10) "Была назначена текущая толщина " (chr 34) (rtos cThick) (chr 34)))
)
)
;Назначим особые свойства для сложных объектов
(setq TypeObj (strcase name))
(cond
((eq TypeObj "ACAD_TABLE")
(setq StyleTable0 (assoc 342 dan))
(setq StyleTable00 (entget (cdr StyleTable0)))
(setq StyleTable000 (assoc 330 StyleTable00))
(dictsearch DicStyleType "ACAD_TABLESTYLE")
(setvar "CTABLESTYLE" (rtos StyleTable))
(princ (strcat (chr 10) "Был назначен текущий стиль таблиц " (chr 34) (rtos StyleTable) (chr 34)))
)
)
)
;;;(vla-put-activedimstyle
;;; (vla-get-activedocument (vlax-get-acad-object))
;;; (vla-item
;;; (vla-get-dimstyles
;;; (vla-get-activedocument (vlax-get-acad-object))
;;; )
;;; (cdr (assoc 3 (entget (car (entsel)))))
;;; ) ;_ end of vla-item
;;;) ;_ end of vla-put-ActiveDimStyle
Работа с названием стиля таблицы в самом конце функции. Но уменя не получается ни открыть словарь со списком имен стилей таблиц "ACAD_TABLESTYLE", ни получить ссылку на стиль выделенной таблицы, ни получить название стиля из словаря через ссылку на этот стиль. Все это для меня не понятно и запутано. Уважаемый Александр, может поможете и покажете как это надо делать?