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

Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > ПО от CSoft > Пример VBA-кода, обрабатывающий объекты СПДС...

Пример VBA-кода, обрабатывающий объекты СПДС...

Ответ
Поиск в этой теме
Непрочитано 28.12.2016, 16:48 #1
Пример VBA-кода, обрабатывающий объекты СПДС...
AlexV
 
Инженер
 
С-Пб
Регистрация: 02.10.2008
Сообщений: 3,685

Товарищи ученые, а поделитесь простеньким работающим примером на VBA под 64b автокад, коий бы делал что либо с объектами СПДС от CS... Сто лет не программировал, от момента перехода на платформу 64 бит, углючившего до смерти vba в автокадах до 2014, - и вот свалилось на меня счастье в виде A2016..

Смутно помню, что таки надо подключить библиотеку, вставил галку в MechaniCS COM 2.0 type...

Вот к примеру код, который позволяет после выбора примитива автокада рассмотреть его свойства в окне locals.

Код:
[Выделить все]
Dim obj As AcadEntity, varPoint As Variant, strPrompt As String
On Error Resume Next
strPrompt = "Выберите объект..."
ThisDrawing.Utility.GetEntity obj, varPoint, strPrompt
Stop
End Sub
А как аналогично достучаться до объекта СПДС?

есть у меня отсюда пример вроде из этой оперы:

Код:
[Выделить все]
Dim pServer As McCOM2.server
Set pServer = CreateObject("McCOM2.Server")
'' или Set pServer = GetObject("", "McCOM2.Server")
Dim pObject As McCOM2.Object
Set pObject = pServer.Select("Выбери объект, True).Item(0)
Но - при выполнении выдается ошибка на строке "Set pServer" в обоих вариантах ("Automation error %1 is not a valid Win32 application.") ...

Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 74
Размер:	31.9 Кб
ID:	181528  

__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
Просмотров: 6709
 
Непрочитано 29.12.2016, 01:21
#2
Сергей812


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


Как пишет Александр Ривилис
Цитата:
Если для объекта есть энайблер (или чертеж загружен в AutoCAD или вертикальное приложение при загруженном приложении создававшем объекты), то он перестает быть прокси и становится обычным объектом. Соответственно его класс перестает быть AcDbProxyObject (или AcDbProxyEntity для графических примитивов).
Сергей812 вне форума  
 
Автор темы   Непрочитано 29.12.2016, 09:40
1 | 1 #3
AlexV

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Как пишет Александр Ривилис
Александр Ривилис пишет очень хорошо - зачитаешься! Он, можно сказать, Пушкин программирования под автокад! Правда, VBA - это для него слишком дохлая кобыла, он другие языки использует..
Только что с того, что "... он перестает быть прокси и становится обычным объектом" - как с этого объекта снять(изменить) свойства?

----- добавлено через ~49 мин. -----
О! сюда надо было ходить...
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV на форуме  
 
Непрочитано 30.12.2016, 22:53
1 | 1 #4
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Саня, ты бы уж лучше хотя бы на vb.net перешёл.
Там и возможностей по более и сорцев с библиотеками до фига.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 31.12.2016, 08:01
#5
MCAD


 
Блог
 
Регистрация: 05.01.2005
Сообщений: 1,694


Цитата:
Сообщение от AlexV Посмотреть сообщение
и вот свалилось на меня счастье в виде A2016..
AlexV , пересел со своего седьмого СПДС'а :-) ?
MCAD вне форума  
 
Непрочитано 31.12.2016, 15:06
1 | #6
doctorraz

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


в случае с спдс и вебе энаблер враг номер один...
с ним одним, доступа к сом нету, если он стартует перед спдс'ом, то сом то ж недоступен..
__________________
Мастерская СПДС

Последний раз редактировалось doctorraz, 31.12.2016 в 15:36.
doctorraz вне форума  
 
Непрочитано 31.12.2016, 23:14
#7
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от doctorraz Посмотреть сообщение
в случае с спдс и вебе энаблер враг номер один...
с ним одним, доступа к сом нету, если он стартует перед спдс'ом, то сом то ж недоступен..
А теперь еще раз, но по-русски и с использованием нормальных названий продуктов
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.01.2017, 13:14
4 | 1 #8
doctorraz

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А теперь еще раз,
если ты считаешь, что кому-то это поможет...)))
----------------------------
в случае с СПДС CS и VBA, mcsEnabler, враг номер один...
запуск mcsEnabler.dbx дает АК доступ к свойствам объектов СПДС, более того средствами Lisp эти свойства можно получить, но
средствами VBA доступ к объектам СПДС, mcsEnabler не обеспечит (не будет создан McCOM)
более того в случае запуска mcsEnabler перед движком СПДС (например запуск АК двойным кликом по файлу чертежа) доступ к McCOM будет невозможен, хоть СПДС и будет запущен.. ошибка "Automation error %1 is not a valid Win32 application."
поэтому настоятельно рекомендую переименовывать файл mcsEnabler c:\Program Files\CSoft\СПДС GraphiCS 10\mgХХХ\mcsEnabler.dbx
или менять ему расширение.
т.к. при установленном СПДС он не нужен. и может вызывать другие сбои в работе СПДС (перестают работать команды СПДС, при работе с подшивками АК и пр.)
---------------
С НГ всех!!
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 01.01.2017, 13:48
#9
Кулик Алексей aka kpblc
Moderator

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


Считаю, что поможет Ситуации бывают разные )))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.01.2017, 15:13
1 | 1 #10
doctorraz

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


уж писано про это сто раз... пошто тему СПДС VBA закрыли?
годная была тема
все б одном месте собрать.. только суть типа фака вопрос ответ и без флуда...
а в свете последних событий более чем актуально....
автодеск отказал в продлении подписок и покупке новых лицензий АК минимум одной крупной корпорации рф... выдвинув бредовые условия и отмазки.. почему нет...
пруфа не будет...
__________________
Мастерская СПДС
doctorraz вне форума  
 
Автор темы   Непрочитано 09.01.2017, 00:07
#11
AlexV

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


Цитата:
Сообщение от MCAD Посмотреть сообщение
AlexV , пересел со своего седьмого СПДС'а :-) ?
Ну, тыкскзать, готовлюсь к этому событию!

Цитата:
Сообщение от DEM Посмотреть сообщение
Саня, ты бы уж лучше хотя бы на vb.net перешёл.
Там и возможностей по более и сорцев с библиотеками до фига.
Ну, це ж надо всякия визуал студии устанавливать.. N лет назад сие было не проблема, каждый сам себе админ, а сейчас обращайся в ИТ, доказывай, что оно надо инженегру-конструктору.. Я ж не планирую ниче глобального, так, чуть ускорить свою локальную работу. Для начала - тупо в ВРС-ке - таблице СПДС (автоматический отчет по объектам) - пройтись по столбцам, скрыть столбцы с "0", открыть с не "0". Задачка вроде плевая.. Ну, может быть, сделать тупую ведомость деталей - задал область чертежа, получил табличку (у меня она есть, тож автоматический отчет, но - во-первых, состоит из 2-х частей - при копировании приходится область 2 раза задавать, во-вторых, изображения стержней приходится вставлять "поверх" табличек, а длины элементов стержней - ну, не всех, а самых простых, - "г", "П", шпилек, хомутов - все "автоматом" работает). В дальнейшем, возможно, автоматизировать раскладку арматуры для некоторых конструкций. К примеру, есть схема колонн, раскладки балок КМ, + контур плиты перекрытия - на основании этого разложить арматуру (ну, ясный перец, для начала погонажом - через площадь), разложить "П"-шки по периметру/граням проемов + усиление оных, стержни по балкам КМ с заданным шагом, отбортовку по колоннам и граням перекрытия (при наличии). Создать разрезы, узлы, автоматом пронумеровать арматуру по заданному алгоритму (ну там, диаметр-длина-форма стержня - а то пока приходится через табличку отчета, вручную..), отмаркировать все это добро... Ну, короче, что бы то, на что сейчас тратишь почти весь день, лепилось легким нажатием руки на БКК!

В принципе, все кажется реальным - было бы время на писанину кода.

Цитата:
Сообщение от doctorraz Посмотреть сообщение
в случае с спдс и вебе энаблер враг номер один...
с ним одним, доступа к сом нету, если он стартует перед спдс'ом, то сом то ж недоступен..
Да, это я уже понял из темы "СПДС и VBА".
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV на форуме  
 
Непрочитано 09.01.2017, 11:12
#12
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Цитата:
Для начала - тупо в ВРС-ке - таблице СПДС (автоматический отчет по объектам) - пройтись по столбцам, скрыть столбцы с "0", открыть с не "0". Задачка вроде плевая.. Ну, может быть, сделать тупую ведомость деталей - задал область чертежа, получил табличку (у меня она есть, тож автоматический отчет, но - во-первых, состоит из 2-х частей - при копировании приходится область 2 раза задавать, во-вторых, изображения стержней приходится вставлять "поверх" табличек, а длины элементов стержней - ну, не всех, а самых простых, - "г", "П", шпилек, хомутов - все "автоматом" работает).
Это можно и средствами таблицы сделать, на фиг vb сюда подключать...
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 09.01.2017, 12:08
#13
AlexV

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


Цитата:
Сообщение от DEM Посмотреть сообщение
Это можно и средствами таблицы сделать, на фиг vb сюда подключать...
И как? Тут, к примеру, MCAD подтвердил мне, что таки нельзя..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV на форуме  
 
Непрочитано 09.01.2017, 12:30
#14
doctorraz

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


отчеты на vb не тормозят АК, ну и можно реализовать абсолютно любой алгоритм...
Кстати если VB, то и родные таблицы АК взлетят, какая разница, что заполнять.
скрывать строки по условию, таки без проблем )) и без vba
Давай начни уже чегонить кодить
__________________
Мастерская СПДС

Последний раз редактировалось doctorraz, 09.01.2017 в 12:36.
doctorraz вне форума  
 
Автор темы   Непрочитано 09.01.2017, 13:22
#15
AlexV

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


Цитата:
Сообщение от doctorraz Посмотреть сообщение
отчеты на vb не тормозят АК, ну и можно реализовать абсолютно любой алгоритм...
Кстати если VB, то и родные таблицы АК взлетят, какая разница, что заполнять.
Давай начни уже чегонить кодить
Ну, меня всеж таки привлекает двусторонняя связь СПДС таблицы с объектами.. Не хочецца оную терять. Хотя для большого количества объектов тормоза, конечно, весь кайф обламывают. Один хрен приходится при редактировании автоотчеты отключать (иначе кажный сдвиг/простановка выноски подвешивают акад), потом включать... Может, и правда удобнее программно новые таблички сочинить, чем старые обновлять.

Цитата:
Сообщение от doctorraz Посмотреть сообщение
скрывать строки по условию, таки без проблем )) и без vba
Давай начни уже чегонить кодить
Строки - да. А столбцы - низзя..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV на форуме  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > ПО от CSoft > Пример VBA-кода, обрабатывающий объекты СПДС...

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Параметрические объекты СПДС для армирования ЖБК swell{d} ПО от CSoft 897 вчера 22:53
ACAD+СПДС Железобетон (nanoCAD СПДС Железобетон) swell{d} Прочее. Программное обеспечение 104 04.12.2015 09:30
Проблемы при установке СПДС 7 на AutoCAD 2009 Win7 64 bit Baurzhan_971 ПО от CSoft 8 14.11.2015 21:38
Как задать в скрипте чтобы не отображались некоторые объекты (СПДС) LynxM Прочее. Программное обеспечение 7 07.03.2013 04:22
СПДС объекты не закрашены Paveldoc Прочее. Программное обеспечение 2 22.08.2012 10:35