Public
obj As AcadEntity
Public
blnBezug As Boolean
Public
dblBezug As Double
Public
dblEinfuegePunkt(0 To 2) As Double
Public
objblockref As AcadBlockReference
Public
blnPruef As Boolean
Public
varPosition As Variant
Sub KoteEinfuegen()
Dim
dblAktuellerPunkt As Double
Dim
varAtt As Variant
On
Error resume next
varPosition(0) = 0: varPosition(1) = 0
If MsgBox("Ist eine Bezugskote
vorhanden?", vbYesNo) = vbYes Then
varPosition = ThisDrawing.Utility.GetPoint(,
"Bezugspunkt zeigen:")
dblBezug = varPosition(1)
blnBezug = True
Else
MsgBox "Die nächste Kote wird die
Bezugskote"
End If
Call KoteVorhanden
Do
While varPosition(0) <> 1 And varPosition(1) <> 1
varPosition = ThisDrawing.Utility.GetPoint _
(, vbCrLf & "Wo soll
die Kote hin? (beenden mit 1,1): ")
If
blnBezug = False Then
dblBezug = varPosition(1)
blnBezug = True
End If
If varPosition(0)
= 1 And varPosition(1) = 1 Then Exit Sub
Set
objblockref = ThisDrawing.ModelSpace.InsertBlock(varPosition, "kote",
1, 1, 1, 0)
Call
yWertEintragen
Loop
Public
Sub yWertEintragen()
'Trägt
den Y-Wert als Attribut in den Block ein, geht auch über Xdata oder Text: so
besser
Dim varAtt As Variant
varAtt = objblockref.GetAttributes
varAtt(0).TextString = varPosition(1) -
dblBezug
Sub BlockEinfuegen()
'Fügt den Block ein, falls er nicht vorhanden ist
Dim blockRefObj As
AcadBlockReference
Set
blockRefObj = ThisDrawing.ModelSpace.InsertBlock(dblEinfuegePunkt,
"c:\Block\kote.dwg", 1, 1, 1, 0)
ThisDrawing.SendCommand ("hoppla")
Private Function
KoteVorhanden()
'Prüft, ob bereits ein Block mit dem Namen kote eingefügt wurde
Dim objBl As AcadBlock
For
Each objBl In ThisDrawing.Blocks
If
objBl.Name = "kote" Then
blnPruef = True
Exit
For
End
If
Next
If
blnPruef = False Then
Call
BlockEinfuegen
blnPruef = True
End If