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

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

Прошу помощи в правке лиспа

Ответ
Поиск в этой теме
Непрочитано 05.03.2020, 17:39 #1
Прошу помощи в правке лиспа
LAmyk
 
Регистрация: 05.02.2009
Сообщений: 37

Добрый день, нашел лисп в инете
он меняет на указанный в лиспе блок с атрибутом текст который можно выбрать
можно ли не жестко привязать имя блока внутри листа а при запуске запрашивать выбор блока который будет ставиться вместо текста?

прошу помощи в модификации кода
вот сам код
Код:
[Выделить все]
 (defun c:Txt2Blk (/ T2B_Selection T2B_Baseblock T2B_AttributeTag T2B_ActiveLayout T2B_ActiveDoc T2B_Text T2B_Block)
   (setq T2B_Baseblock    "SMK-STR")
   (setq T2B_AttributeTag "TAG")   
   (if
      (and
         (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-item (list (vla-get-Blocks (setq T2B_ActiveDoc (vla-get-ActiveDocument (vlax-get-acad-object)))) T2B_Baseblock))))
         (setq T2B_Selection (ssget '((0 . "*TEXT"))))
      )
      (progn
         (setq T2B_ActiveLayout (vla-get-Block (vla-get-ActiveLayout T2B_ActiveDoc)))
         (vla-StartUndoMark T2B_ActiveDoc)
         (foreach T2B_Text (mapcar 'cadr (ssnamex T2B_Selection))
            (if
               (= (type T2B_Text) 'ENAME)
               (progn
                  (setq T2B_Text (vlax-ename->vla-object T2B_Text))
                  (setq T2B_Block (vla-InsertBlock T2B_ActiveLayout (vla-get-InsertionPoint T2B_Text) T2B_Baseblock 1 1 1 0))
                  (PushAttValue T2B_Block (list (list T2B_AttributeTag (vla-get-TextString T2B_Text))))
                  (vla-Delete T2B_Text)
               )
            )
         )
         (vla-EndUndoMark T2B_ActiveDoc)
         (vlax-release-object T2B_ActiveLayout)
      )
   )
   (vlax-release-object T2B_ActiveDoc)
   (princ)
)

(defun PushAttValue (PAV_BlkObject PAV_TagValList / PAV_AttList)
   (if
      (and
         (= (type PAV_BlkObject)     'VLA-OBJECT)
         (= (vla-get-ObjectName    PAV_BlkObject) "AcDbBlockReference")
         (= (vla-get-HasAttributes PAV_BlkObject) :vlax-true)
      )     
      (progn
         (setq PAV_AttList (vlax-safearray->list (vlax-variant-value (vla-GetAttributes PAV_BlkObject))))
         (foreach PAV_Item PAV_AttList
            (vl-catch-all-apply 'vla-put-TextString (list PAV_Item (cadr (assoc (strcase (vla-get-TagString PAV_Item)) PAV_TagValList))))
         )
     )           
   )
)    
Просмотров: 1328
 
Непрочитано 05.03.2020, 17:43
#2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Я так, просто ссылку на первоисточник оставлю: https://forums.autodesk.com/t5/visua...e/td-p/7161492
Boxa на форуме  
 
Непрочитано 05.03.2020, 18:25
1 | #3
tsetse

Инженер-конструктор
 
Регистрация: 25.12.2015
Москва
Сообщений: 77


Замените
Код:
[Выделить все]
 (setq T2B_Baseblock    "SMK-STR")
на
Код:
[Выделить все]
 (setq T2B_Baseblock (vla-get-EffectiveName (vlax-ename->vla-object ( car (entsel "Выберите блок: " )))))
tsetse вне форума  
 
Автор темы   Непрочитано 05.03.2020, 18:41
#4
LAmyk


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


Цитата:
Сообщение от tsetse Посмотреть сообщение
Замените
Код:
[Выделить все]
 (setq T2B_Baseblock    "SMK-STR")
на
Код:
[Выделить все]
 (setq T2B_Baseblock (vla-get-EffectiveName (vlax-ename->vla-object ( car (entsel "Выберите блок: " )))))
спасибо огромное, работает
LAmyk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Прошу помощи в правке лиспа

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи, при изменении веса линии ничего не меняется и мерцает перекрестие (Autocad 2017) lopikolper AutoCAD 10 26.06.2018 14:59
Прошу помощи с выбором фундамента Gfdtk Основания и фундаменты 23 24.05.2018 16:52
Прошу помощи! возвышение тротуара над проезжей частью на мостах? SemenK Автомобильные и железные дороги, мосты, тоннели и организация движения 7 08.12.2017 12:48
Прошу помощи. Пропущены термовкладыши в безригельном перекрытии... aengineer Конструкции зданий и сооружений 21 07.11.2014 15:31
Прошу помощи в выборе фундамента. дачник2014 Основания и фундаменты 7 23.05.2014 11:29