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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Обработка текстовых элементов.

Обработка текстовых элементов.

Ответ
Поиск в этой теме
Непрочитано 19.12.2024, 14:16 #1
Обработка текстовых элементов.
Palka
 
Регистрация: 16.11.2020
Сообщений: 36

Добрый день.
Пытаюсь написать LISP задача которого открывать файлы dwg в указанной папке для обработки, запускать мой другой лисп по изменению размера текста, далее сохранить и закрыть и так со всеми чертежами в папке.
В общем данные действия через Сценарий у меня получается делать, но это затратнее, потому что через лисп в скрипт мне сначала нужно получить имена файлов с путем и потом я только могу что-то сделать.
Поэтому хочу все решить через LISP.
Проблемы с которыми я встретился. Лисп открывает чертеж, запускает мой другой лисп, лисп по обработке текста пишет, что Нет текстовых объектов на чертеже.
Сначала думал, что он обрабатывает пустой чертеж в котором я запускаю LISP, сделал чтобы все открытые обрабатывал, но и это не помогло.
Дальше я пришел к мысли, мб чертеж не успевает регениться перед обработкой и просто элементы не появляются. Пытался сделать через реген, тоже фиг там.
МБ у кого-то есть болванка по обработке ? Открыть запустить сохранить закрыть ?
Просмотров: 1007
 
Непрочитано 19.12.2024, 14:28
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


ИМХО уж лучше через ObjectDBX работать : https://autolisp.ru/2010/04/08/proce...tive-document/
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 19.12.2024, 15:40
#3
Palka


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
ИМХО уж лучше через ObjectDBX работать : https://autolisp.ru/2010/04/08/proce...tive-document/
Судя по описанию, что да.
Но не совсем понимаю принцип. Как я понимаю ObjectDBX не во всех версиях автокада.
Запустил первый код, узнал свою версию ""24.0s (LMS Tech)" (только чтение)".
Второй шаг вызвать ObjectDBX. Тут не совсем понимаю. Формально вместо 15.0 я должен вписать 24.0s ?
Вообще такое ощущение, что у меня нету ObjectDBX. Хотя в реестре вижу ObjectDBX.AxDbDocument.24 и ObjectDBX.AxDbDocument.25
В вашем коде "HKEY_CLASSES_ROOT\\ObjectDBX.AxDbDocument\\CLSID", по идеи тогда я должен прописать в него версию "ObjectDBX.AxDbDocument.24"
или я уже запутался. в общем как буд-то для меня это уже алхимия. не понимаю как запустить.
Palka вне форума  
 
Непрочитано 19.12.2024, 15:47
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


Крупными мазками, поскольку сейчас ACAD не запустить (подчеркиваю - все функции должны быть загружены!):
Код:
[Выделить все]
 (setq odbx (_lispru-odbx))
(foreach file file-list 
  (setq conn (vla-open odbx file))
  (vlax-for ent (vla-get-modelspace odbx) 
    ; ...
  )
  (vla-saveas odbx file)
)
(vlax-release-object odbx)
(setq odbx nil)
----- добавлено через 56 сек. -----
А уж как ты будешь получать список файлов - вопрос десятый.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.12.2024, 16:23
#5
Palka


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Крупными мазками, поскольку сейчас ACAD не запустить (подчеркиваю - все функции должны быть загружены!):
Код:
[Выделить все]
 (setq odbx (_lispru-odbx))
(foreach file file-list 
  (setq conn (vla-open odbx file))
  (vlax-for ent (vla-get-modelspace odbx) 
    ; ...
  )
  (vla-saveas odbx file)
)
(vlax-release-object odbx)
(setq odbx nil)
----- добавлено через 56 сек. -----
А уж как ты будешь получать список файлов - вопрос десятый.
Спасибо за строчки кода.
Но я застрял просто на вызове самого ObjectDBX. И информация, которую нашел только еще сильнее путает.

Цитата:
AutoCAD 24.0 (LMS Tech) — это версия, относящаяся к AutoCAD 2020, однако с модификациями, сделанными на уровне компании или специфических продуктов. Эта версия может не поддерживать ObjectDBX или его использование через стандартные подходы, поскольку ObjectDBX в основном поддерживается в версиях AutoCAD до 2017 года. Начиная с AutoCAD 2017 и выше, Autodesk сделала акцент на другие методы работы с DWG-файлами (например, через .NET API).
В общем свою изначальную проблему решил с открыванием чертежей и обработкой текста.
Не подскажите, где можно почитать про ObjectDBX и работу с ним ?
МБ потом свой лисп перепишу тогда под него. Так как здравый смысл есть в отсутствии открывания чертежа и долгого времени "курения бамбука..."
Palka вне форума  
 
Непрочитано 22.12.2024, 13:25
1 | #6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


Цитата:
Сообщение от Palka Посмотреть сообщение
где можно почитать про ObjectDBX и работу с ним
"САПР на базе" (сканированная версия есть где-то в глубинах форума) - вроде там было. М.б., удастся у Полещука что-то найти. Offtop: Мне хватает того, что я прописывал у себя в статье.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 22.12.2024, 13:39
#7
Palka


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
"САПР на базе" (сканированная версия есть где-то в глубинах форума) - вроде там было. М.б., удастся у Полещука что-то найти. Offtop: Мне хватает того, что я прописывал у себя в статье.
Спасибо за совет, решил купить книгу на OZON, сейчас 200 рублей стоит.)
Palka вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Обработка текстовых элементов.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Назначение коэффициента расчетных длин конструктивных элементов и групп конструктивных элементов в SCAD Sanshum SCAD 1 06.10.2020 15:34
Не могу изменить высоту текстовых элементов через "Свойства"... lenozzy AutoCAD 2 13.01.2012 15:22
Нумерация объемных элементов при моделировании грунта в SCAD Den_Den SCAD 11 20.11.2008 04:27
Lisp: Список элементов в слоях ALFMario LISP 4 29.04.2008 17:26
Rotate текстовых элементов относительно точки вставки plaz AutoCAD 2 19.09.2003 08:37