Добрый день! В общем моя цель сделать цикл:
1) отрисовка линий по координатам из excel по строке n
2) вывод на печать путем сохранения в .png файл
3) удаление линий и повтор цикла с n+1 и тд.
Проблема возникает на втором этапе, на втором проходе цикла. Выскакивает ошибка:
"Run-time error '-2147467259(80004005)':
Method 'PlotToFile' of object 'IAcadPlot' failed"
Выскакивает на этом месте:
ThisDrawing.Plot.PlotToFile "c:\" & Q
Кто знает в чем дело? Уже все обшарил ничего не могу придумать. Заранее благодарен.
вот сам код:
Sub ExcelToAutocad()
' Äëÿ òîãî, ÷òîáû àâòîêàä ïîíèìàë òàêîé òèï ïåðåìåííûõ, êàê Excel.Application, Excel.Workbook è Excel.Worksheet
' íåîáõîäèìî â ðåäàêòîðå VBA âûáðàòü Tools - References è äîáàâèòü Microsoft Excel *.* Type Library
Dim AP As Excel.Application
Dim WB As Excel.Workbook
Dim WS As Excel.Worksheet
'Óñòàíàâëèâàåì ñâÿçü ñ Excel
Set AP = Excel.Application
Set WB = AP.Workbooks.Open("C:\1.xlsx")
Set WS = WB.Worksheets("1")
Dim F, Q As String
Dim i As LongLong
'Íà÷àëî öèêëà
For i = 0 To 99999
Q = CStr(i)
'Ñ÷èòûâàåì äàííûå
ty1 = Cells(1 + i, 1)
tx1 = Cells(1 + i, 2)
ty2 = Cells(1 + i, 4)
tx2 = Cells(1 + i, 5)
ty3 = Cells(1 + i, 7)
tx3 = Cells(1 + i, 8)
F = Cells(1 + i, 3)
'Ñòðîþ ïîëèëèíèþ
Dim plineObj As AcadLWPolyline
Dim points(0 To 5) As Double
'Define the 2D polyline points
points(0) = tx1: points(1) = ty1
points(2) = tx2: points(3) = ty2
points(4) = tx3: points(5) = ty3
'Create a lightweight Polyline object in model space
Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
ZoomAll
'Âûâîä íà ïå÷àòü
ThisDrawing.ActiveLayout.ConfigName = "PublishToWebPNG1.pc3"
ThisDrawing.Regen acAllViewports
ThisDrawing.Plot.PlotToFile "c:\" & Q
'Óäàëåíèå ïîëèëèíèè
plineObj.Delete
ThisDrawing.Regen acActiveViewport
'Âûõîä èç öèêëà
If F = "ôèíèø" Then
Exit For
End If
Next
'Âûâîäèì â AutoCAD
MsgBox "Ãîòîâî. Âñåãî èçîáðàæåíèé: " & i
'Çàêðûâàåì Excel
AP.Quit
End Sub