| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Экспорт координат из экселя в полилинию AutoCAD

Экспорт координат из экселя в полилинию AutoCAD

Ответ
Поиск в этой теме
Непрочитано 22.08.2017, 07:05 #1
Экспорт координат из экселя в полилинию AutoCAD
Ролана
 
Регистрация: 16.08.2017
Сообщений: 24

Здравствуйте! нужна помощь вот в каком вопросе: при смене версии AutoCAD (сейчас у меня 2012) перестал работать макрос екселя, который должен выгружать координаты из эксель в полилинию.
Импорт координат из AutoCAD в эксель прекрасно продолжает работать, а вот со вторым проблема, при запуске макроса выдает - can n execute code in break mode

хоть эта парочка и старенькая, но у меня прекрасно справлялись с требованиями, а вот сейчас такая незадача.... помогите пожалуйста!

Код:
[Выделить все]
Public Sub ExportPoints()
  Dim vertlist() As Double
  Dim objApp As AcadApplication
  Dim objDoc As AcadDocument
  Dim RowCount As Integer
  Dim strPrmpt As String
  Dim intCnt As Integer
  Dim objCell As Object
  Dim objSheet As Worksheet
  On Error GoTo Err_Control
  Set objSheet = ThisWorkbook.Sheets(1)
  Set objApp = GetObject(, "AutoCAD.Application")
  Set objDoc = objApp.ActiveDocument
  RowCount = objSheet.UsedRange.Rows.Count
  ReDim vertlist((RowCount * 2) - 1)
  RowCount = 1
  For intCnt = LBound(vertlist) To UBound(vertlist) Step 2
    vertlist(intCnt) = objSheet.Cells(RowCount, 1).Value
    vertlist(intCnt + 1) = objSheet.Cells(RowCount, 2).Value
    RowCount = RowCount + 1
  Next
  objDoc.ModelSpace.AddLightWeightPolyline vertlist
  objDoc.Regen acActiveViewport
Exit_Here:
  If Not objApp Is Nothing Then
    Set objApp = Nothing
    Set objDoc = Nothing
  End If
  Exit Sub
Err_Control:
  MsgBox Err.Description
  Resume Exit_Here
End Sub

Последний раз редактировалось Кулик Алексей aka kpblc, 22.08.2017 в 07:23.
Просмотров: 6138
 
Непрочитано 22.08.2017, 07:37
#2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Tools -> References -> подключить AutoCAD 2012 Type Library
Boxa на форуме  
 
Автор темы   Непрочитано 22.08.2017, 07:38
#3
Ролана


 
Регистрация: 16.08.2017
Сообщений: 24


подключила сразу же, импорт же срабатывает
Ролана вне форума  
 
Непрочитано 22.08.2017, 08:22
#4
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Код рабочий (проверял в 2017х64).
Приложите файл с которым работаете, вероятно ошибка в нем.
Boxa на форуме  
 
Автор темы   Непрочитано 22.08.2017, 08:47
#5
Ролана


 
Регистрация: 16.08.2017
Сообщений: 24


----- добавлено через ~2 мин. -----
рабочий рабочий - он у меня как миленький лет пять пахал, моя палочка выручалочка! только у него нюанс был - он всегда первую точку к 00 вязал....

----- добавлено через ~14 мин. -----
не дает подрузить файл, твердит - "некорректный файл"... что делать?

Последний раз редактировалось Ролана, 22.08.2017 в 09:03.
Ролана вне форума  
 
Непрочитано 22.08.2017, 09:11
#6
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Если зайти в экселе в редактор VBA через ALT+F11 и нажать Reset - не запуститься потом макрос?

Цитата:
Сообщение от Ролана Посмотреть сообщение
не дает подрузить файл, твердит - "некорректный файл"... что делать?
файлы эксель с макросами с расширением *.xlsm не дает загружать напрямую, запакуйте в zip.
Сергей812 вне форума  
 
Автор темы   Непрочитано 22.08.2017, 09:13
#7
Ролана


 
Регистрация: 16.08.2017
Сообщений: 24


вроде получилось, только сам документ у меня еще не оформлен, я только начала прописывать макросы. И с экспортом там каша

----- добавлено через ~3 мин. -----
[quote=Сергей812;1669365]Если зайти в экселе в редактор VBA через ALT+F11 и нажать Reset - не запуститься потом макрос?
нет, не получилось, все тычет в какие то коды из макроса, что то не нравится ему в окончании
Вложения
Тип файла: zip Книга1.zip (29.5 Кб, 103 просмотров)
Ролана вне форума  
 
Автор темы   Непрочитано 22.08.2017, 09:18
#8
Ролана


 
Регистрация: 16.08.2017
Сообщений: 24


вот что показывает
Миниатюры
Нажмите на изображение для увеличения
Название: ошибка.jpg
Просмотров: 167
Размер:	318.0 Кб
ID:	192542  
Ролана вне форума  
 
Непрочитано 22.08.2017, 09:23
#9
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


редактор русским языком пишет - что два завершающих оператора End Sub в одной процедуре. Скорее всего вместо первого End Sub (перед подсвеченной синим строкой) должен быть Exit Sub.
Сергей812 вне форума  
 
Непрочитано 22.08.2017, 09:27
#10
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


1. Код из заголовка темы работает, лишнее дописывать не нужно
2. Нужно внимательнее относиться к тому, из какого листа читаете данные.
Boxa на форуме  
 
Автор темы   Непрочитано 22.08.2017, 09:28
#11
Ролана


 
Регистрация: 16.08.2017
Сообщений: 24


спасибо, я конечно же попробую исправить, как он просит, вот только смущает меня некоторые моменты - вполне работающий макрос (импорт), который уже подгружен в эксель имеет точно такое же окончание, и это ему не мешает.... к тому же предупреждения всегда разные, но, конечно же, я перепробую все варианты и ооочень благодарна за помощь!!!

----- добавлено через ~2 мин. -----
я над ним уже целый день бьюсь, откуда только не пробовала запускать, куда только не прописывала, два работают, третий нет...
Ролана вне форума  
 
Непрочитано 22.08.2017, 09:30
#12
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Код:
[Выделить все]
Public Sub ExportPoints()
  Dim vertlist() As Double
  Dim objApp As AcadApplication
  Dim objDoc As AcadDocument
  Dim RowCount As Integer
  Dim strPrmpt As String
  Dim intCnt As Integer
  Dim objCell As Object
  Dim objSheet As Worksheet
  On Error GoTo Err_Control
  
  'Тут имя листа
  Set objSheet = ThisWorkbook.Sheets("Лист3")
  
  Set objApp = GetObject(, "AutoCAD.Application")
  Set objDoc = objApp.ActiveDocument
  RowCount = objSheet.UsedRange.Rows.Count
  ReDim vertlist((RowCount * 2) - 1)
  RowCount = 1
  For intCnt = LBound(vertlist) To UBound(vertlist) Step 2
    vertlist(intCnt) = objSheet.Cells(RowCount, 1).Value
    vertlist(intCnt + 1) = objSheet.Cells(RowCount, 2).Value
    RowCount = RowCount + 1
  Next
  objDoc.ModelSpace.AddLightWeightPolyline vertlist
  objDoc.Regen acActiveViewport
Exit_Here:
  If Not objApp Is Nothing Then
    Set objApp = Nothing
    Set objDoc = Nothing
  End If
  Exit Sub
Err_Control:
  MsgBox Err.Description
  Resume Exit_Here
End Sub
Этот код у меня отработал нормально
Boxa на форуме  
 
Непрочитано 22.08.2017, 09:32
#13
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от Ролана Посмотреть сообщение
который уже подгружен в эксель имеет точно такое же окончание, и это ему не мешает
не может быть такого, смотрите внимательнее - дошел до оператора End Sub и дальше он ожидает либо следующий блок процедуры или функции, либо коммент.
Сергей812 вне форума  
 
Автор темы   Непрочитано 22.08.2017, 09:36
#14
Ролана


 
Регистрация: 16.08.2017
Сообщений: 24


Значит причина у меня, так сказать местного характера..... Что ж, все равно у меня переустановка автокада, попробую все спокойно почистить и запустить все таки этого упрямца....

Дело в том, что это у меня только начальный этап, я потом в этот документ подгружу разные конверторы и будет многоцелевая штука, мне этот экспорт как воздух нужен, без него вся цепочка рушится...

----- добавлено через ~4 мин. -----
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
не может быть такого, смотрите внимательнее - дошел до оператора End Sub и дальше он ожидает либо следующий блок процедуры или функции, либо коммент.
Я ни разу не специалист по кодам и даже не претендую, как правило пользуюсь чужими, и доверяю словам людей знающих, поэтому и прошу помощи!
но ради интереса я могу выложить второй макрос (он вполне себе работает), с точно таким же окончанием....

----- добавлено через ~6 мин. -----
[/code]
Этот код у меня отработал нормально[/quote]

Скажите пожалуйста, а Вы его запускали из моего документа????
Ролана вне форума  
 
Непрочитано 22.08.2017, 09:45
1 | #15
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Да, я отредактировал Ваш код и запустил в Вашем же документе.
Boxa на форуме  
 
Непрочитано 22.08.2017, 09:48
#16
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
подгружу разные конверторы
что за конверторы?
trir вне форума  
 
Автор темы   Непрочитано 22.08.2017, 09:48
#17
Ролана


 
Регистрация: 16.08.2017
Сообщений: 24


замечательно! значит после переустановки автокада у меня есть шанс... а что значит "отредактировал"? нужно что то поменять? может тогда Вы мне его назад скинете?

----- добавлено через ~5 мин. -----
Цитата:
Сообщение от trir Посмотреть сообщение
что за конверторы?
только не смейтесь, но среди прочего - румбы! ну да! вот такая архаика, но лесники, лесники требуют... хочется вообще этими мелочами голову не забивать. В один лист импортировала координаты, а с последнего листа скопировала нужный мне набор, переведенные, округленные, с румбами и еще с целой кучей всяких атрибутов..... У меня была такая связка, именно для моей работы очень удобно, а главное невероятно быстро....да и привычка, господа, привычка!
Ролана вне форума  
 
Непрочитано 22.08.2017, 09:57
1 | #18
Владимир_М


 
Регистрация: 05.11.2015
Сообщений: 585


Цитата:
Сообщение от Ролана Посмотреть сообщение
перестал работать макрос екселя, который должен выгружать координаты из эксель в полилинию.
Ну, чтобы больше не переставал в дальнейшем, может такой вариант подойдет. Правда, offtop получается - мой вариант без программирования.
В том же листе экселя, рядом с вашими колонками чисел, с помощью обычных экселевских же текстовых функций получаете другой столбец, числа которого будет понимать команда pLine акада как соответствующие координаты.
Копируете его в буфер. Включаете в акаде команду полилиния и делаете cntrl+V. Полилиния готова.
Этот файл эксель сохраняете на будущее и вставлете туда по необходимости только исходные столбцы.
(Делал когда-то так для получения в акаде полигонов из каких-то кадастровых документов, которые были в формате, читаемом екселем.)
Владимир_М вне форума  
 
Непрочитано 22.08.2017, 10:00
#19
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Ролана Посмотреть сообщение
может тогда Вы мне его назад скинете?
http://forum.dwg.ru/showpost.php?p=1669383&postcount=12
Boxa на форуме  
 
Автор темы   Непрочитано 23.08.2017, 01:10
#20
Ролана


 
Регистрация: 16.08.2017
Сообщений: 24


Всем спасибище огромное!!!! переустановила acad, немного подкорректировала расположение макроса и все заработало!
Ролана вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Экспорт координат из экселя в полилинию AutoCAD

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт файлов из autocad architecture в обычный autocad donna_roza Вертикальные решения на базе AutoCAD 7 27.01.2020 13:57
Проблема с определением координат точки пересечения полилиний. vb.net и AutoCad 2014 samaratopograf .NET 0 24.02.2017 20:05
Экспорт координат из excel в AutoCAD Кадастровый инженер AutoCAD 3 13.08.2014 09:45
Устройство указания координат и выбора об`ектов в autocad koma AutoCAD 2 22.11.2010 11:33
Экспорт координат привязки текста uamihanik Программирование 8 27.02.2010 11:50