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

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

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

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

Добрый день всем гуру. Сильно не ругайте только, я пытаюсь разбираться в 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.
Просмотров: 3210
 
Непрочитано 06.04.2018, 06:45
#2
Boxa

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


Цитата:
Сообщение от 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
Сообщений: 24


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


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


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка рисунка (изображения) в ячейку таблицы AUTOCAD 2006 Геннадий+ AutoCAD 7 25.04.2022 15:12
Сумма атрибутов в ячейку таблицы 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