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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Замена одного блока на другой средствами VBA

Замена одного блока на другой средствами VBA

Ответ
Поиск в этой теме
Непрочитано 23.11.2010, 19:47 #1
Замена одного блока на другой средствами VBA
НовичOK
 
Регистрация: 05.11.2010
Сообщений: 4

Доброго времени суток

Задача следующая: Замена всех вставок указанного блока на другой указанный блок.

Я пытался реализовать следующим образом: удаляем указанный блок, предварительно сохранив координаты точки привязки, и на его место вставляем другой указанный блок, изменив его точку привязки и имя.

Подскажите как это реализовать...
Просмотров: 4097
 
Непрочитано 23.11.2010, 20:13
#2
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Чего мудрить-то? Переименовываешь вхождение блока на нужное имя. Всё.
Евгений А. вне форума  
 
Непрочитано 23.11.2010, 21:03
1 | #3
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от НовичOK Посмотреть сообщение
Доброго времени суток

Задача следующая: Замена всех вставок указанного блока на другой указанный блок.

Я пытался реализовать следующим образом: удаляем указанный блок, предварительно сохранив координаты точки привязки, и на его место вставляем другой указанный блок, изменив его точку привязки и имя.

Подскажите как это реализовать...
Типа
Код:
[Выделить все]
Option Explicit

Public Sub ReplaceInserts(oldName As String, newName As String)
   Dim oSset As AcadSelectionSet
   Dim oEnt As AcadEntity
   Dim oblkRef As AcadBlockReference
    Set oSset = ThisDrawing.PickfirstSelectionSet
     oSset.Clear
      Dim typval(0 To 1) As Integer
        typval(0) = 0: typval(1) = 2
         Dim mode As Integer
          mode = acSelectionSetAll
         oSset.Select mode, , , typval, Array("INSERT", oldName)
     If oSset.Count > 0 Then
         For Each oEnt In oSset
           Set oblkRef = oEnt
         oblkRef.Name = newName
       Next
    End If
    
End Sub
Sub test()
Call ReplaceInserts("BlockA", "BlockB")
End Sub
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 25.11.2010, 16:09
#4
НовичOK


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


Олег (jr.) - спасибо вам большое
НовичOK вне форума  
 
Непрочитано 25.11.2010, 16:15
#5
gizmo_zx

Проектировщик ЭО,ЭМ, ЭОС
 
Регистрация: 18.07.2007
Нижний Новгород
Сообщений: 256
<phrase 1= Отправить сообщение для gizmo_zx с помощью Skype™


А можно с сохранением атрибутов?
т.е. блок1 (заменяемый) (атрибут1) заменить на блок2(тоже с атребут1)
Блок заменился, а атрибуты сохранились
gizmo_zx вне форума  
 
Непрочитано 25.11.2010, 16:15
#6
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от НовичOK Посмотреть сообщение
Олег (jr.) - спасибо вам большое
Не за что
Успехов
Олег (jr.) вне форума  
 
Непрочитано 25.11.2010, 16:29
#7
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Цитата:
Сообщение от gizmo_zx Посмотреть сообщение
А можно с сохранением атрибутов?
т.е. блок1 (заменяемый) (атрибут1) заменить на блок2(тоже с атребут1)
Блок заменился, а атрибуты сохранились
Может, кому пригодится.. Замена динблоков с сохранением значений общих параметров.. (vba)
Вложения
Тип файла: dvb _repl_dyn_bl.dvb (55.0 Кб, 110 просмотров)
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 25.11.2010, 16:48
#8
gizmo_zx

Проектировщик ЭО,ЭМ, ЭОС
 
Регистрация: 18.07.2007
Нижний Новгород
Сообщений: 256
<phrase 1= Отправить сообщение для gizmo_zx с помощью Skype™


Спасибо
gizmo_zx вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Замена одного блока на другой средствами VBA

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена одного блока другим Victor Готовые программы 37 18.08.2016 13:02
LISP: Переименование одного из вхождений блока Кочетков Андрей Готовые программы 23 13.02.2015 09:12
Синхронизация надписи в пределах одного блока атрибут мозг AutoCAD 5 19.07.2010 16:11
Замена цвета блока или блока на блок maximator Программирование 25 24.09.2009 16:02
Замена простого блока на динамический Vova Программирование 5 11.05.2009 22:02