da ich mich mit Lisp nicht so auskenne hier mal eine andere Variante wie ich das Problem gelöst habe.
Ein sehr komplexes C# Programm das aus ACAD gestartet wird generiert ein Textfile (d:\cad\test1.txt) mit folgendem Inhalt. blk entspricht dem Block und crd die x,yKoordinaten wo der Block plaziert werden soll.
blk : D:\cad\ACAD\Libraries\formatlib\a3.dwg
crd : 0,0
blk : D:\cad\ACAD\Libraries\lib1\x1.dwg
crd : 64,80
Die folgende VBA Routine liest das test1.txt File ein und generiert die Zeichnung.
Private Sub CommandButton15_Click()
Dim pos, x, y, cnt, i, k, form As Integer
Dim insertionPoint(0 To 2) As Double
Dim compAuswahl As String
Dim Comp As String
Dim blockRefObj As AcadBlockReference
Dim plp As Variant
Dim fs, a, retstring
Dim teil() As String
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.OpenTextFile("d:\cad\test1.txt", 1, False)
Do While a.AtEndOfStream <> True
retstring = a.ReadLine
i = Len(retstring)
If (Left(retstring, 3) = "blk") Then
Comp = Right(retstring, i - 6)
End If
If (Left(retstring, 3) = "crd") Then
i = Len(retstring)
retstring = Right(retstring, i - 6)
teil() = Split(retstring, ",", -1, 1)
x = teil(0)
y = teil(1)
insertionPoint(0) = x: insertionPoint(1) = y: insertionPoint(2) = 0
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(insertionPoint, Comp, 1, 1, 1, 0)
End If
Loop
a.Close
End Sub
im weiteren werde ich das Programm noch ergänzen, damit auch die Attribute eingefüllt werden können.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP