| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
07.10.2020, 04:53 | #1 | |
Как отредактировать множество файлов dwg по шаблону не открывая их
Регистрация: 02.10.2020
Сообщений: 6
|
||
Просмотров: 4039
|
|
||||
Регистрация: 18.11.2019
Сообщений: 1,526
|
Если использовать питон для подключения к Autocad, то это приведет к глобальным тормозам в случае, если Вы собираетесь перетряхнуть всю базу данных объектов и определить принадлежность этих объектов некоторой полилинии.
Вероятнее всего, чуть меньшие тормоза Вы получите при использовании VBA из Autocad'а при написании процедуры 1. открытия файла. 2. анализа всех объектов на принадлежность полилинии 3. удаления нужных объектов 4. Сохранения файлы 5. закрытия файла Возможно, еще чуть меньшие тормоза Вы получите, если напишите процедуру на Лиспе из Autocad,а. Самое быстрое решение - использовать для написания процедуры objectArx на C++ или .Net. |
|||
|
||||
Регистрация: 02.10.2020
Сообщений: 6
|
Цитата:
|
|||
|
||||
Регистрация: 24.08.2011
Сообщений: 39
|
Первое, что Вам нужно - это научиться подключаться к автокад из python. Смотрите модуль pywin32, например.
Второе, нужно изучить мануал Autodesk AutoCAD: ActiveX Reference Guide (ищите файл acadauto.chm). Я думаю вам понадобится метод GetBoundingBox |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
python и COM явно не для этой задачи (очень медленно), тем более что придется использовать достаточно жадные алгоритмы для поиска и перебора всего, что вне рамок...
ИМХО, тут нужно смотреть в сторону .NET или ARX и пытаться писать так, что бы она нормально работала с консольным автокадом, соответственно запускать обработку в несколько потоков... |
|||
|
||||
Регистрация: 18.12.2010
Сообщений: 5,057
|
|
|||
|
||||
Регистрация: 02.10.2016
Сообщений: 205
|
автокад-великий тормоз прогресса. )))
Лазарус рулит. работай непосредственно с файлами без использования автокада. алгоритм будет простым до безобразия. 1) открыть файл 2) в секции блок найти блок рамки. 3) от туда взять метку блока. 4) по метке блока в секции блокрекорд найти число вхождений блока в секции ентитис. 5)из секции ентитис взять координаты вхождений блока, из секции блок размер рамки. 6) дальше сравнить крайние координаты всех примитивов из секции ентитис на попадание внутрь рамок. 7)завести массив в котором хранить метки объектов не попавших в рамки. 8) затем их просто удалить из файла. ----- добавлено через ~1 мин. ----- для начинающих лучше работать с файлами дхф а не двж. Последний раз редактировалось CalcProg, 07.10.2020 в 11:00. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,856
|
Алгоритм - да. Но реализация застопорится уже на первом шаге, если работать все же с DWG.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 02.10.2016
Сообщений: 205
|
Цитата:
https://forum.dwg.ru/showthread.php?t=63491 ----- добавлено через ~5 мин. ----- из литературы: Всё про DXF-коды и структуру DXF файлов. Авторы: Николай Полещук, Петр Лоскутов, Сергей Зуев. Ну и собственно сайт автодеска. Последний раз редактировалось CalcProg, 07.10.2020 в 12:19. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
и кто мне запретит запустить пяток консольных автокадов разом и обрабатывать файлы внутри них, соответственно разделив эту тысячу файлов на 5 частей?
А вот по поводу использования RTree, я согласен. ЗЫ. Решал подобную задачу, так что в курсе как оно и какими средствами нужно действовать =) |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Конвертация файлов | Admin | Прочее. Программное обеспечение | 7515 | 19.03.2024 14:27 |
Как разбить один файл dwg с множеством блоков на множество файлов dwg с одним блоком? | petia | AutoCAD | 8 | 26.06.2018 12:19 |
DwgRuLispLib: Команда. Загрузка lisp файлов из указанной папки | VVA | Библиотека функций | 7 | 15.02.2018 10:10 |
Деление листов в файле на множество файлов | civil designer | AutoCAD | 3 | 30.09.2015 16:16 |
Можно ли запустить команду для списка файлов, не открывая файлов? | Alexander_Liseev | Программирование | 4 | 28.02.2013 11:41 |