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

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

Как обновить параметризованный блок?

Ответ
Поиск в этой теме
Непрочитано 21.10.2015, 17:41 #1
Как обновить параметризованный блок?
kurstep
 
Регистрация: 27.01.2012
Сообщений: 240

Здравствуйте. Уменя такая задача, вставляю в каждый чертеж из списка блок гнутой арматуры (блок параметризованный) с выставление нужных параметров с помощью функции

Код:
[Выделить все]
 (defun Change_din_sv (ent name value / din_sv)

    
    (setq din_sv (car(vl-remove-if-not '(lambda (x) (= (vla-get-propertyname x) name))
	    (vlax-safearray->list(vlax-variant-value (vla-getdynamicblockproperties ent)))
	   ); end vl-remove-if-not
	); end car
    ); end setq
    (vla-put-value din_sv (vlax-make-variant value (vlax-variant-type (vla-get-value din_sv))))
    (vla-update ent)  
  )

( Change_din_sv (vla-insertBlock modelSpace (vlax-3d-point  100 60 0  )
	   "ArmSt" 1 1 1 0) "Leight" Dl ))
В итоге параметр меняется но блок выглядит без изменений. Как заставить такой блок обновляться?
Вначале пользовался функцией отсюда :
Код:
[Выделить все]
 http://autolisp.ru/2014/06/27/dynblocks-parameters/
от Кулик Алексей aka kpblc
Но при назначении неиндексированных значений выдает ошибку, то есть менять длину блока с помощью данного кода не получаеться

Вложения
Тип файла: dwg
DWG 2013
Блок гнутой арматуры.dwg (384.8 Кб, 476 просмотров)

Просмотров: 2938
 
Непрочитано 21.10.2015, 17:52
#2
art_rrc


 
Регистрация: 28.01.2013
Минск
Сообщений: 379


Динамические параметры(свойства) и размерные зависимости(параметрические зависимости) - понятия не эквивалентные. Так что, чтоб применить конкретно этот лисп, блок видимо придется сделать динамическим.
ps По части лиспа я не помощник.
art_rrc вне форума  
 
Непрочитано 21.10.2015, 17:58
1 | #3
Кулик Алексей aka kpblc
Moderator

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


Я обновил код на сайте, проверяй.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.10.2015, 18:02
#4
kurstep


 
Регистрация: 27.01.2012
Сообщений: 240


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Я обновил код на сайте, проверяй.
Спасибо, Круто, работает!!)

----- добавлено через ~5 мин. -----
Хотя... Странно... Ручка растягиваеться а рисунок за ним нет, пока не тронешь ее .. А есть возможность программно обновить блок?
kurstep вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как обновить параметризованный блок?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не удается выполнить копирование / вставку элементов чертежа Gamer777 AutoCAD 269 10.01.2023 13:29
ФАТАЛЬНАЯ ОШИБКА: Unhandled Access Violation Reading 0x0000 Exception at 3d4a0045h AutoCAD 2011русский Nikolays AutoCAD 13 13.10.2015 14:57
Летние Олимпийские игры 2012. Болеем за наших! T-Yoke Разное 303 13.09.2012 11:56
Невозможность добавить в блок дополнительный внутренний блок, если таковой с тем-же именем в главном уже есть Vova Баги и пожелания в Autodesk 5 10.11.2009 16:13
Болеем за наших на Олимпиаде T-Yoke Разное 472 28.04.2009 17:40