dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

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

VBA, сумма атрибутов и вставка в ячейку

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 06.04.2018, 02:22 #1
VBA, сумма атрибутов и вставка в ячейку
zloy1653
 
Регистрация: 27.11.2017
Сообщений: 9

zloy1653 вне форума Вставить имя

Добрый день всем гуру. Сильно не ругайте только, я пытаюсь разбираться в VBA, на просторах интернета нашел создание поля на VBA, подкорректировал его, получил поле, ссылающееся на атрибут блока, вставляю его мтекстом в пространство модели. теперь вопрос:
1. как просуммировать значения атрибутов, если блоков несколько?
2. как вставить полученный результат в ячейку произвольной таблицы? при этом, если указать точку за ее пределами, должен вставиться мтекст с суммарным значением атрибутов.
Вот то, что у меня на данный момент получилось.

Код:
[Выделить все]
Sub AddField()
Dim ss As AcadSelectionSet
Dim field As String
Dim sss As String

Dim objEnt As AcadEntity
Dim objBRef As AcadBlockReference
On Error Resume Next
ThisDrawing.SelectionSets("SS").Delete
Set ss = ThisDrawing.SelectionSets.Add("SS")
ss.SelectOnScreen
For Each objEnt In ss
    Set objBRef = objEnt
     att = objBRef.GetAttributes
        For i = LBound(att) To UBound(att)
            If att(i).TagString = "Количество" Then
           field = att(i).ObjectID
            End If
        Next
Next

pp = ThisDrawing.Utility.GetPoint(, "Точка вставки")
  Dim mtextObj As AcadMText
  Dim width As Double
  Dim textString As String
    textString = "%<\AcObjProp Object(%<\_ObjId " & field & ">%).TextString>%"
  Set mtextObj = ThisDrawing.ModelSpace.AddMText(pp, width, textString)

ThisDrawing.Regen acActiveViewport
End Sub

Последний раз редактировалось Кулик Алексей aka kpblc, 06.04.2018 в 07:27.
Просмотров: 1190
 
Непрочитано 06.04.2018, 06:45
#2
Boxa

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


Цитата:
Сообщение от zloy1653 Посмотреть сообщение
Добрый день всем гуру. Сильно не ругайте только, я пытаюсь разбираться в VBA, на просторах интернета нашел создание поля на VBA, подкорректировал его, получил поле, ссылающееся на атрибут блока, вставляю его мтекстом в пространство модели. теперь вопрос:
1. как просуммировать значения атрибутов, если блоков несколько?
2. как вставить полученный результат в ячейку произвольной таблицы? при этом, если указать точку за ее пределами, должен вставиться мтекст с суммарным значением атрибутов.
Вот то, что у меня на данный момент получилось.

Sub AddField()
Dim ss As AcadSelectionSet
Dim field As String
Dim sss As String

Dim objEnt As AcadEntity
Dim objBRef As AcadBlockReference
On Error Resume Next
ThisDrawing.SelectionSets("SS").Delete
Set ss = ThisDrawing.SelectionSets.Add("SS")
ss.SelectOnScreen
For Each objEnt In ss
Set objBRef = objEnt
att = objBRef.GetAttributes
For i = LBound(att) To UBound(att)
If att(i).TagString = "Количество" Then
field = att(i).ObjectID
End If
Next
Next

pp = ThisDrawing.Utility.GetPoint(, "Точка вставки")
Dim mtextObj As AcadMText
Dim width As Double
Dim textString As String
textString = "%<\AcObjProp Object(%<\_ObjId " & field & ">%).TextString>%"
Set mtextObj = ThisDrawing.ModelSpace.AddMText(pp, width, textString)

ThisDrawing.Regen acActiveViewport
End Sub
Нда... написал развернутый ответ и стер его.
Было подозрение, что я где то это уже видел, полез проверять... и точно, вот ссылка на тему: https://forum.dwg.ru/showpost.php?p=1468687&postcount=5 и код Вы переписали от туда практически один в один, и выдаете за то, что у Вас получилось. Желание помогать отпало.

ЗЫ.
Полную цитату Вашего поста вставил к себе намеренно, что бы сохранить первозданный вид.
__________________
_бложиг
Boxa на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 06.04.2018, 08:13
#3
zloy1653


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


Boxa, я и не претендую на уникальность кода. Видимо, не так преподнес информацию. Я написал, что код нашел, и добавил, что только пытаюсь разбираться в этом всем. В исходном коде результат операции - блок с полем, ссылающимся на атрибут, я вывел результат в мтекст, только не могу нигде найти, как связать результат с ячейкой таблицы. Поэтому прошу помощи. Ни в коем случае не хвастаюсь своей "разработкой".
zloy1653 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 06.04.2018, 08:44
#4
trir


 
Регистрация: 18.12.2010
Сообщений: 2,918


Цитата:
только не могу нигде найти, как связать результат с ячейкой таблицы
элементарно
trir на форуме вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA, сумма атрибутов и вставка в ячейку

РЕВЕРС. Автоматическая пакетная печать множества рамок (форматов) из пространства модели и листов
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма атрибутов в ячейку таблицы zloy1653 LISP 2 18.03.2018 14:06
Сумма значений атрибутов блока ILMIR AutoCAD 8 20.10.2014 21:44
Программная вставка блока с атрибутами в таблицу. Как сохранить установленные значения атрибутов? Кулик Алексей aka kpblc Программирование 8 22.07.2010 15:01
Извлечение атрибутов блока и вставка атрибутов в формулу andery AutoCAD 38 15.06.2009 02:39
Вставка рисунка (изображения) в ячейку таблицы AUTOCAD 2006 Геннадий+ AutoCAD 5 18.12.2008 22:13

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||