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

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

Помогите разобраться с ошибкой в LISP файле

Ответ
Поиск в этой теме
Непрочитано 30.03.2017, 11:20 #1
Помогите разобраться с ошибкой в LISP файле
Preparat
 
Инженер-конструктор
 
Самара
Регистрация: 27.10.2016
Сообщений: 18

Приветствую уважаемые. Есть в проекте куча мелких динамических блоков с разными атрибутами (номера узлов, сечений). Надо быстро выделить определенные из них, команда быстый выбор не работает в данной ситуации, т.к. ищу по атрибутам. Нашел следующее
Код:
[Выделить все]
 ;;; (ax:FindBlockTagValue (vla-get-activedocument
;;; (vlax-get-acad-object)) "blockname" "tagname" "tagvalue")
(defun ax:FindBlockTagValue
       (doc bn tagname value / layout i atts tag sset c)
  (vlax-for layout (vla-get-layouts doc)
    (vlax-for i (vla-get-block layout)
      (if (and
            (= (vla-get-objectname i) "AcDbBlockReference")
            (= (strcase (vla-get-name i)) (strcase bn))
          )
        (if (and
              (= (vla-get-hasattributes i) :vlax-true)
              (safearray-value
                (setq atts
                       (vlax-variant-value
                         (vla-getattributes i)
                       )
                )
              )
            )
          (progn
            (foreach tag (vlax-safearray->list atts)
              (if (and
                    (= (strcase tagname)
                       (strcase (vla-get-TagString tag))
                    )
                    (= value (vla-get-TextString tag))
                  )
                (progn
                  (if (not sset)
                    (setq sset (ssadd (vlax-vla-object->ename i)))
                    (ssadd (vlax-vla-object->ename i) sset)
                  )
                )
              )
            )
          )
        )
      )
    )
  )
  (sssetfirst nil sset)
)
Но, к сожалению, я не разбираюсь в нем. При вызове команды ax:FindBlockTagValue выдает ошибку - слишком мало аргументов. Пождкажите пожалуйста что я не так делаю, или в коде кроется ошибка?

Последний раз редактировалось Кулик Алексей aka kpblc, 30.03.2017 в 11:30.
Просмотров: 1790
 
Непрочитано 30.03.2017, 11:31
#2
Кулик Алексей aka kpblc
Moderator

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


Первые две строчки (которые закомментированы) - это пример вызова.
Код:
[Выделить все]
 (ax:FindBlockTagValue (vla-get-activedocument (vlax-get-acad-object)) "blockname" "tagname" "tagvalue")
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.03.2017, 11:58
#3
Preparat

Инженер-конструктор
 
Регистрация: 27.10.2016
Самара
Сообщений: 18


Так, заработало, но с обычными блоками, а что надо дописать чтобы искал среди динамических блоков?
Preparat вне форума  
 
Непрочитано 30.03.2017, 12:17
#4
Кулик Алексей aka kpblc
Moderator

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


Заменить vla-get-name на vla-get-effectivename
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.03.2017, 13:24
#5
Preparat

Инженер-конструктор
 
Регистрация: 27.10.2016
Самара
Сообщений: 18


Благодарю, все сработало.
Preparat вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Помогите разобраться с ошибкой в LISP файле

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ребят, помогите разобраться с нахождением усилий по линиям влияния belan_es Прочее. Архитектура и строительство 5 31.05.2015 12:28
LISP. Помогите разобраться с изменением в lispех. Хочу в существующий добавить свои пожелания. Only_War LISP 4 07.04.2014 16:02
Помогите разобраться с ошибкой в модуле Ansys CFX obidenov ANSYS 1 28.02.2013 02:27
помогите разобраться с ошибкой в scad Бабушкин Дмитрий SCAD 16 22.07.2009 09:46
Помогите разобраться с ошибкой Василич Программирование 15 12.12.2007 11:13