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

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

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

Ответ
Поиск в этой теме
Непрочитано 11.05.2010, 13:54 #1
Как преобразовать динамический блок в обычный?
zaabifff
 
проектировщик
 
Воронеж
Регистрация: 15.05.2009
Сообщений: 81

Имеется чертеж с несколькими вхождениями динамического блока, соответственно, все они изменены при помощи "динамичности". Можно ли как-то все эти вхождения заменить на обычные блоки (один размер-один блок, другой-другой) с сохранением размеров?
Вот эту тему http://forum.dwg.ru/showthread.php?t=35198 читал, может, что-то недопонял.
Просмотров: 8148
 
Непрочитано 11.05.2010, 14:05
#2
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


а зачем?
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 11.05.2010, 14:15
#3
zaabifff

проектировщик
 
Регистрация: 15.05.2009
Воронеж
Сообщений: 81


Есть несколько вхождений блоков, стеновых панелей (просто прямоугольников). Скажем, 15 панелей В1 длинной 5м, 20 В2 длиной 8м. Длина изменена "ручками" динамического блока. Надо сделать, чтобы все панели В1 стали длиной 4м, не редактируя каждую. А В2 остались такими же.
zaabifff вне форума  
 
Непрочитано 11.05.2010, 14:21
#4
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Эт я понял, не понятно зачем производить замену
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 11.05.2010, 14:25
#5
zaabifff

проектировщик
 
Регистрация: 15.05.2009
Воронеж
Сообщений: 81


А как можно это сделать? Мне не принципиально, каким способом.
zaabifff вне форума  
 
Непрочитано 11.05.2010, 14:49
#6
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


если только в анонимные типа *nnn
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 11.05.2010, 14:51
#7
zaabifff

проектировщик
 
Регистрация: 15.05.2009
Воронеж
Сообщений: 81


Как? Их же потом можно будет отдельно подредактировать. одной длины-один обычный блок?
zaabifff вне форума  
 
Непрочитано 11.05.2010, 14:59
#8
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


полный flatten без скрытия линий им устроить из Express Tools
Хмурый вне форума  
 
Автор темы   Непрочитано 11.05.2010, 15:04
#9
zaabifff

проектировщик
 
Регистрация: 15.05.2009
Воронеж
Сообщений: 81


Пишет "неверный составной объект" после flatten и удаляет блок
zaabifff вне форума  
 
Непрочитано 11.05.2010, 15:08
#10
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Цитата:
Сообщение от zaabifff Посмотреть сообщение
Пишет "неверный составной объект" после flatten и удаляет блок
А вот теперь прошу предоставить этот динамический блок.
а также озвучить версию AutoCAD'а, операционную систему и т.д.
Хмурый вне форума  
 
Автор темы   Непрочитано 11.05.2010, 15:17
#11
zaabifff

проектировщик
 
Регистрация: 15.05.2009
Воронеж
Сообщений: 81


Прошу прощения, что сразу этого не сделал. Windows XP 32bit, AutoCad 2010, SPDS GraphiCS.
Вложения
Тип файла: dwg
DWG 2007
Эксперимент.dwg (709.7 Кб, 1613 просмотров)
zaabifff вне форума  
 
Непрочитано 11.05.2010, 15:34
#12
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Пробуй след. последовательность
1 - объединить все в блок
2 - изменить только 1 масштаб
3 - взорвать
4 - выделить полученные блоки и поменять масштаб обратно, при необходимости передвинуть.
Offtop: ps хотя не понимаю зачем это.
pss эти блоки изменить низзя
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 11.05.2010, 15:42
#13
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


что-то с блокам. вновь вставленный командой _insert блок Panel нормально преобразуется.
Вложения
Тип файла: dwg
DWG 2007
Эксперимент_review.dwg (127.7 Кб, 1592 просмотров)

Последний раз редактировалось Хмурый, 11.05.2010 в 15:48.
Хмурый вне форума  
 
Автор темы   Непрочитано 11.05.2010, 15:52
#14
zaabifff

проектировщик
 
Регистрация: 15.05.2009
Воронеж
Сообщений: 81


Спасибо вам.
Хмурый Осталось только понять, что с панелями. Но это уже поразбираюсь. Спасибо.
zaabifff вне форума  
 
Непрочитано 12.05.2010, 10:01
#15
atollon


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


А просто создать новый блок с тем же именем (В1) сложно?
__________________
Толстов Евгений
atollon вне форума  
 
Автор темы   Непрочитано 12.05.2010, 13:03
#16
zaabifff

проектировщик
 
Регистрация: 15.05.2009
Воронеж
Сообщений: 81


Создать не сложно, только как заменить?
zaabifff вне форума  
 
Непрочитано 12.05.2010, 13:07
#17
twilight


 
Регистрация: 17.10.2009
Сообщений: 1,108


Цитата:
Сообщение от zaabifff Посмотреть сообщение
Создать не сложно, только как заменить?
Если его в том же чертеже создавать то автокад скажет что "блок с таким именем уже есть, переопределить?" Подтвердите и все блоки с таким именем в чертеже переопределятся по новому.
twilight вне форума  
 
Автор темы   Непрочитано 12.05.2010, 13:15
#18
zaabifff

проектировщик
 
Регистрация: 15.05.2009
Воронеж
Сообщений: 81


Да нет, я, может, не совсем корректно выразился. Дело в том, что имя всех этих блоков - одно, а B1 и B2 - это атрибуты, назначенные Lisp-ом. Пример есть.
zaabifff вне форума  
 
Непрочитано 12.05.2010, 13:42
#19
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,921


Offtop: Блок один, атрибуты разные. Плохая, неясная постановка задачи.
Выбрать эти блоки по значению 'в1' атрибута, в свойствах всем разом поставить нужную длину.
engngr вне форума  
 
Непрочитано 12.05.2010, 15:03
2 | #20
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Из этой темы: Strip block of Dynamic Properties
Код:
[Выделить все]
(defun c:UnDynamic

    (   /
        _get_item
        _right
        _make_key
        _dynamic->static_block
        _get_locked
        _get_dynamic_inserts
        _main
    )

    (defun _get_item ( collection key / item )
        (vl-catch-all-apply
           '(lambda ( ) (setq item (vla-item collection key)))
        )
        item
    )

    (defun _right ( str n / len )
        (if (< n (setq len (strlen str)))
            (substr str (1+ (- len n)))
            str
        )
    )

    (defun _make_key ( collection prefix len / key )
        (   (lambda ( i pad )
                (while
                    (_get_item collection
                        (setq key
                            (strcat prefix
                                (_right
                                    (strcat pad (itoa (setq i (1+ i))))
                                    len
                                )
                            )
                        )
                    )
                )
                key
            )
            0
            (   (lambda ( pad )
                    (while (< (strlen pad) len)
                        (setq pad (strcat "0" pad))
                    )
                    pad
                )
                ""
            )
        )
    )

    (defun _dynamic->static_block ( blocks insert len )
        (vla-ConvertToStaticBlock
            insert
            (_make_key blocks "STATIC_" len)
        )
    )

    (defun _get_locked ( layers / locked )
        (vlax-for layer layers
            (if (eq :vlax-true (vla-get-lock layer))
                (setq locked (cons layer locked))
            )
        )
        locked
    )

    (defun _get_dynamic_inserts ( blocks / inserts )
        (vlax-for block blocks
            (vlax-for object block
                (if (eq "AcDbBlockReference" (vla-get-objectname object))
                    (if (eq :vlax-true (vla-get-isdynamicblock object))
                        (setq inserts (cons object inserts))
                    )
                )
            )
        )
        inserts
    )

    (defun _main ( document / blocks inserts locked len )
        (if
            (setq inserts
                (_get_dynamic_inserts
                    (setq blocks (vla-get-blocks document))
                )
            )
            (progn
                (foreach layer (setq locked (_get_locked (vla-get-layers document)))
                    (vla-put-lock layer :vlax-false)
                )
                (setq len (strlen (itoa (length inserts))))
                (foreach insert inserts
                    (_dynamic->static_block blocks insert len)
                )
                (foreach layer locked
                    (vla-put-lock layer :vlax-true)
                )
            )
        )
        (princ)
    )

    (_main (vla-get-activedocument (vlax-get-acad-object)))

)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.06.2011, 11:59
#21
Nike

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


Уважаемый VVA, спасибо за программу #20 !
А возможно ли внести изменение, позволяющее удалять динамические свойства из выбранных на чертеже блоков, а не у всех поголовно, как сейчас?
Nike вне форума  
 
Непрочитано 17.06.2011, 21:13
#22
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Уже внесено
BGBLDYN2A - Преобразовывает динамические блоки в анонимные
BGBLDYN2S - Преобразовывает динамические блоки в статические
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Как преобразовать динамический блок в обычный?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильнее заменить дин. блок в готовом чертеже. Juss_00 Динамические блоки 7 13.04.2011 09:01
помогите довести до "ума" динамический блок Composter Динамические блоки 1 03.07.2009 10:15
Мониторы LCD CRT Разное 94 17.06.2008 10:51
Как преобразовать Line в Spline Dim@ AutoCAD 3 20.10.2007 12:37
ПОМОГИТЕ, ГОРЮ! как внешний блок преобразовать в обычный вид Соня Динамические блоки 4 11.10.2004 20:23