Привет Вильдар!
Новый набор создается, а выбора нет
выбор я делаю на открытом библиотечном файле и на нем он меняет на требуемый текст, но от когда импортирует в чертеж-ставить данные ранне вставленного такого же объекта(
ssetObj.Select zcSelectionSetAll, point1, point2, intDXF, varVal
Может стоит привести пример, где используется процедура ImportZwcadDocument.
ну на ней все просто, перебор ячеек и открытие файла dwg соответствующему названию в ячейке, далее меняю текст
Sub open_dwg()
nLength = Columns(1).CurrentRegion.Rows.Count
If nLength < 1 Then
MsgBox ("нет данных")
End If
Dim s As String
Dim t As String
Dim ZwCAD As ZwcadApplication
Dim frame As ZwcadDocument
Dim frameMSpace As ZwcadModelSpace
Dim libDoc As ZwcadDocument
Dim str As String
Dim ssetObjDoc As ZwcadSelectionSet
Dim mode As ZcSelectionSetType
Dim corner1 As New ZwcadPoint
Dim corner2 As New ZwcadPoint
Dim retObjects As ZwcadSelectionSet
Dim InsertPoint As New ZwcadPoint
Dim scalefactor As Double
Dim blockFlag As Boolean
Dim allItemText() As String
Dim i As Integer
scalefactor = 1
'Set ZwCAD = CreateObject("ZwCAD.Application")
Set frame = ZwcadApplication.Documents.Open(ThisWorkbook.Path + "\lib\frame.dwg")
nCounter = 4
Do While nCounter <= nLength '(1) цикл перебора ячеек где находятся имена библиотечных
For nCounter = 4 To nLength
blockFlag = False
For x = 3 To 9
s = Cells(nCounter, x)
t = Cells(nCounter + 1, 3)
If blockFlag Then' координатное разбиение, для определенного условия когда открывается и импортируются те самые одинаковые элементы из одного библиотечного файла на которых текст ставится из предъидушего импортируемого
InsertPoint(0) = 0#: InsertPoint(1) = -67.4: InsertPoint(2) = 0#
Else
InsertPoint(0) = 0#: InsertPoint(1) = 0#: InsertPoint(2) = 0#
End If
str = ThisWorkbook.Path + "\lib\" + CStr(s) + ".dwg"
If s = "Шкаф РСУ" Then '(4)
ReDim allItemText(6)
allItemText(0) = errAttributeOne(CStr(Cells(nCounter, 13)), nCounter, 13)'присваиваю текст из екселя дя замены в блоке библиотечного файла
allItemText(1) = errAttributeOne(CStr(Cells(nCounter, 11)), nCounter, 11)
allItemText(2) = errAttributeOne(CStr(Cells(nCounter, 12)), nCounter, 12)
allItemText(3) = errAttributeOne(CStr(Cells(nCounter, 10)), nCounter, 10)
allItemText(4) = errAttributeOne(CStr(Cells(nCounter, 15)), nCounter, 15)
allItemText(5) = errAttributeOne(CStr(Cells(nCounter, 16)), nCounter, 16)
allItemText(6) = errAttributeOne(CStr(Cells(nCounter, 17)), nCounter, 17)
ImportZwcadDocument frame, str, InsertPoint, scalefactor, allItemText
ElseIf s = "Датчик" Then
allItemText(0) = errAttributeOne(CStr(Cells(nCounter, 19)), nCounter, 19)
ImportZwcadDocument frame, str, InsertPoint, scalefactor, allItemText
' ну и так далее по следующим элементам
End If '(4)
Next x
Next nCounter
Loop '(1)
'frame.SaveAs (ThisWorkbook.Path + "\dwg.dwg")
'ZwCAD.Quit
'Set ZwCAD = Nothing
End Sub
и все таки мне кажется что просто блок остается в кэш и далее при запросе опять этого же libdoc он тянет данные из него, ведь когда в очередной раз на libdoc меняешь текст то все меняется, а при импорте ставит старое...мда(