Тема: Как сравнить файлы AutoCAD с помощью VBA?
слушайте. помогите пожалуйста.
нужно сравить два AutoСAD- овских файла на одинаковость в них чертежей.
с помощью VBA.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как сравнить файлы AutoCAD с помощью VBA?
Чтобы отправить ответ, вы должны войти или зарегистрироваться
слушайте. помогите пожалуйста.
нужно сравить два AutoСAD- овских файла на одинаковость в них чертежей.
с помощью VBA.
слушайте, ну хоть с чего начать.
пожалуйста.
Самый простой вариант
Создай два DXF фила и сравнивай их как текстовые
:)
Если по содержимому, то тогда перебирай в цикле все примитивы в ModelSpace'ах и сравнивай :)
большое спасибо!
можно про последний вариант подробнее?
во первых меня интересует, как я могу получить файл, где есть все примитивы(их параметры), которые нарисованы?
> kb-nn
>во первых меня интересует, как я могу получить файл, где
>есть все примитивы(их параметры), которые нарисованы?
- Этот файл и есть .dwg, а с помощью VBA Вы можете и осуществить "последний вариант".
Хотелось бы узнать - откуда у задачи ноги растут.
Тогда и советы дельнее можно давать.
С уважением, Дмитрий.
Если есть желание копаться на уровне битов и байтов чертежа, то описание структуры dwg файла выложено в файле formatSpec13-15.rtf
Оглавление такое: AutoCAD R13/R14/R2000 DWG File Specification
Источник:The OpenDWG? Alliance
Ссылка - http://www.opendwg.org
С уважением, Дмитрий
во первых, спасибо!
во вторых, про ноги.
у преподавателя есть файл с верно нарисованным чертежом.
и есть чериеж, нарисованный студентом.
и нужно узнать, правильно ли студент нарисовал всё.
или может кто может подсказать место в нете, где есть документация по VBA для автокада?
> kb-nn
>у преподавателя есть файл с верно нарисованным чертежом.
>и есть чериеж, нарисованный студентом.
>и нужно узнать, правильно ли студент нарисовал всё.
- А если студент, например, поставит лишнюю точку в чертеже :)))
вообще- то я думал над этим.
но для начала я бы хотел просто пообъектно сравнить два чертежа.
и для каждого объекта (включая их параметры) получить ответ- да или нет.
я вообще не знаю, как сделать цикл по всем объектам, имеющимся в чертеже.
подскажите кто чем может.
или место в нете. где можно почитать.
пожалуйста.
Для Вашей задачи - очень просто ( и дешево).
1) Красите все элементы одного чертежа в один цвет.
2) Другого чертежа - в другой.
3) Вставляете один (командой Insert) в другой с наложением, и сразу все видно.
***Совет: если раскрасить один чертеж в зеленый, а другой в красный и сделать очень небольшой сдвиг двух чертежей, то цвет получается желтоватый там, где примитивы совпадают.
А там, где не совпадают - остается чистый цвет.
что- то я мало что понял.
позвольте повториться- где в инете можно почитать документацию по VBA для AutoCAD?
пожалуйста.
> kb-nn
http://www.afralisp.com/
> 3dcad
Я зашел по вашей ссылке на ОпенДВГ. Класс!!!
Попытался зарегистрироваться, получил на 10 страниц договор который я должен подписать и выслать им.
А по другому можно получить ети обьекты
Ну я и заполнил эти поля - через несколько минут получил письмо и ссылку на скачку.
Ежели очень надо - пиши на мыло - вышлю (файл занимает ~1МБт)
ну вобщем я кое- что почитал, правда в другом месте.
www.cad.dp.ua, вобщем- то более или менее понял, что к чему.
а то вообще не знал с чего начать можно.
теперь у меня остался один вопрос- если у меня есть какой- то объект(неизвестно какой), как я могу узнать значения всех его свойств?
объект есть в какой- то переменной.
Слушай, kb-nn, а вообще-то VBA в глаза видел? (только без обиды).
да!
в основном правда работал в VB.
Тогда, чтобы научиться на VBA под AutoCAD - берешь туеву хучу примеров из стандартной поставки для AutoCAD (установка c опцией Full) и по полной проходишь.
> 3dcad
Ну и заполнил, и ничAво :(
Если не трудно скинь на bumagka@yahoo.com
слушайте, можно еще вопросик- как узнать тип примитива, если я все примитивы чертежа просматриваю в цикле?
Например так:
If StrComp(my_Collection.Item(n).EntityName, "AcDbLine", 1) = 0 Then
'Делаем что надо, если это линия
end if
С уважением, Дмитрий
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как сравнить файлы AutoCAD с помощью VBA?
Форум работает на PunBB, при поддержке Informer Technologies, Inc