SSet.SelectOnScreen Чтение объетоктов
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > SSet.SelectOnScreen Чтение объетоктов

SSet.SelectOnScreen Чтение объетоктов

Ответ
Поиск в этой теме
Непрочитано 02.09.2015, 10:45 #1
SSet.SelectOnScreen Чтение объетоктов
DmSok
 
Регистрация: 02.09.2015
Сообщений: 1

Здравствуйте! Подскажите как выделить все блоки типа AcDbBlockReference на выделенной области чертежа.
Есть пример выделения MText, как сделать также с блоком, содержащим атрибуты?

Код:
[Выделить все]
   Dim Entry As AcadObject
    Dim SSet As AcadSelectionSet
    Dim insPoint(2) As Double
    Dim TextObj(1000) As AcadMText
    Dim intNum As Integer
    Dim i As Integer
    Dim TextHeight(1000) As Double
    i = 0
   Dim gpCode(0) As Integer
   Dim dataValue(0) As Variant
      
   Load frmMTextStyle
        gpCode(0) = 0
        dataValue(0) = "AcDbBlockReference"
    Set SSet = acadDoc.SelectionSets.Add("Selection")
    
        SSet.SelectOnScreen gpCode, dataValue
    For Each Entry In SSet
        Set TextObj(i) = Entry
        MsgBox Entry.ObjectName
    Next Entry
    'For i = 0 To SSet.Count - 1
    '    TextHeight(i) = TextObj(i).height
    '    TextObj(i).StyleName = MTextStyleName
    '    TextObj(i).height = TextHeight(i)
    '    MsgBox TextObj(i).TextString
    'Next i
    acadDoc.SelectionSets.Item("Selection").Delete

Последний раз редактировалось Кулик Алексей aka kpblc, 02.09.2015 в 11:27.
Просмотров: 3362
 
Непрочитано 02.09.2015, 10:54
#2
Boxa

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


http://adn-cis.org/forum/index.php?t...11262#msg11262
Boxa вне форума  
 
Непрочитано 02.09.2015, 11:19
#3
baksconstructor


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


Цитата:
Сообщение от Boxa Посмотреть сообщение
http://adn-cis.org/forum/index.php?t...11262#msg11262
Это из .НЕТ , а надо из vba, вот:
Код:
[Выделить все]
 
 Dim intType(0) As Integer
 Dim varData(0) As Variant
......
Set objSelSet = ThisDrawing.SelectionSets.Add("Only")
 intType(0) = 0  'Фильтры выбора
 varData(0) = "INSERT" '"INSERT"             для выбора блока
 objSelSet.SelectOnScreen intType, varData
baksconstructor вне форума  
 
Непрочитано 02.09.2015, 12:14
#4
Boxa

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


Цитата:
Сообщение от baksconstructor Посмотреть сообщение
Это из .НЕТ , а надо из vba, вот:
А если внимательно прочитать сообщение по ссылке, то окажется что это COM / ActiveX, т.е. в VBA код метода будет выглядеть практически точно так же.
Boxa вне форума  
 
Непрочитано 02.09.2015, 12:20
#5
baksconstructor


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


Цитата:
Сообщение от Boxa Посмотреть сообщение
практически точно так же.
Практически, да не так. Это два совершенно разных языка.
baksconstructor вне форума  
 
Непрочитано 02.09.2015, 12:37
#6
Boxa

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


Цитата:
Сообщение от baksconstructor Посмотреть сообщение
Практически, да не так. Это два совершенно разных языка.
"А мужики-то не знают"(с).
Как думаете, если я лет 5 писал под автокад на vb6/vba, а последние два-три года пишу на .net, я понимаю о чем говорю?
Boxa вне форума  
 
Непрочитано 02.09.2015, 12:43
#7
baksconstructor


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


Цитата:
Сообщение от Boxa Посмотреть сообщение
я понимаю о чем говорю?
Наверное нет, если автор засунет себе это, то получит..... (нехорошее слово)
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.Interop.Common
Imports Autodesk.AutoCAD.Interop

Public Class Gal_Search_Blocks_In_Model
Public Class SearchBlock

Dim FT(0) As Short
Dim FD(0) As Object
FT(0) = 0
FD(0) = "INSERT"



А автору для выбора блоков с атрибутами надо добавить :
intType(1) = 66 'Фильтры выбора
varData(1) = 1 ' только с атрибутами

и не забыть изменить
Dim intType(1) As Integer
Dim varData(1) As Variant
baksconstructor вне форума  
 
Непрочитано 02.09.2015, 13:19
#8
Boxa

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


Цитата:
Сообщение от baksconstructor Посмотреть сообщение
Наверное нет, если автор засунет себе это, то получит..... (нехорошее слово)
Если бездумно себе куда то, что то совать, действительно нехорошее слово получится.
1. Какое отношение импорт библиотек и объявление классов имеет к методу на который я указал, а в частности на коды фильтрации которые предлагалось посмотреть в этом коде?.
2. Тип переменной, shot = int; object = variant , но это не имеет отношения к теме, т.к. у автора в коде стоят правильные типы и автор, ИМХО , способен соотнести эти типы.

Но Вам, baksconstructor, конечно виднее.
Boxa вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > SSet.SelectOnScreen Чтение объетоктов



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильное чтение результатов расчета динамики. E_note Лира / Лира-САПР 3 31.03.2014 11:02
LISP. Чтение величины выделенного параллельного размера и запись в его текстовую строку (свойства этого размера). Джаз LISP 8 20.08.2012 23:42
Чтение более ранних версий? Anderseen Другие CAD системы 3 10.01.2010 21:56
чтение данных из файла Александер Программирование 6 08.09.2005 10:24