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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > СПДС и VBA

СПДС и VBA

Закрытая тема
Поиск в этой теме
Непрочитано 30.03.2009, 11:56
СПДС и VBA
LAPA
 
Регистрация: 30.03.2009
Сообщений: 5

Возможно ли с помощью VBA вытащить параметры объектов, которые созданы в СПДС?
Просмотров: 14353
 
Непрочитано 17.07.2012, 10:16
#21
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Цитата:
Сообщение от MCAD Посмотреть сообщение
Этот хелп актуален для акад 2011 и спдс 6?
crosandr вне форума  
 
Непрочитано 23.02.2015, 07:50
#22
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,040
<phrase 1=


Цитата:
Сообщение от MCAD Посмотреть сообщение
'В методе Query первый параметр - одно или несколько (через точку с запятой) имён классов.
'Второй параметр - имена и значения свойств. Если он определён, будут выбраны только те
'объекты, в которых есть такие свойства, а их значения совпадают с введёнными в Query.
'
'Значения параметров можно посмотреть в скрипте объекта:
' strTheName = "19425-74";
' strTheType = "Profile";
' strTheSubType = "I-Shape";

Можно ли с помощью Query обрабатывать область значений?
Set spdsobjects = server.Query("McCOM2.SymFrame", "Inv = SEARCHINV") вот стандартная запись, а я думал над вот таким
Set spdsobjects = server.Query("McCOM2.SymFrame", "Inv > min" и "Inv < min")

----- добавлено через ~4 ч. -----
или подскажите как правильно добавить элементы в коллекцию с помощью цикла?
Konstruktiv54 вне форума  
 
Непрочитано 26.02.2015, 13:24
#23
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,299
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от MCAD Посмотреть сообщение
Для кого писали коментарии???

'В методе Query первый параметр - одно или несколько (через точку с запятой) имён классов.
'Второй параметр - имена и значения свойств. Если он определён, будут выбраны только те
'объекты, в которых есть такие свойства, а их значения совпадают с введёнными в Query.
'
'Значения параметров можно посмотреть в скрипте объекта:
' strTheName = "19425-74";
' strTheType = "Profile";
' strTheSubType = "I-Shape";

Общий случай получения свойств с объектов:
подскажите пожалуйста есть ли возможность одним Query, сразу собрать объекты со всего документа (модели и листов) в коллекцию
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 16.03.2015, 20:36
#24
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,299
Отправить сообщение для doctorraz с помощью Skype™


Как работать с классом BOM??
хотя бы как его получить?
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 31.03.2015, 22:26
#25
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,299
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от doctorraz Посмотреть сообщение
подскажите пожалуйста есть ли возможность одним Query, сразу собрать объекты со всего документа (модели и листов) в коллекцию
ССР
пока делаю так перебором листов и модели (корявенько), но работает
Код:
[Выделить все]
Sub МСсборСоВсехЛистов(SPDS, МаркерСпец)
    Dim Layouts As AcadLayouts, Layout As AcadLayout
    Dim МаркерСпецTemp As McCOM2.ObjectsCollection
    Dim АдресМодели As String
'----------------------------------
'    ThisDrawing.SetVariable "regenmode", 0
    Set Layouts = ThisDrawing.Layouts
    АдресМодели = ThisDrawing.ActiveLayout.Name '  запоминаем лист где находимся
    Set МаркерСпец = SPDS.Query(ОбъектПоиска, УсловияПоиска)  'собираем с текущего
    For Each Layout In Layouts
'    добавить
        If Layout.Name <> АдресМодели Then 'проверочка что с него начали, что б с него не собирать
            ThisDrawing.ActiveLayout = ThisDrawing.Layouts.Item(Layout.Name)
            Set МаркерСпецTemp = SPDS.Query(ОбъектПоиска, УсловияПоиска)
            If МаркерСпецTemp.Count > 0 Then Set МаркерСпец = МаркерСпец.Or(МаркерСпецTemp) 'разобраться как добавить к коллекции
        End If
    Next Layout
    ThisDrawing.ActiveLayout = ThisDrawing.Layouts.Item(АдресМодели) '    вернемся откуда пришли
'    ThisDrawing.SetVariable "regenmode", 1
End Sub
Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
или подскажите как правильно добавить элементы в коллекцию с помощью цикла?
тут тебе и цикл добавления
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 12.01.2016, 12:32
#26
100рож

Инженер ПГС
 
Регистрация: 18.01.2013
Самара
Сообщений: 110


Добрый день.
Понадобилось мне из скрипта на VBA обратиться к объекту СПДС - SPDSFORMAT (имеется в виду "рамка"). Конкретно - нужно вытянуть формат рамки. Рамка находится в пространстве листа на первой вкладке. Так как я вообще не программист, то возникли следующие вопросы.Win8.1x64, AutoCAD 2014, СПДС 8.1.
  1. На строке "Set spdsApplication = CreateObject("McCOM2.Server")" появляется ошибка (см. прикрепленный рисунок). Библиотека McCOM2 подключена.
  2. Хелп к McCOM2 не работает: файл открывается, присутствует указатель, но ни одна статья не открывается.
  3. Как на VBA выполнить переключение между пространствами модели и листа и сделать активной определенную вкладку?
Может быть, у кого-нибудь есть мысли по этому поводу?
Миниатюры
Нажмите на изображение для увеличения
Название: ошибка.jpg
Просмотров: 79
Размер:	184.4 Кб
ID:	163479  
100рож вне форума  
 
Непрочитано 12.01.2016, 12:50
2 | #27
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,299
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от 100рож Посмотреть сообщение
1.На строке "Set spdsApplication = CreateObject("McCOM2.Server")" появляется ошибка (см. прикрепленный рисунок). Библиотека McCOM2 подключена.
СПДС должен быть запущен родным ярлыком (если только не знаете, как и что добавить в автозагрузку)
Если запустился энаблер (mcsEnabler.dbx, ), то до СОМ не достучаться, советую вообще переименовать этот файл (во избежание)
Цитата:
Сообщение от 100рож Посмотреть сообщение
2.Хелп к McCOM2 не работает: файл открывается, присутствует указатель, но ни одна статья не открывается.
а если попробовать открывать его не из архива? и не сетевого ресурса, да еще в свойствах файла нажать разблокировать?
Цитата:
Сообщение от 100рож Посмотреть сообщение
Как на VBA выполнить переключение между пространствами модели и листа и сделать активной определенную вкладку?
чем не устраивает этот код перебора модели/листов?
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 12.01.2016, 14:11
#28
100рож

Инженер ПГС
 
Регистрация: 18.01.2013
Самара
Сообщений: 110


1, 2. Заработало, огромное спасибо!
3. Дело в том, что мне нужен не перебор, а указание на конкретную (первую) вкладку. По недосмотру в файле могут присутствовать другие вкладки и рамки (в том числе, в пространстве модели), но мне нужна только одна рамка, находящаяся на первой вкладке пространства листа. Для Excell есть метод .Activate. В Акаде несколько по-другому:
ThisDrawing.ActiveLayout = ThisDrawing.Layouts.Item(Номер_необходимой_вкладки).
С этим разобрался.
Теперь появились еще две три сложные задачи.
  1. Открыть/закрыть файл, соответстветствующий определенному листу подшивки. В хелпе автодеска ничего по этому поводу не нашел.
  2. Запустить Excell, создать книгу и заполнить ячейки данными, собранными с элементов подшивки и рамок СПДС.
  3. Вытащить свойство "Формат" из объекта "Рамка". С помощью шаблона отчета в таблице СПДС выяснил, что свойство так и называется "Format", но через ".Properties" оно не вытаскивается. Как быть?

Про вторую задачу пока читаю, вроде решение есть.

Последний раз редактировалось 100рож, 12.01.2016 в 14:38.
100рож вне форума  
 
Непрочитано 12.01.2016, 15:00
#29
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,299
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от 100рож Посмотреть сообщение
Открыть/закрыть файл, соответстветствующий определенному листу подшивки. В хелпе автодеска ничего по этому поводу не нашел.
по поводу доступа к свойствам подшивки и всего, что ее касается даже ГУРУ ДВЖ говорят, что-то невнятное.
Цитата:
Сообщение от 100рож Посмотреть сообщение
Вытащить свойство "Формат" из объекта "Рамка". С помощью шаблона отчета в таблице СПДС выяснил, что свойство так и называется "Format", но через ".Properties" оно не вытаскивается. Как быть?
ОБЪЕКТРАМКА!Format.Raw
или
ОБЪЕКТРАМКА("Format").Raw
================
но на форматах которые распознаны как пользовательские получишь косяк (например лист регистрации изменений)
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 13.01.2016, 09:53
#30
100рож

Инженер ПГС
 
Регистрация: 18.01.2013
Самара
Сообщений: 110


Цитата:
Сообщение от doctorraz Посмотреть сообщение
ОБЪЕКТРАМКА!Format.Raw
или
ОБЪЕКТРАМКА("Format").Raw
Это точно синтаксис VBA?
100рож вне форума  
 
Непрочитано 13.01.2016, 10:10
#31
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,299
Отправить сообщение для doctorraz с помощью Skype™


точно
__________________
Мастерская СПДС
doctorraz вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > СПДС и VBA

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СПДС Graphics. Интеграция с AutoCAD. Нет панелек СПДС Sn4ke ПО от CSoft 40 31.07.2020 11:52
Изменения системы СПДС. ГОСТ 21.101-97 и не только! Red_line Архитектура 19 05.08.2010 18:01
Спдс 5 сетевой сервер bonus AutoCAD 2 16.01.2009 11:47
Копирование данных для спецификаций из выносок СПДС в таблицу из мтекстов Red Nova Программирование 177 08.12.2008 11:35