|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
17.08.2011, 17:56 | #1 | |
Замена динамических блоков
инженер-конструктор
Минск
Регистрация: 29.05.2004
Сообщений: 381
|
||
Просмотров: 29656
|
|
||||
цвет примитивам в составе определения блока назначай по слою. размещай вхождение блока на соответствующем слое - получишь примитивы нужного цвета и не придётся лепить предлагаемые тобою же костыли - достаточно одного определения грамотно продуманного блока.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,856
|
Или ПоБлоку? Андрей, единого рецепта я пока не нашел
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Ну или так
- Иосиф Виссарионович, нашли вашего двойника! - Расстрелять.. - А может просто усы сбрить? - Ну, или так
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
инженер-конструктор Регистрация: 29.05.2004
Минск
Сообщений: 381
|
Каюсь, неполно поставил задачу: примитивы кроме разного цвета имеют еще определенный набор расширенных свойств(использую Architectural Desktop). Эти свойства не являются постоянной величиной, а меняются в зависимости от трансформации динамического блока
|
|||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Serge_Y, может лучше выложить чертеж с блоками (исходный с уже заданными параметрами и новый, на который надо заменить) ну так для большей наглядности (желательно файл версии не старше ACAD2008)
__________________
cadtools |
|||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Serge_Y, что-то я навертел походу, но вроде работает, попробуй так
Код:
__________________
cadtools |
|||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Мой код больше потому что блоки указывает пользователь непосредственно на чертеже, а это и доп. функция (_tdg-get-object-byselect) и обработка корректности исходных данных.
(setq new_blk (vla-Insertblock model_space (vla-get-InsertionPoint old_blk) new_name_blk 1 1 1 0)) А если угол поворота текущего из заменяемых блоков будет отличаться от нуля? (ssnamex (ssget "_X" '((0 . "INSERT")))) Вы перебирает все блоки на чертеже (ssget "_X" (list (cons 0 "INSERT") (cons 2 (strcat name_old_blk ",`*U#*")))) у меня только указанный блоки и все динамические. А если пользователь по ошибке укажет не динамический блок? Когда кажется креститься надо
__________________
cadtools |
|||
|
||||
инженер-конструктор Регистрация: 29.05.2004
Минск
Сообщений: 381
|
Спасибо! А можно сделать так, чтобы в процессе работы лиспа заменялись не все блоки "2" в чертеже, а только конкретно мною выбранные?
И второй момент, после замены блоков, повторно вставленный в чертеж блок "1" странно модифицируется, т.е. попытка его стретчить в вертикальном направлении приводит к тому, что растягивается только первая линия. |
|||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Цитата:
строку Код:
Код:
Цитата:
__________________
cadtools |
|||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Цитата:
Укажите новый блок: - указываем одно вхождение нового блока В ответ на запрос Select objects: нужно выбрать (рамкой или по одному или если надо все - то набрать _all) те блоки (несколько вхождений блоков), которые надо заменить на новый блок и нажать Enter
__________________
cadtools |
|||
|
||||
Делал для себя и сам давно пользуюсь такой программой. Работает по принципу matchprop - указываем образец и заменяем на него указываемые блоки. При этом копируются свойства заменяемого блока и значения и свойства атрибутов. Помню при такой программной замене был какой-то глюк, если не соблюсти определенный порядок передачи свойств, приходилось отлавливать и править.
Последний раз редактировалось Do$, 26.09.2011 в 10:17. |
||||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Цитата:
__________________
cadtools |
|||
|
||||
Регистрация: 25.09.2011
Сообщений: 3
|
Добрый день!
Я не программист, но с удовольствием стараюсь пользоваться возможностями Автокада, для того чтобы упростить себе жизнь при проектировании. Программку по замене динамических блоков от TararykovDG с удовольствием юзаю, но заметил некоторую необходимость в сохранении атрибутов (именно атрибутов, как это понимается в Акаде обычному пользователю не программисту). На данный момент данная программка хорошо меняет один динамический блок на другой с сохранением внутренних атрибутов блока, таких как "visible", но значения атрибутов введенных пользователем(к примеру "маркировка оборудования" или "мощность" или "место установки") после замены автоматически устанавливаются значения по умолчанию для данных атрибутов. Прошу вас не могли бы вы немного доработать эту программку ? |
|||
|
||||
Программа из #16 не подойдет?
|
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
подсчет динамических блоков | AAI | Программирование | 37 | 25.06.2012 15:05 |
Тормозит команда расчленения набора блоков | batmax | Программирование | 4 | 31.08.2010 17:37 |
Замена названий блоков, типов линий | АлексЮстасу | Программирование | 9 | 04.06.2010 21:51 |
Замена текстовых блоков | Sputnik-e | AutoCAD | 2 | 11.09.2009 09:22 |
Библиотека динамических блоков | Коробейников Алексей | Динамические блоки | 2 | 05.04.2005 16:08 |