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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > VB.net (новичку) запись атрибута в блок

VB.net (новичку) запись атрибута в блок

Ответ
Поиск в этой теме
Непрочитано 18.06.2014, 17:52 #1
VB.net (новичку) запись атрибута в блок
gizmo_zx
 
Проектировщик ЭО,ЭМ, ЭОС
 
Нижний Новгород
Регистрация: 18.07.2007
Сообщений: 256

Добрый день.
Пытаюсь потыкаться в VB.net.
Застрял на записи атрибутов в блок.
Т.е. есть известное имя блока («1»), имя атрибута («a»), значение (“0”).
Подсобите пожалуйста куском кода или цело программкой для записи значения в атрибут блока.
Без всяких дополнительных проверок. Блок в сдавлен в модель, и имеет атрибут «a».
Просмотров: 2997
 
Непрочитано 18.06.2014, 18:08
1 | #2
Boxa

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


Код под AutoCAD .NET API
Код:
[Выделить все]
Dim acBlock As BlockReference = CType(acTrans.GetObject(qwerty.id, OpenMode.ForRead), BlockReference)
For Each idAtt As ObjectId In acBlock.AttributeCollection
	If idAtt.ObjectClass.Name = RXObject.GetClass(GetType(AttributeReference)).Name Then
		Dim attRef_11 As AttributeReference = acTrans.GetObject(idAtt, OpenMode.ForRead)
		If attRef_11.Tag = "a" Then
			attRef_11.UpgradeOpen()
			attRef_11.TextString = 0.ToString
			attRef_11.DowngradeOpen()
		End If
	End If
Next
код не оптимален , но вроде работает.

Последний раз редактировалось Boxa, 19.06.2014 в 11:28. Причина: код немного поправил
Boxa вне форума  
 
Непрочитано 19.06.2014, 10:36
1 | #3
kikoko


 
Регистрация: 12.12.2004
***
Сообщений: 6


Если я понял, попробуйте и это для атрибутов:
Код под AutoCAD ActiveX API
Код:
[Выделить все]
#1
	Dim BlockObj As AcadBlockReference
        Dim varAttributes As Object
            	varAttributes = BlockObj.GetAttributes
		varAttributes(0).TextString = "0"

#2
	Dim BlockObj As AcadBlockReference
        Dim varAttributes As Object
        Dim t As Double
	    varAttributes = BlockObj.GetAttributes
            For t = LBound(varAttributes) To UBound(varAttributes)
            	If varAttributes(t).TagString = "a" Then
                	varAttributes(t).TextString = "0"
            	End If
            Next

Последний раз редактировалось kikoko, 22.06.2014 в 11:35.
kikoko вне форума  
 
Непрочитано 19.06.2014, 11:28
#4
Boxa

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


kikoko, Долго втыкал в Ваш код, потом дошло, что это, если можно так сказать, autocad COM API, хотя и написан в стиле VBA.
В сообщении №2 дописал под какое API написан код.
Boxa вне форума  
 
Непрочитано 22.06.2014, 11:31
#5
kikoko


 
Регистрация: 12.12.2004
***
Сообщений: 6


Boxa, вы правы, это AutoCAD ActiveX API. Примите мои извинения !

Последний раз редактировалось kikoko, 22.06.2014 в 11:36.
kikoko вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > VB.net (новичку) запись атрибута в блок

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли посредством lisp вставить блок с уже заданным значением атрибута, который необходимо выбрать(блок с атрибутом) например из базы данных чертеж DMK666 LISP 5 10.04.2013 18:57
Летние Олимпийские игры 2012. Болеем за наших! T-Yoke Разное 303 13.09.2012 11:56
Проблема с добавлением нового атрибута в блок, не извлекаются данные с этого атрибута andery Динамические блоки 5 02.04.2009 15:20
Динамический блок и значение атрибута _Andre_ Динамические блоки 15 08.12.2006 23:55
вставка атрибута в готовый блок oshnik Динамические блоки 2 10.07.2006 17:04