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

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

Lisp. Как в лиспе извлечь размер дин блока.

Ответ
Поиск в этой теме
Непрочитано 13.09.2014, 02:35 #1
Lisp. Как в лиспе извлечь размер дин блока.
Corvin
 
Инженер-проектировщик
 
Донецк, Украина
Регистрация: 13.02.2012
Сообщений: 5

Здравствуйте. Ну, собственно, вопрос в заголовке.
Просмотров: 2324
 
Непрочитано 13.09.2014, 07:34
#2
Spiteful Berkut

Инженер-конструктор
 
Регистрация: 13.12.2007
Россошь, Воронежская обл.
Сообщений: 307
<phrase 1=


Тут описано нечто подобное. Это изменение параметра, прошу прощения.

Код:
[Выделить все]
(defun _kpblc-get-dyn-block-list-prop-and-values (ent / res)
                                                 ;|
*    Функция получения списка свойств и их возможных значений для дин.блока
*    Параметры вызова:
*  ent  указатель на блок (vla-, ename или string). Строка воспринимается
    как хендл объекта. nil -> запрашивается у пользователя
|;
  (vl-load-com)
  (vl-catch-all-apply
    '(lambda ()
       (setq ent (cond (ent)
                       (t (car (entsel "\nУкажите блок <Отмена> : ")))
                       ) ;_ end of cond
             ) ;_ end of setq
       ) ;_ end of lambda
    ) ;_ end of vl-catch-all-apply
  (if
    (vl-catch-all-error-p
      (vl-catch-all-apply
        (function
          (lambda ()
            (if
              (and (setq
                     ent (cond
                           ((= (type ent) 'ename) (vlax-ename->vla-object ent))
                           ((= (type ent) 'vla-object) ent)
                           ((= (type ent) 'str)
                            ((lambda (/ tmp)
                               (vl-catch-all-apply
                                 '(lambda () (setq tmp (vla-handletoobject ent)))
                                 ) ;_ end of vl-catch-all-apply
                               tmp
                               ) ;_ end of lambda
                             )
                            )
                           (t nil)
                           ) ;_ end of cond
                     ) ;_ end of setq
                   (= (strcase (vla-get-objectname ent) t) "acdbblockreference")
                   (= (vla-get-isdynamicblock
                        (vla-item
                          (vla-get-blocks
                            (vla-get-activedocument (vlax-get-acad-object))
                            ) ;_ end of vla-get-blocks
                          (vla-get-effectivename ent)
                          ) ;_ end of vla-item
                        ) ;_ end of vla-get-isxref
                      :vlax-true
                      ) ;_ end of =
                   ) ;_ end of and
               (setq res
                      (mapcar '(lambda (x)
                                 (cons (vla-get-propertyname x)
                                       (vlax-variant-value (vla-get-value x))
                                       ) ;_ end of cons
                                 ) ;_ end of lambda
                              (vl-remove-if
                                '(lambda (a)
                                   (= (strcase (vla-get-propertyname a)) "ORIGIN")
                                   ) ;_ end of lambda
                                (vlax-safearray->list
                                  (vlax-variant-value
                                    (vla-getdynamicblockproperties ent)
                                    ) ;_ end of vlax-variant-value
                                  ) ;_ end of vlax-safearray->list
                                ) ;_ end of vl-remove-if
                              ) ;_ end of mapcar
                     ) ;_ end of setq
               (princ "\nОшибка указания примитива")
               ) ;_ end of if
            ) ;_ end of lambda
          ) ;_ end of function
        ) ;_ end of vl-catch-all-apply
      ) ;_ end of vl-catch-all-error-p
     (princ (strcat "\nОшибка выполнения :: " (itoa (getvar "errno"))))
     ) ;_ end of if
  res
  ) ;_ end of defun

Последний раз редактировалось Spiteful Berkut, 13.09.2014 в 07:40.
Spiteful Berkut вне форума  
 
Непрочитано 13.09.2014, 07:50
#3
Кулик Алексей aka kpblc
Moderator

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


Что значит "размер"?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 13.09.2014, 08:25
#4
Spiteful Berkut

Инженер-конструктор
 
Регистрация: 13.12.2007
Россошь, Воронежская обл.
Сообщений: 307
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Что значит "размер"
Чудится мне, что подразумевается линейный параметр динамического блока.
Spiteful Berkut вне форума  
 
Непрочитано 13.09.2014, 13:31
#5
VVA

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


кто знает есть ли доступ к параметрам динамичесого блока из Lisp
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 14.09.2014, 18:38
#6
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Spiteful Berkut Посмотреть сообщение
Чудится мне, что подразумевается линейный параметр динамического блока.
А вот я подумал про габаритный контейнер.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.09.2014, 18:42
#7
Corvin

Инженер-проектировщик
 
Регистрация: 13.02.2012
Донецк, Украина
Сообщений: 5


Огромное спасибо всем за вашу помощь. В ссылке VVA был найден ответ на вопрос. Извиняюсь за несовсем точный вопрос. Речь шла об извлечении длины блока после его растяжения.
Corvin вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp. Как в лиспе извлечь размер дин блока.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
размер температурного блока при жб колоннах и стальном покрытии viqa Железобетонные конструкции 39 15.09.2015 14:08
Размер температурного блока смешанного каркаса по нормам e_v_a Конструкции зданий и сооружений 2 14.09.2012 16:58
LISP. Как изменить размер окна Autocad PDM LISP 10 26.03.2012 02:52
как редактировать contents в свойствах текста? как привязать размер текста атрибута к размеру блока? p-sm AutoCAD 3 13.08.2009 18:08