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