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

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

Вставка текста в автокад

Ответ
Поиск в этой теме
Непрочитано 18.06.2020, 11:20 #1
Вставка текста в автокад
qwertystudios1337
 
Регистрация: 16.01.2019
Сообщений: 19

Добрый день.
Есть файлы в папке автокад с чертежами. Нужно к каждому чертежу добавить подпись. Причем подпись будет отличаться для каждого чертежа. Подскажите как можно вставить подписи для всех файлов в папке (желательно на VBA).
Заранее спасибо.
Просмотров: 3096
 
Непрочитано 18.06.2020, 11:46
#2
Сергей812


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


куда подпись то добавлять - в пространство модели, в свойства чертежа, или подпись - это вообще полилиния/картинка с факсимили?
Сергей812 вне форума  
 
Непрочитано 18.06.2020, 11:53
#3
Boxa

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


Я так понимаю Ваши наработки увидеть не удастся, однако попробую помочь по фотографии, как я понял:

Очевидно, Вам нужно:получит список файлов, открыть/прочитать файлы и добавить подписи(предполагаю, что это текст, название элементов или еще что то).
В справке все это есть...
Получить список файлов, что то типа:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.getfolder(SourceFolderName)

пример тут

как открыть документ: раздел справки "Open Method (ActiveX)" , сам метод: ThisDrawing.Application.Documents.Open "C:\AutoCAD\Sample\city map.dwg"
добавить текст/подпись: раздел справки "AddText Method (ActiveX)", сам метод : Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height)

Я собственно хочу сказать, что Ваша задача решаема и решаема на основе примеров из справки.
Boxa вне форума  
 
Автор темы   Непрочитано 18.06.2020, 12:13
#4
qwertystudios1337


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
куда подпись то добавлять - в пространство модели, в свойства чертежа, или подпись - это вообще полилиния/картинка с факсимили?
Подписи добавлять в пространство модели
qwertystudios1337 вне форума  
 
Непрочитано 18.06.2020, 12:17
#5
Сергей812


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


только пакетно обрабатывать файлы лучше не через открытие каждого в редакторе (тормозной процесс, да и диалоги могут вылетать), но в VBA акадовском вроде нет возможности просто открыть саму БД чертежа и внести туда изменения...
Сергей812 вне форума  
 
Автор темы   Непрочитано 18.06.2020, 12:18
#6
qwertystudios1337


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


Цитата:
Сообщение от Boxa Посмотреть сообщение
Я так понимаю Ваши наработки увидеть не удастся, однако попробую помочь по фотографии, как я понял:

Очевидно, Вам нужно:получит список файлов, открыть/прочитать файлы и добавить подписи(предполагаю, что это текст, название элементов или еще что то).
В справке все это есть...
Получить список файлов, что то типа:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.getfolder(SourceFolderName)
пример тут
Перебор файлов в папке и оформление всех чертежей это я сделал. Единственное что осталось это подписи добавить в пространство модели. Были мысли вытаскивать их excel названия и сделать что-то типа вложенного цикла по файлам в папке и по ячейкам в excel.
Цитата:
Сообщение от Boxa Посмотреть сообщение
как открыть документ: раздел справки "Open Method (ActiveX)" , сам метод: ThisDrawing.Application.Documents.Open "C:\AutoCAD\Sample\city map.dwg"
добавить текст/подпись: раздел справки "AddText Method (ActiveX)", сам метод : Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height)

Я собственно хочу сказать, что Ваша задача решаема и решаема на основе примеров из справки.
Это понимаю. Вопрос в том, что подпись будет меняться в каждом чертеже и как вставить разные названия?

Пока что придумал руками вставлять подписи из файла автокад с названиями. Только муторное дело это. Вот я и спросил как это можно на VBA упростить
qwertystudios1337 вне форума  
 
Непрочитано 18.06.2020, 12:20
#7
Сергей812


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


Цитата:
Сообщение от qwertystudios1337 Посмотреть сообщение
Подписи добавлять в пространство модели
и что?) Вот реально, вам лень написать подробно условия (например, откуда данные для подписи в каждом файле, координаты вставки и т.д., приложить пример) - при этом ожидаете какой-то помощи...

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от qwertystudios1337 Посмотреть сообщение
Были мысли вытаскивать их excel названия и сделать что-то типа вложенного цикла по файлам в папке и по ячейкам в excel.
как задаваться будет соответствие файла и ячейки экселя?
Сергей812 вне форума  
 
Автор темы   Непрочитано 18.06.2020, 12:29
#8
qwertystudios1337


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
как задаваться будет соответствие файла и ячейки экселя?
Тупо по порядку. Т.е первый файл из папки соответствует названию в первой ячейки excel.

Цитата:
Сообщение от Сергей812 Посмотреть сообщение
и что?) Вот реально, вам лень написать подробно условия (например, откуда данные для подписи в каждом файле, координаты вставки и т.д., приложить пример) - при этом ожидаете какой-то помощи...
Если говорить про условия: есть папка с файлами dwg, они уже обработаны как надо. Нужно вставить подпись в пространство модели из excel (первый файл из папки соответствует названию в первой ячейки excel). Координаты вставки будут всегда одинаковыми (условно пусть будут цифры 100;100).
qwertystudios1337 вне форума  
 
Непрочитано 18.06.2020, 12:46
1 | #9
Сергей812


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


Цитата:
Сообщение от qwertystudios1337 Посмотреть сообщение
Тупо по порядку. Т.е первый файл из папки соответствует названию в первой ячейки excel.
тупо нет порядка. Эксель вообще не знает, что такое порядок файлов в файловом менеджере.

1. Выбирается папка с файлами - код можно взять отсюда, например.
2. Запоминается путь в переменной.
3. Получаем список имен файлов в выбранной папке, выделяем по первому разделителю с конца собственное имя файлов и заносим в столбец на лист. Можно отсортировать при необходимости.
4. Во втором столбце пишем нужный текст.
5. Из экселя через COM открываем по очереди каждый файл *.dwg, собирая полное имя файла из переменной п.2 и ячейки с именем файла. Не забываем проверять через GetAcadState() - готов ли Акад принимать команды, чтобы не зависло выполнение. Вставляем через COM текст из второго столбца и закрываем файл с сохранением.
Сергей812 вне форума  
 
Непрочитано 18.06.2020, 12:49
1 | 1 #10
Boxa

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


Цитата:
Сообщение от qwertystudios1337 Посмотреть сообщение
Это понимаю. Вопрос в том, что подпись будет меняться в каждом чертеже и как вставить разные названия?
Прочитать или сформировать текст и вставить его в модель. В чем сложность то?
Если реально хотите помощи, то публикуйте пример исходного dwg файла и того, что хотите получить, пример excel файла, из которого берете данные и собственно код, который уже написали. Без этого какое то гадание с постоянно меняющимся вводными.
Boxa вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вставка текста в автокад

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как настроить автовыделение текста в редакторе многострочного текста RAD24 LISP 2 10.02.2020 18:36
СПДС 12 некорректная вставка текста из pdf документов Konst085 ПО от CSoft 5 26.04.2019 11:48
Макрос переноса текста из Word в AutoCAD - помогите усовершенствовать. MrBrown Программирование 5 18.05.2015 12:28
Вставка таблицы из Экселя в автокад с созданием новых листов в автокаде Che1992 AutoCAD 4 18.03.2015 12:02
LISP. Выравнивание текста по двум точкам. Krieger Готовые программы 10 24.12.2011 16:02