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

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

Как с помощью LISP вставить динамический блок с заданным состоянием видимости?

Ответ
Поиск в этой теме
Непрочитано 10.01.2025, 19:29 #1
Как с помощью LISP вставить динамический блок с заданным состоянием видимости?
IzotovAnton
 
Регистрация: 07.01.2025
Сообщений: 4

Несколько дней уже бьюсь над проблемой, в LISP не силён от слова "совсем". Задача стоит следующая: есть динамический блок "розетка" с разными состояниями видимости "одинарная", "двойная", "тройная" и т.д. Пытаюсь данный блок вписать на горячие клавиши, чтобы на одно сочетание клавиш вставлялся блок "розетка" с видимостью "одинарная", а на другое сочетание клавиш вставлялся блок "розетка" с видимостью "двойная".

Вложения
Тип файла: dwg
DWG 2018
розетка.dwg (53.5 Кб, 5 просмотров)

Просмотров: 960
 
Непрочитано 10.01.2025, 20:14
#2
Кулик Алексей aka kpblc
Moderator

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


Сначала вставить, а потом уже менять видимости и / или любые другие параметры.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 10.01.2025, 20:31
#3
IzotovAnton


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


А как это можно сделать через LISP или командную строку?
IzotovAnton вне форума  
 
Непрочитано 10.01.2025, 20:46
#4
Кулик Алексей aka kpblc
Moderator

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


Вставил, получил указатель на вставленный блок, дальше смотреть его свойства и методы. М.б., для старта подойдет https://autolisp.ru/2014/06/27/dynblocks-parameters/ и ссылки оттуда.

----- добавлено через 59 сек. -----
Приведи свой код, и скажи, в каком месте затык.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.01.2025, 20:50
#5
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


если
Цитата:
Сообщение от IzotovAnton Посмотреть сообщение
в LISP не силён от слова "совсем".
может наделать вариантов блоков в палитру?
Сергей812 вне форума  
 
Автор темы   Непрочитано 10.01.2025, 20:50
#6
IzotovAnton


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


Спасибо, буду пробовать!
IzotovAnton вне форума  
 
Непрочитано 10.01.2025, 23:12
1 | 1 #7
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,008


https://lee-mac.com/dynamicblockfunc...namicpropvalue

Код:
[Выделить все]
 ;; Set Dynamic Block Property Value  -  Lee Mac
;; Modifies the value of a Dynamic Block property (if present)
;; blk - [vla] VLA Dynamic Block Reference object
;; prp - [str] Dynamic Block property name (case-insensitive)
;; val - [any] New value for property
;; Returns: [any] New value if successful, else nil

(defun LM:setdynpropvalue ( blk prp val )
    (setq prp (strcase prp))
    (vl-some
       '(lambda ( x )
            (if (= prp (strcase (vla-get-propertyname x)))
                (progn
                    (vla-put-value x (vlax-make-variant val (vlax-variant-type (vla-get-value x))))
                    (cond (val) (t))
                )
            )
        )
        (vlax-invoke blk 'getdynamicblockproperties)
    )
)
Применение
Код:
[Выделить все]
 
(LM:setdynpropvalue (vlax-ename->vla-object (entlast)) "Видимость1" "5я-3х2.5")

Последний раз редактировалось Nike, 10.01.2025 в 23:20.
Nike вне форума  
 
Автор темы   Непрочитано 11.01.2025, 00:01
#8
IzotovAnton


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


Оно РАБОТАЕТ!!!! Спасибо огромное!!! Вы сделали мой день!

Последний раз редактировалось IzotovAnton, 11.01.2025 в 14:04.
IzotovAnton вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как с помощью LISP вставить динамический блок с заданным состоянием видимости?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в AutoCAD создать блок с несколькими ручками видимости? МишаИнженер Динамические блоки 15 06.03.2020 16:35
Как выполнить подсчет вложенных примитивов в динамический блок с учетом видимости BuldozerDjo LISP 3 15.09.2019 19:18
Как создать динамический блок с динамическим массивом атрибутов? Кудахтыч Динамические блоки 7 12.02.2019 12:23
Динамический блок с атрибутами, ведет себя по разному ArtyLight Динамические блоки 3 06.01.2019 17:49
Как с помощью lisp получить список всех состояний видимости динамического блока crosandr LISP 4 11.04.2012 22:33