Tenha uma nova experiência ao navegar no Fórum pelo computador de forma integrada ao portal principal. Acesse o seguinte link: https://www.autolisp.com.br/board/. Entretanto para dispositivos móveis recomendamos acessar este outro link: https://www.autolisp.com.br/forum/

inserir / alterar atributo atraves do vba no autocad

Dúvidas sobre VB para AutoCAD...

Moderador: Moderadores

Responder
Avatar do usuário
chernobill
Novato
Novato
Mensagens: 3
Registrado em: Ter 22 Mar 2005 12:00:00 am

inserir / alterar atributo atraves do vba no autocad

Mensagem por chernobill » Sex 27 Mai 2005 1:06:29 pm

alguem saberia me dizer como eu devo fazer para inserir um atributo no cad e preenche-lo atraves do vba?????

Avatar do usuário
cadeveloper
Bronze 1/3
Bronze 1/3
Mensagens: 102
Registrado em: Ter 13 Abr 2004 12:00:00 am
Contato:

Mensagem por cadeveloper » Seg 14 Ago 2006 11:25:08 pm

Consegue entender isso?

[lsp]Sub Example_GetAttributes()
' This example creates a block. It then adds attributes to that
' block. The block is then inserted into the drawing to create
' a block reference.

' Create the block
Dim blockObj As AcadBlock
Dim insertionPnt(0 To 2) As Double
insertionPnt(0) = 0#: insertionPnt(1) = 0#: insertionPnt(2) = 0#
Set blockObj = ThisDrawing.Blocks.Add(insertionPnt, "TESTBLOCK")


' Define the attribute definition
Dim attributeObj As AcadAttribute
Dim height As Double
Dim mode As Long
Dim prompt As String
Dim insertionPoint(0 To 2) As Double
Dim tag As String
Dim value As String
height = 1#
mode = acAttributeModeVerify

prompt = "Attribute Prompt"
insertionPoint(0) = 5#: insertionPoint(1) = 5#: insertionPoint(2) = 0
tag = "Attribute Tag"
value = "Attribute Value"

' Create the attribute definition object in model space
Set attributeObj = blockObj.AddAttribute(height, mode, prompt, insertionPoint, tag, value)


' Insert the block
Dim blockRefObj As AcadBlockReference

insertionPnt(0) = 2#: insertionPnt(1) = 2#: insertionPnt(2) = 0
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, "TESTBLOCK", 1#, 1#, 1#, 0)
ZoomAll

' Get the attributes for the block reference
Dim varAttributes As Variant
varAttributes = blockRefObj.GetAttributes

' Move the attribute tags and values into a string to be displayed in a Msgbox

Dim strAttributes As String
Dim I As Integer
For I = LBound(varAttributes) To UBound(varAttributes)
strAttributes = strAttributes & " Tag: " & varAttributes(I).TagString & _
" Value: " & varAttributes(I).textString & " "
Next
MsgBox "The attributes for blockReference " & blockRefObj.name & " are: " & strAttributes, , "GetAttributes Example"


' Change the value of the attribute
' Note: There is no SetAttributes. Once you have the variant array, you have the objects.
' Changing them changes the objects in the drawing.
varAttributes(0).textString = "NEW VALUE!"

' Get the attributes
Dim newvarAttributes As Variant
newvarAttributes = blockRefObj.GetAttributes

' Again, display the tags and values

strAttributes = ""
For I = LBound(varAttributes) To UBound(varAttributes)
strAttributes = strAttributes & " Tag: " & varAttributes(I).TagString & _
" Value: " & varAttributes(I).textString & " "
Next
MsgBox "The attributes for blockReference " & blockRefObj.name & " are: " & strAttributes, , "GetAttributes Example"


End Sub[/lsp]
Anderson A. Campos
Analista de Sistemas

Visitem o novo Site !!!
www.cadeveloper.com

Avatar do usuário
neyton
Master
Master
Mensagens: 1668
Registrado em: Qui 25 Dez 2003 11:00:00 pm
Contato:

Mensagem por neyton » Ter 15 Ago 2006 11:33:59 am

er....

as tags code so funcionam com lisp, blz?

ainda nao foi implementado com VBA... quem sabe um dia dessses, hehehe

para dcl estou sem tempo... mas uma hora sai!!!

Responder