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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA Excel>Autocad. Работают ли фильтры выбора SelectionSet?

VBA Excel>Autocad. Работают ли фильтры выбора SelectionSet?

Ответ
Поиск в этой теме
Непрочитано 28.12.2017, 12:59 #1
VBA Excel>Autocad. Работают ли фильтры выбора SelectionSet?
AlexV
 
Инженер
 
С-Пб
Регистрация: 02.10.2008
Сообщений: 3,685

Собственно, вопрос в названии.. При попытке из Excel выловить объекты ACAD_TABLE в активном документе Автокада - крокодил не ловится.. Ошибок вроде не выдает, но и набор не создается..

Код:
[Выделить все]
Option Explicit
Dim objApp As AcadApplication 
Dim objDoc As AcadDocument 
Sub main()
Dim objSelectionSet As AcadSelectionSet, 
On Error GoTo Err_Control 
Set objApp = GetObject(, "AutoCAD.Application") '
Set objDoc = objApp.ActiveDocument
Set objSelectionSet = SelectTable()
'*****
End Sub

Private Function SelectTable() As AcadSelectionSet
Dim objSelSet As AcadSelectionSet
Dim objSelCol As AcadSelectionSets
Dim intType(0) As Integer
Dim varData(0) As Variant
Set objSelCol = objDoc.SelectionSets
For Each objSelSet In objSelCol
 If objSelSet.Name = "123" Then
  objSelSet.Delete
  Exit For
 End If
Next
intType(0) = 0 
varData(0) = "ACAD_TABLE" '
objSelSet.Select acSelectionSetAll, , , intType, varData
Set SelectTable = objSelSet
End Function
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
Просмотров: 4674
 
Непрочитано 28.12.2017, 14:05
#2
Сергей812


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


Ответ - работают)
Сергей812 вне форума  
 
Автор темы   Непрочитано 28.12.2017, 14:15
#3
AlexV

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Ответ - работают)
Тогда следующий вопрос.. Какой косяк в моем случае мешает ощутить результаты этой работы? В автокаде данный код создает набор из нескольких элементов, в экселе - не создаеть..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 28.12.2017, 14:19
1 | #4
Сергей812


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


Написано же русским языком в справке к Select
FilterCodes -> Variant
FilterValues -> Variant
а вы подаете массив целочисленных аргументов и массив variant. В случае ошибки метод Select просто игнорирует эти дополнительные аргументы. Ну это уже к Аутодеску вопрос - почему не выдает ошибку.
Сергей812 вне форума  
 
Автор темы   Непрочитано 29.12.2017, 11:27
#5
AlexV

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Написано же русским языком в справке к Select
FilterCodes -> Variant
FilterValues -> Variant
а вы подаете массив целочисленных аргументов и массив variant. В случае ошибки метод Select просто игнорирует эти дополнительные аргументы. Ну это уже к Аутодеску вопрос - почему не выдает ошибку.
Однако, если объявлять intType(0) As Variant, varData(0) As Variant, то на строке objSelSet.Select acSelectionSetAll, , , intType, varData выдается ошибка "Недопустимый аргумент FilterType в Select" ..


Да и в справке, однако, написано:

Цитата:
FilterType

Integer; только для ввода; дополнительный
Код группы DXF, определяющий тип фильтра.

FilterData

Variant; только для ввода; дополнительный
Значение, для фильтрования.
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 29.12.2017, 11:43
#6
Кулик Алексей aka kpblc
Moderator

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


Спер из справки:
Код:
[Выделить все]
    Dim gpCode(0) As Integer
    Dim dataValue(0) As Variant
    gpCode(0) = 0
    dataValue(0) = "Circle"
    
    Dim groupCode As Variant, dataCode As Variant
    groupCode = gpCode
    dataCode = dataValue
    
    ssetObj.Select mode, corner1, corner2, groupCode, dataCode
Так не срабатывает?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.12.2017, 11:47
#7
AlexV

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Спер из справки:
Код:
[Выделить все]
    Dim gpCode(0) As Integer
    Dim dataValue(0) As Variant
    gpCode(0) = 0
    dataValue(0) = "Circle"
    
    Dim groupCode As Variant, dataCode As Variant
    groupCode = gpCode
    dataCode = dataValue
    
    ssetObj.Select mode, corner1, corner2, groupCode, dataCode
Так не срабатывает?
О, попробую, спасибо! Я, видимо, старую справку жую.. от древнего автокада...

Вроде дело пошло!
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!

Последний раз редактировалось AlexV, 29.12.2017 в 12:05.
AlexV вне форума  
 
Непрочитано 29.12.2017, 12:29
#8
Сергей812


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Dim groupCode As Variant, dataCode As Variant
совершенно точно - просто ввести две промежуточные переменные variant, и тогда интерпретатор VBA офиса воспримет их правильно)
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA Excel>Autocad. Работают ли фильтры выбора SelectionSet?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автокад2014. Полностью не работают фильтры слоев. Kirill2017 AutoCAD 8 16.06.2017 11:24
Solid Edge ST7 - не работают приоритеты выбора unoferito Другие CAD системы 1 30.05.2017 10:55
Фильтры выбора 2d полилиний в ssget kserg Программирование 1 08.01.2015 17:26
Не отображается ручка выбора Bogich AutoCAD 7 09.07.2014 11:00
Как работают координатные фильтры в меню переоперделения привязок? Alex-x-x-x AutoCAD 11 18.10.2013 11:45