Cambiar color a un block reference
Publicado por Nerea (1 intervención) el 24/11/2009 09:01:54
Buenas,
Necesito cambiar el color de un block reference. ¿Cómo lo puedo hacer?
Este es el codigo que tengo y no me funciona.
Dim numElementos As Integer
Dim objEntity As AcadEntity
Dim objBlockRef As AcadBlockReference
Dim existe As Boolean
Dim nombreBloque As String
Dim I As Integer
Dim color As AcadAcCmColor
Set color = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.16")
Call color.SetRGB(255, 0, 0)
For Each objEntity In ThisDrawing.ModelSpace
existe = False
'Si es un block reference
If objEntity.ObjectName = "AcDbBlockReference" Then
Set objBlockRef = objEntity
If objBlockRef.Name Like "AB_*" Then
'mirar si existe en arrayElementos
For I = 0 To UBound(arrayElementos)
nombreBloque = Dir(arrayBloque(I)) 'sacar lo que hay detras del ultimo "\" ese sera el nombre del bloque
nombreBloque = Left(nombreBloque, InStr(nombreBloque, ".") - 1) 'le quitamos la extension
If objBlockRef.Name = nombreBloque Then
existe = True
Exit For
End If
Next
'si no existe
If Not existe Then
'cambiar color a este bloque
objBlockRef.TrueColor = color
End If
End If
End If
Next objEntity
Necesito cambiar el color de un block reference. ¿Cómo lo puedo hacer?
Este es el codigo que tengo y no me funciona.
Dim numElementos As Integer
Dim objEntity As AcadEntity
Dim objBlockRef As AcadBlockReference
Dim existe As Boolean
Dim nombreBloque As String
Dim I As Integer
Dim color As AcadAcCmColor
Set color = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.16")
Call color.SetRGB(255, 0, 0)
For Each objEntity In ThisDrawing.ModelSpace
existe = False
'Si es un block reference
If objEntity.ObjectName = "AcDbBlockReference" Then
Set objBlockRef = objEntity
If objBlockRef.Name Like "AB_*" Then
'mirar si existe en arrayElementos
For I = 0 To UBound(arrayElementos)
nombreBloque = Dir(arrayBloque(I)) 'sacar lo que hay detras del ultimo "\" ese sera el nombre del bloque
nombreBloque = Left(nombreBloque, InStr(nombreBloque, ".") - 1) 'le quitamos la extension
If objBlockRef.Name = nombreBloque Then
existe = True
Exit For
End If
Next
'si no existe
If Not existe Then
'cambiar color a este bloque
objBlockRef.TrueColor = color
End If
End If
End If
Next objEntity
Valora esta pregunta


0