|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
17.04.2014, 08:49 | #1 | |
Lisp. Выделение нового в чертеже.
Проектировщик ВК. LISP-любитель.
Москва
Регистрация: 15.12.2003
Сообщений: 1,192
|
||
Просмотров: 9628
|
|
||||
начинающий инженер-гидротехник Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893
|
А если использовать для сравнения не dwg, а dwf?
"Для того, чтобы увидеть все произведённые изменения, проверщик выполняет сравнение текущей версии полученного DWF файла с его предыдущей версией, выбрав команду меню Tools -> Compare… (Инструменты -> Сравнить…). В этом случае программа Autodesk Design Review выполнит сравнение указанных файлов и отдельным цветом визуально выделит различия." (это из "Электронной проверки чертежей" Андрея Бушмана) |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Все что (entnext ...) от выбранного примитива - создалось позже, по редактированию - ИХМО никак, либо сравнение с предыдущей версией, либо реакторы добавляющие РД при редактировании (то есть будет "видеть" только то, что написано с активированной программой).
p.s. по облачкам - ИХМО не логично рассматривать близость "новых" объектов между собой как критерий объединения под одну крышу - надо смотреть сколько "лишних" старых объектов влезло в объединение кроме тех, которые уже и так есть (например старые объекты находятся внутри нового круга) и плясать от этого критерия - то есть 2 новых объекта могут находится сколь угодно далеко, лишь бы при их объединении не захватывались еще объекты.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 17.04.2014 в 09:35. |
|||
|
||||
ежли в пределах одной конторы:
1 сообразить лисп который во все примитивы, в коих нет расш. данных даты, чертежа будет заносить расширенные данные - текущая дата. 2 поставить этот лисп в автозагрузку и автозапускать при открытии чертежа или придумать реактор на закрытие. вроде это возможно и не очень сложно. про реактор я не очень уверен.
__________________
Знание лисп: со справочником Н. Полещука |
||||
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,192
|
Цитата:
Но, я так понимаю, что нет большой проблемы определить порядок создания примитивов, есть проблема с редактированными примитивами - и это не решается расширенными данными, они же не исчезают при редактировании.
__________________
apel.fas |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
С редактированием вообще отдельная песня - например изменили слой у половины объектов (или даже не сам слой, а его свойства) - они изменены - все выделять? - в общем тут теоретических вопросов больше чем практических - что впрочем в программировании на самом деле всегда так.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Цитата:
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,192
|
VVA, почему бред? очень даже,
а как вычислять контрольную сумму?
__________________
apel.fas |
|||
|
||||
VVA,
исключением бредовых идей достигается правильное решение. Хеш-сумма это, я так понимаю, сумма всех cdr-ов, являющихся числом плюс название слоя, переведенного в число. Измениться любая установка - поменяется сумма.
__________________
Знание лисп: со справочником Н. Полещука Последний раз редактировалось nolte, 18.04.2014 в 04:50. |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Только нужно исключить группу -1 и , возможно, переводить не vl-princ-to-string, а rtos'ом dxf группы 10,11,12,13,14
Как один из вариантов алгоритма Готовых решений на лиспе я пока не встречал Можно объявить {Конкурс} Если подключатся такие мастера, как Евгений Елпанов и Vov.Ka, засветившийся здесь Дима_ и др., то функция должна получится достаточно быстрой. Возможно, на просторах интернета есть готовое решение в виде com-сервера ----- добавлено через ~5 мин. ----- PS Я пока нашел только это File Checksums VB 2005 и это hash-table.lisp General purpose hash function algorithms library Простая и быстрая хэш функция (hash)
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 20.04.2014 в 13:37. Причина: орфография |
|||
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,192
|
ну этого, конечно мало, DXF кодов будет гораздо больше - все точки, строковые текстов, атрибутов, радиусы, масштабные коэфф.... и т.д. - придется с этим позаморачиваться.
__________________
apel.fas |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Дима_, я же написал возможно. Чтобы не получилось типа такого
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
То VVA - по моему это не принципиально - если изменения будут в пределах 1 тысячной (то есть и 295.82765 и 295.82999 приведутся в итоге в 295.83) - я думаю пользоваетль лекго переживет если это не засчитается как изменение, программа же будет запускать одну и ту же функцию к одним и тем-же данным - строке полученной от (vl-princ-to-string (cdr (entget ent))), после чего, чтоб не перегружать чертеж внесением в РД всей строки, считать от нее контрольную сумму разрядностью подходящей для задачи.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
тестите, у меня работает. проверял на нескольких чертежах примерно 10000 примитивов первый проход 40 сек, второй, когда уже есть данные получилось чуть меньше. воспользовался советом VVA пошел через хеш-сумму, через файл txt тоже возможно, только много головняка с dxf кодами да и долго сильно код работает.
на выходе лисп выдает измененные или новые примитивы, список которых можно в дальнейшем занести в таблицу, файл, обвести и так далее. запуск - 21. Код:
__________________
Знание лисп: со справочником Н. Полещука Последний раз редактировалось nolte, 20.04.2014 в 04:49. |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Что-то я сразу не догадался покопаться в закромах Lee-Mac'а Оказывается все уже давно написано
MD5 Cryptographic Hash Function
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Lisp. Как выбрать три последних не удаленных примитива на чертеже используя ent* | Yura Agafonov | LISP | 17 | 27.06.2012 01:25 |
LISP. Выделение блоков с динамическими свойствами | Composter | LISP | 14 | 16.02.2012 22:42 |
LISP / AutoCAD2008 / Как программно снять выделение у примитивов, не используя sssetfirst | TararykovDG | LISP | 7 | 14.01.2011 10:48 |
LISP. Автоматическое замораживание нового слоя на выбраных вьюпортах | Yuzer | LISP | 2 | 25.12.2010 02:37 |
Произведение нескольких чисел на чертеже? Нужен Lisp по типу sum.lsp | UnAtom | LISP | 2 | 24.11.2010 20:18 |