Re: Защита от редактирования !!!
> Александр Ривилис
Пардон, - про %%U - все понял.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Autodesk → AutoCAD → Защита от редактирования !!!
> Александр Ривилис
Пардон, - про %%U - все понял.
...что он там наворотил...
Ничего. Пытался "защитить" чертеж... Вот эта штуковина: http://dwg.ru/forum/viewtopic.php?p=113481
> skif58
Я уже не помню, где последнее, но публиковал еще и здесь
http://dwg.ru/forum/viewtopic.php?t=111 … 4978da4149
Я и представить себе не мог, что можно выкинуть такую штуку: конвертировать линии в текст.
Всем огромное спасибо!
> Виктор Ковтун
По большому счету это защита от "теток" ну или приколоться над кем-нибудь.
Еще как вариант: в таблице есть поле, сылающиеся на длинну отрезка. После конвертации его в текст, в таблице получим #####
Мне кажется, ВСЕ защиты легко снимаются конвертированием в PDF и последующей векторизацией.
По большому счету это защита от "теток" ну или приколоться над кем-нибудь
Естественно! :)
Неболшая разминка мозгов на сон грядущий.
Без проверки на блокировку слоев и т.д.
(defun txt_to_line (/ krivoy_text) (if (and (setq krivoy_text (ssget '((0 . "TEXT") (1 . "%%U ")))) (setq krivoy_text (vl-remove-if 'listp (mapcar 'cadr (ssnamex krivoy_text) ) ) ) ) (mapcar '(lambda (x / ent newline box endpt) (setq ent (entget x) box (textbox ent) newline (vla-addline (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)) ) (vlax-3d-point (setq endpt (mapcar '+ (cdr (assoc 10 ent)) (cond ( (= (cdr (assoc 71 ent)) 0) (car box) ) (t (list (caar box) (cadr (cadr box)) 0.0 ) ) ) ) ) ) (vlax-3d-point (polar endpt 0 (caadr box))) ) ) (vla-rotate newline (vlax-3d-point (cdr (assoc 10 ent))) (cdr (assoc 50 ent)) ) (vla-put-layer newline (cdr (assoc 8 ent))) (vla-put-Color newline (cdr (assoc 62 ent))) (entdel x) ) krivoy_text ) ) (princ) )
> VVA
Я согласен, что способ, который выбрал испанец, годится только для защиты файлов DWG от домохозяек. Но он, несмотря на то, что я ему выложил его файл, преобразованный простым кустарным способом в нормальный вид, заявил, что его способ защиты очень даже работает и ему вполне подходит. Наверное, с фосфором в Испании повальная напряженка.
> Эдуард Смолянка
И без проверки на наличие 62 поля (цвет послою) :)
А так быстро и красиво.
Еще вариант через Express'овский Explode text ( _TXTEXP)
> Виктор Ковтун
Пошли ему эту программку.
;Restore line from %%U text ;Text to Line (defun C:T2L ( / txt_to_line mip:layer-status-restore mip:layer-status-save *error*) (defun *error* (msg)(princ msg)(mip:layer-status-restore)(princ)) (defun mip:layer-status-restore () (foreach item *MIP_LAYER_LST* (if (not (vlax-erased-p (car item))) (vl-catch-all-apply '(lambda () (vla-put-lock (car item) (cdr (assoc "lock" (cdr item)))) (vla-put-freeze (car item) (cdr (assoc "freeze" (cdr item)))) ) ;_ end of lambda ) ;_ end of vl-catch-all-apply ) ;_ end of if ) ;_ end of foreach (setq *MIP_LAYER_LST* nil) ) ;_ end of defun (defun mip:layer-status-save () (setq *MIP_LAYER_LST* nil) (vlax-for item (vla-get-layers *kpblc-activedoc*) (setq *MIP_LAYER_LST* (cons (list item (cons "freeze" (vla-get-freeze item)) (cons "lock" (vla-get-lock item)) ) ;_ end of cons *MIP_LAYER_LST* ) ;_ end of cons ) ;_ end of setq (vla-put-lock item :vlax-false) (vl-catch-all-apply '(lambda () (vla-put-freeze item :vlax-false))) ) ;_ end of vlax-for ) ;_ end of defun (defun txt_to_line (/ krivoy_text) (if (and (setq krivoy_text (ssget '((0 . "TEXT") (1 . "%%U ")))) (setq krivoy_text (vl-remove-if 'listp (mapcar 'cadr (ssnamex krivoy_text) ) ) ) ) (mapcar '(lambda (x / ent newline box endpt col) (setq ent (entget x) box (textbox ent) ) (setq newline (vla-addline (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)) ) (vlax-3d-point (setq endpt (mapcar '+ (cdr (assoc 10 ent)) (cond ( (= (cdr (assoc 71 ent)) 0) (car box) ) (t (list (caar box) (cadr (cadr box)) 0.0 ) ) ) ) ) ) (vlax-3d-point (polar endpt 0 (caadr box))) ) ) (vla-rotate newline (vlax-3d-point (cdr (assoc 10 ent))) (cdr (assoc 50 ent)) ) (vla-put-layer newline (cdr (assoc 8 ent))) (vla-put-Color newline (if (setq col (cdr (assoc 62 ent))) col 256)) (entdel x) ) krivoy_text ) ) (princ) ) (vl-load-com) (mip:layer-status-save) (princ "\nSelect text") (txt_to_line) (mip:layer-status-restore) (princ "\nGood work with line ...") (princ) )
Чего написал , то написал а далее уже нет охотничьего интереса. Можно далее анализировать код 71
> VVA
Спасибо! Обязательно выложу на форуме, где повстречался с этим импанцем, и скажу, что написал русский VVA. (Ваше мыло могу вывесить? Вдруг кто заинтересуется, возможно, предложит работу или халтуру).
Вы не представляете, какой эффект будет! Если я, который всего лишь напечатал в DWF, потом открыл его и сохранил как DWG, для этого испанца "мистер Крак", то вы вообще небожитель.
А вот так можно «сломать» любую защиту.
Файл/Диспетчер плоттеров/Мастер установки/ выбираем DXB файл Автокада. Затем печать, уж с параметрами печати колдуйте сами. Потом команду ИМПОРТД натравливаем на файл *.dxb полученные отрезки объединяем командой PL-JOIN(лисп из «опций полилиний автор VVA). И уже все это натягиваем командой _align на первоначальный «текст»
> Незнайка
Да, формат DXB иногда очень полезен. Интересно, как он разберется с MINSERT?
> Владимир Громов
отлично. проверял. порвал все как тузик грелку.
Не успел отвернуться как уже авторство сперли. :)
> Виктор Ковтун
Тогда уж упомяни и Эдуард Смолянка. Я всего лишь "обернул" его лисп в команду.
> Незнайка
Промимо dxb можно поиграться с _wmfout и _wmfin. Останется полученный результат тоже немножко "натянуть"
DXB и WMF - это конечно хорошо. Только есть пара моментов:
1) Размеры превратятся в тексты и линии.
2) Появится относительная погрешность в длинах линий (приблизительно 1/32000). Обычно она несущественна, но иногда может быть неприятной.
> Александр Ривилис
не совсем понял про погрешность, т.е понял , но я её представляю в 2 видах:
1. я нарисовал линию в 10000, и она после трансформации стала короче или длиннее конкретно на 1/32000
2. я нарисовал линию в 10000, и она после трансформации стала короче или длиннее на величину до 1/32000, т.е как Бог на душу положит.
Если по первому пункту , то проблем не вижу.
Тем более "натягивание" нивелирует эту погрешность по всем пунктам, и особенно по 1. :)
> Незнайка
Длина линии в 10000 после трансформаций станет короче или длинее приблизительно на 0.3 (т.е. 10000/32000)
"Натягивание" нивелирует искажение именно для этой линии, но остальные все равно будут искажены. Если обычная точность в AutoCAD порядка 1E-13...1E-14, то после таких преобразований точность будет 1E-3...1E-4
На всякий случай предупреждаю. Для строительных чертежей это (IMHO) не существенно, а вот в других областях...
> VVA
У меня что-то программка не работает???
Пишет:
Команда: T2L
неверный тип аргумента: VLA-OBJECT nil
> skif58
Это для специфического применения
попробуй на этом файле
http://files-upload.com/files/528666/Di … tegido.dwg
> VVA
Конечно, упомянул ЭС:
http://www.hispacad.com/foro/viewtopic. … 247#114247
Испанец, по-моему, совсем с ума сдурел: он выложил два файла, Dibujo_1.dwg и Dibujo_2.dwg. Dibujo_1.dwg не читается как чертеж (не знаю, чем он так искорежил исходный чертеж), а испанец издевается и хочет, чтоб ему Dibujo_1.dwg привели чем-либо к виду Dibujo_2.dwg.
Если у кого-то есть желание нашлепать испанцу по попе, то оба файла в сжатом виде (200 кило) здесь:
http://rapidshare.com/files/60204216/Dominguez.zip.html
Посредником мне быть не хочется. Все, что хотите вставить испанцу, можете вставить непосредственно ему:
luis.dominguez@valeo.com
> VVA
Дык... Я на таком и пробовал... А этот, - вообще не открывается теперь, - пишет : поврежден...
Форумы CADUser → Autodesk → AutoCAD → Защита от редактирования !!!
Форум работает на PunBB, при поддержке Informer Technologies, Inc