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

Вернуться   Форум DWG.RU > Поиск литературы, чертежей, моделей и прочих материалов > Ищу программу "Text_Excel_ACad"

Ищу программу "Text_Excel_ACad"

Ответ
Поиск в этой теме
Непрочитано 11.06.2021, 23:34 #1
Ищу программу "Text_Excel_ACad"
MrBrown
 
ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 359

Здравствуйте!
Решая свою задачу (простановка в модели AutoCAD нумерованных точек/окружностей/блоков по координатам из Excel) длительным поиском по разным сайтам нашёл тему https://www.planetaexcel.ru/forum/in...ID=8&TID=12330
Увы, ссылка на программу "Text_Excel_ACad" уже не работает.
Прошу помощи: у кого есть, выложите программу или подскажите рабочую ссылку.
Пятой точкой чувствую: это именно то, или близко к тому, что мне нужно.
Спасибо.
Просмотров: 4277
 
Непрочитано 12.06.2021, 11:41
#2
trir


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


всё гораздо проще делается
trir вне форума  
 
Автор темы   Непрочитано 12.06.2021, 11:51
#3
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 359


trir,
Цитата:
Сообщение от trir Посмотреть сообщение
всё гораздо проще делается
Как-проще? Прощу, подскажите.
Меня не устраивает распространённый алгоритм, по которому в Excel в координатах запятые меняют на точки, затем конвертируют таблицу в формат txt, ну и т.д.
Мне нужно, чтобы из таблицы Excel были выужены координаты и их нумерация, а в модели AutoCAD по этим координатам были вставлены не только точки, а и, по моему хотению, круги, треугольники, блоки, короче любой объект, на который я укажу, в активном слое. И рядом проставлен номер, согласно таблице Excel. Номер - в своём слое для оперативного скрытия.
А, может быть, знаете иной способ, которого я не знаю, и он может оказаться даже лучше, чем мне надо.
Буду весьма признателен за конструктивную помощь.
p.s. AutoCAD 2020.
MrBrown вне форума  
 
Непрочитано 12.06.2021, 12:06
1 | #4
trir


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


в Excel'е в ячейке пишется формула в кторой получаем (command "_insert" <параметры>) и просто вставляем результат в AutoCAD

Цитата:
в Excel в координатах запятые меняют на точки
я просто в системных настройках один раз меняю и не мучаюсь
trir вне форума  
 
Автор темы   Непрочитано 12.06.2021, 12:15
#5
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 359


trir, спасибо, попробую.
MrBrown вне форума  
 
Автор темы   Непрочитано 12.06.2021, 12:27
#6
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 359


trir, прошу конкретизировать, что мне сделать, чтобы, к примеру, закинуть пять вот этих координат (см. приложенный файл Excel) в модель AutoCAD, чтобы рядом оказались их номера. Точнее, не координат, а, к примеру, маленьких кружочков по этим координатам.
А у меня что-то не получается закинуть даже точки.
Вложения
Тип файла: xlsx Книга1.xlsx (8.9 Кб, 12 просмотров)
MrBrown вне форума  
 
Непрочитано 12.06.2021, 13:11
1 | #7
Сергей812


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


Например, написать крошечный макрос
Код:
[Выделить все]
Public Sub HlopTop()
  If (Application.Selection.Columns.Count <> 3) Then Exit Sub
  Dim lData As Variant: lData = Application.Selection
  Dim lAcadApp As Object: Set lAcadApp = GetObject(, "AutoCAD.Application")
  Dim lCurrDoc As Object: Set lCurrDoc = lAcadApp.ActiveDocument
  Dim I1 As Long, lCenter(0 To 2) As Double
  For I1 = 1 To UBound(lData, 1)
    lCenter(0) = CDbl(lData(I1, 1))
    lCenter(1) = CDbl(lData(I1, 2))
    lCenter(2) = CDbl(lData(I1, 3))
    lCurrDoc.ModelSpace.AddCircle lCenter, 1
  Next I1
  Set lCurrDoc = Nothing
  Set lAcadApp = Nothing
End Sub
Выделить диапазон данных на листе и вызвать макрос HlopTop через Alt-F8. Можно как надстройку Excel оформить, чтобы внутри экселевского файла с данными не держать сам код.
Сергей812 вне форума  
 
Автор темы   Непрочитано 12.06.2021, 14:51
#8
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 359


Сергей812, интересный способ!
И, если модератор разрешит (тема-то называется "Ищу" конкретную готовую программу, уже созданную программистом LISP), то хотел бы разобраться в нюансах вашего варианта макроса.
Первая строчка, как я понимаю, запрещает выделять четыре столбца таблицы. А нужно, чтобы рядом с кружком появлялся номер, взятый из столбца "А", например мтекст или текст текушего стиля и размера, с "ручкой" слева-внизу. Ручка находится в центре кружка.
Это возможно прописать в макросе?
Спасибо.
p.s. Для модератора: если необходимо, я поменяю название темы.
MrBrown вне форума  
 
Непрочитано 12.06.2021, 15:10
1 | #9
Сергей812


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


Цитата:
Сообщение от MrBrown Посмотреть сообщение
Первая строчка, как я понимаю, запрещает выделять четыре столбца таблицы.
любое количество столбцов, не равное трем. И не запрещает выделять - а не дает словить ошибку в ходе обращения к ячейкам массива lData.

Цитата:
Сообщение от MrBrown Посмотреть сообщение
А нужно, чтобы рядом с кружком появлялся номер, взятый из столбца "А", например мтекст или текст текушего стиля и размера, с "ручкой" слева-внизу. Ручка находится в центре кружка.
Это возможно прописать в макросе?
код открыт, прописывайте) Тогда нужно:
1. Брать 4 столбца и прописать условие продолжения по наличию 4 столбцов в выделении.
2. Создать блок в виде окружности с точкой вставки в центре окружности и атрибутом.
3. Вместо AddCircle будет уже InsertBlock. Вставили блок и сразу задали из первого столбца значение атрибута, пока есть ссылка на вставленный блок.
Сергей812 вне форума  
 
Автор темы   Непрочитано 12.06.2021, 19:03
#10
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 359


Сергей812, Спасибо за подсказку. Ушёл творить.
MrBrown вне форума  
 
Непрочитано 13.06.2021, 15:09
#11
trir


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


="(command ""_insert"" ""test1"" '(" & B2 & " " & D2 & " " & C2 & ") 1 1 0 """ & A2 & """)"
trir вне форума  
 
Автор темы   Непрочитано 13.06.2021, 16:40
#12
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 359


trir, Спасибо, но не понимаю, как связать команду с моей таблицей.
"test1" - это, наименование блока (ИМХО). Я его создал из кружка. А как приклеить к блоку кружка атрибут номера? Если не трудно, дайте ссылку на какой-нибудь коротенький урок.
MrBrown вне форума  
 
Непрочитано 13.06.2021, 18:18
1 | #13
trir


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


https://knowledge.autodesk.com/ru/su...13169-htm.html
Миниатюры
Нажмите на изображение для увеличения
Название: tbl1_scr.PNG
Просмотров: 24
Размер:	29.9 Кб
ID:	238100  
trir вне форума  
 
Непрочитано 13.06.2021, 18:25
2 | #14
Сергей812


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


с 2009 года никогда не создавали блоков с атрибутами?) А занести номер из первого столбца в атрибут - программно это делается на раз-два
Код:
[Выделить все]
Public Sub HlopTop2()
  If (Application.Selection.Columns.Count <> 4) Then Exit Sub
  Dim lData As Variant: lData = Application.Selection
  Dim lAcadApp As Object: Set lAcadApp = GetObject(, "AutoCAD.Application")
  Dim lCurrDoc As Object: Set lCurrDoc = lAcadApp.ActiveDocument
  Dim I1 As Long, lCenter(0 To 2) As Double, lBlockRef As Object, lAttrs As Variant
  For I1 = 1 To UBound(lData, 1)
    lCenter(0) = CDbl(lData(I1, 2))
    lCenter(1) = CDbl(lData(I1, 3))
    lCenter(2) = CDbl(lData(I1, 4))
    Set lBlockRef = lCurrDoc.ModelSpace.InsertBlock(lCenter, "MARKER", 1, 1, 1, 0)
    If (lBlockRef.HasAttributes) Then
      lAttrs = lBlockRef.GetAttributes
      lAttrs(0).TextString = CStr(lData(I1, 1))
    End If
  Next I1
  Set lCurrDoc = Nothing
  Set lAcadApp = Nothing
End Sub
а как здесь предлагают через комстроку - ну тоже можно вроде консольно вызвать команду для редактирования значения атрибута, но это будет уже по две строчки на каждый блок минимум - сначала вставить блок, потом задать атрибут
Сергей812 вне форума  
 
Автор темы   Непрочитано 13.06.2021, 18:55
#15
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 359


trir, Сергей812, буду пробовать вариант каждого. По результатам отпишусь.
От души благодарю вас обоих за конструктивные ответы, подсказки и ссылки.
p.s. Кстати, да, ни разу (в жизни!) не пришлось создавать блок с атрибутами, хотя частенько в чужих файлах встречал блоки разной сложности. А сам создавал только обычный блок. Просто, тупо объединял несколько примитивов в блок. Вот так бывает.

Последний раз редактировалось MrBrown, 13.06.2021 в 19:16.
MrBrown вне форума  
 
Непрочитано 13.06.2021, 18:58
#16
trir


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


Цитата:
но это будет уже по две строчки на каждый блок минимум - сначала вставить блок, потом задать атрибут
одна строчка
trir вне форума  
 
Автор темы   Непрочитано 13.06.2021, 21:06
#17
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 359


Сергей812, макрос ругается на строчку:
Код:
[Выделить все]
 Set lBlockRef = lCurrDoc.ModelSpace.InsertBlock(lCenter, "MARKER", 1, 1, 1, 0)
вот таким окном-предупреждением (прилож. картинка)
Миниатюры
Нажмите на изображение для увеличения
Название: 555.jpg
Просмотров: 18
Размер:	54.6 Кб
ID:	238103  
MrBrown вне форума  
 
Непрочитано 13.06.2021, 21:30
1 | #18
trir


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


блок MARKER существует?
trir вне форума  
 
Автор темы   Непрочитано 13.06.2021, 21:35
#19
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 359


trir, Пока нет. Разбираюсь с атрибутами. Из вопроса понял свою задачу. Спасибо.
MrBrown вне форума  
Ответ
Вернуться   Форум DWG.RU > Поиск литературы, чертежей, моделей и прочих материалов > Ищу программу "Text_Excel_ACad"

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с Лира-САПР 2013. Wndows 7 закрывает программу при подборе арматуры Andrey Drey Лира / Лира-САПР 4 17.08.2016 11:33
Ищу простую программу для расчета освещенности ж.д. путей прожекторными мачтами 37090 Поиск литературы, чертежей, моделей и прочих материалов 14 12.08.2016 13:18
Как отнестись к требованию работодателя сдать в архив программу собственной разработки? viequt Профессии и трудовые отношения 47 10.02.2016 10:01
Ищу программу или способ для оцифровки ИЧТ zebrik Прочее. Программное обеспечение 3 28.10.2013 10:14
Можно ли из нескольких лиспов и меню сделать программу с активационным ключом? Red Nova LISP 86 15.12.2008 10:10