Hallo zusammen,
ich möchte gerne mit vb6 einen Block in den Layoutbereich schreiben, was mir auch schon gelungen ist, nur habe ich den sicheren Zugriff auf den Paperspace noch nicht recht im Griff.
Mit folgenden Zeilen Frage ich alle aktuellen Layouts einer Zchng ab,
was super funktioniert und schreibe sie dann in eine Listbox.
For i = 0 To acadDoc.Layouts.count - 1
List1.AddItem (acadDoc.Layouts(i).Name)
Next i
Dann waehle ich einige Layouts und moechte dann in diese immer
den gleichen Block einfuegen.
Das Einfuegen über acadDoc.Layouts ist mir nicht gelungen, dafuer
mit objBlocks = acadDoc.Blocks
Das Problem ist nun, dass ich den Link zwischen der Layoutvariante (wie oben erwaehnt und der objBlocks-Variante finde)
Dh.
objBlocks(i).InsertBlock() kann ich nur ueber die Variable i, das Blockelement ansprechen, aber wie kommen ich denn auf diese Nummer?
'Alle Blöcke einsetzen
Set objBlocks = acadDoc.Blocks
If (BlockName <> "") And dokCADoffen Then
For i = 0 To List1.ListCount - 1
If List1.Selected(i) Then
Set blockRefObj = objBlocks(i).InsertBlock(insertPnt,_
BlockName, xs, ys, zs, rotation)
End If
Next
Else
MsgBox ("Bitte einen Block wählen!")
End If
Das groesste Problem mit der acadDoc.Blocks - Variante habe ich,
wenn sich in der Zeichnung zusatzliche Bloecke befinden, dann
stuerzt mein Programm immer ab.
Ettliche Versuche wie auch mit einer If-Abfrage ein Null-Objekt
abzufangen waren vergeblich.
Kann mir da vielleicht jemand einen guten Rat geben.
Wie kann ich die Paper- und ModelSpaces unter kontrolle haben
und darauf frei zugreifen respektive Objekte einfuegen.
Hoffe da draussen im unendlichen Datenmeer findet sich doch noch
jemand der mir da helfen kann.
Vorerst mal vielen Dank und Viele Gruesse
Kaspar
der Verzweiflung nahe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP