Vielen Dank an alle,
das Ganze hört sich echt nicht einfach an, die nächste Frage wäre, wenn ich hier eine Lisp einspiele, ist die dann an den Block geheftet oder nur an diesem Arbeitsplatz, an welchen die Programmierung eingespielt wurde?
Der Block ist eine Eigenentwicklung, welche wir zentral Speichern und über unsere Werkzeugpaletten in die Zeichnung integrieren.
Wenn ich es richtig verstanden habe, muss ich den Ring, welcher nur ein kleiner Bestandteil des Blocks ist, die Farbe als "vonBlock" deklarieren, den Rest auf was anderes.
Wie muss ich den die Lisp umschreiben um es an meinen Block, mit meinem Attribut an zu passen?
________________________________________________________________________________
Function block_get_attribute(blo As AcadBlockReference, tagname) As String
    Dim AttList As Variant
    On Error Resume Next
    If blo.HasAttributes Then
      AttList = blo.GetAttributes
      For i = LBound(AttList) To UBound(AttList)
        If UCase(AttList(i).TagString) = tagname _
        Or UCase(Trim(AttList(i).TagString)) = tagname & "_001" Then
          block_get_attribute = AttList(i).TextString
          Exit Function
        End If
      Next
    End If
End Function
Sub rotateme()
Dim blockref As AcadBlockReference
Dim entity As AcadEntity
Dim pi As Double
pi = 4 * Atn(1)
For Each entity In ThisDrawing.ModelSpace
  If LCase(entity.ObjectName) = "acdbblockreference" Then
    Set blockref = entity
    If blockref.EffectiveName = "UNNAMED" Then
      S = block_get_attribute(blockref, "WINKEL")
      C = block_get_attribute(blockref, "FARBE")
      If IsNumeric(S) Then
        r = Val(S) / 180# * pi
        blockref.Rotation = r
        Select Case C
        Case "ROT"
          blockref.Color = acRed
        Case "BLAU"
          blockref.Color = acBlue
        End Select
        blockref.Update
      End If
    End If
  End If
Next
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP