Klar hier ein Beispiel wie man Blöcke erstellt mit Attributen+
Einfügen dessen im Modelspace!
Sub Blockeinfügen()
'Programmiert von Ing. Schojer Christian
Call GenerateBlock11("PIXEL")
Dim Insertionpnt(0 To 2) As Double, fx, fy, fz, str, BlockRefObj
fx = 1
fy = 0.5
fz = 1
str = "PIXEL"
Insertionpnt(0) = 0
Insertionpnt(1) = 0
Insertionpnt(2) = 0
Set BlockRefObj = ThisDrawing.Modelspace.InsertBlock(Insertionpnt, str, fx, fy, fz, 0)
varAttributes = BlockRefObj.GetAttributes
varAttributes(0).Textstring = "Hallo"
End Sub
Sub GenerateBlock11(Blockname)
'Programmiert von Ing. Schojer Christian
' Definieren des Blocks
Dim blockObj As AcadBlock
'Definition für die attribute
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
'ende def für attribute
Dim Insertionpnt(0 To 2) As Double
Dim circleObj As AcadCircle
Dim LineObj As AcadLine
Dim center(0 To 2) As Double
Dim radius As Double
Dim Startp(0 To 2) As Double
Dim Endp(0 To 2) As Double
Dim Faktor, str, Status
str = Blockname '"PIXEL" "PUNKT-NEU" oder "PUNKT"
Faktor = 1
Height = 0.4 * Faktor
mode = acAttributeModeVerify
prompt = str & "-Nummer"
insertionpoint(0) = 0: insertionpoint(1) = 0: insertionpoint(2) = 0
tag = str '"PIXEL"
value = ""
Insertionpnt(0) = 0
Insertionpnt(1) = 0
Insertionpnt(2) = 0
' Hinzufügen eines Kreises zum Block
center(0) = 0
center(1) = 0
center(2) = 0
radius = 0.1 * Faktor
'ThisDrawing.Blocks.Delete Str
Set blockObj = ThisDrawing.Blocks.Add _
(Insertionpnt, str)
If str = "PIXEL" Then
Startp(0) = -0.2 * Faktor
Startp(1) = 0
Startp(2) = 0
Endp(0) = 0.2 * Faktor
Endp(1) = 0
Endp(2) = 0
Set LineObj = blockObj.AddLine(Startp, Endp)
Startp(0) = 0
Startp(1) = -0.2 * Faktor
Startp(2) = 0
Endp(0) = 0
Endp(1) = 0.2 * Faktor
Endp(2) = 0
Set LineObj = blockObj.AddLine(Startp, Endp)
End If
Set circleObj = blockObj.AddCircle(center, radius)
Set attributeObj = blockObj.AddAttribute(Height, mode, prompt, insertionpoint, tag, value)
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP