Re: Защита от редактирования !!!

> Александр Ривилис
Пардон, - про %%U - все понял.

Re: Защита от редактирования !!!

Виктор Ковтун пишет:

...что он там наворотил...

Ничего. Пытался "защитить" чертеж... Вот эта штуковина: http://dwg.ru/forum/viewtopic.php?p=113481

Re: Защита от редактирования !!!

> skif58
Я уже не помню, где последнее, но публиковал еще и здесь
http://dwg.ru/forum/viewtopic.php?t=111 … 4978da4149

Re: Защита от редактирования !!!

Я и представить себе не мог, что можно выкинуть такую штуку: конвертировать линии в текст.
Всем огромное спасибо!

Re: Защита от редактирования !!!

> Виктор Ковтун
По большому счету это защита от "теток" ну или приколоться над кем-нибудь.

Re: Защита от редактирования !!!

Еще как вариант: в таблице есть поле, сылающиеся на длинну отрезка. После конвертации его в текст, в таблице получим #####

Re: Защита от редактирования !!!

Мне кажется, ВСЕ защиты легко снимаются конвертированием в PDF и последующей векторизацией.

Re: Защита от редактирования !!!

VVA пишет:

По большому счету это защита от "теток" ну или приколоться над кем-нибудь

Естественно! :)
Неболшая разминка мозгов на сон грядущий.
Без проверки на блокировку слоев и т.д.

(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)
)

Re: Защита от редактирования !!!

> VVA
Я согласен, что способ, который выбрал испанец, годится только для защиты файлов DWG от домохозяек. Но он, несмотря на то, что я ему выложил его файл, преобразованный простым кустарным способом в нормальный вид, заявил, что его способ защиты очень даже работает и ему вполне подходит. Наверное, с фосфором в Испании повальная напряженка.

Re: Защита от редактирования !!!

> Эдуард Смолянка
И без проверки на наличие 62 поля (цвет послою) :)
А так быстро и красиво.
Еще вариант через Express'овский Explode text ( _TXTEXP)

Re: Защита от редактирования !!!

> Виктор Ковтун
Пошли ему эту программку.

;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)
  )

Re: Защита от редактирования !!!

Чего написал , то написал а далее уже  нет охотничьего интереса. Можно далее анализировать код 71

Re: Защита от редактирования !!!

> VVA
Спасибо! Обязательно выложу на форуме, где повстречался с этим импанцем, и скажу, что написал русский VVA. (Ваше мыло могу вывесить? Вдруг кто заинтересуется, возможно, предложит работу или халтуру).
Вы не представляете, какой эффект будет! Если я, который всего лишь напечатал в DWF, потом открыл его и сохранил как DWG, для этого испанца "мистер Крак", то вы вообще небожитель.

Re: Защита от редактирования !!!

А вот так можно «сломать» любую защиту.
Файл/Диспетчер плоттеров/Мастер установки/ выбираем DXB файл Автокада. Затем печать, уж с параметрами печати колдуйте сами. Потом команду ИМПОРТД натравливаем на файл *.dxb полученные отрезки объединяем командой PL-JOIN(лисп из «опций полилиний автор VVA).  И уже все это натягиваем командой _align на первоначальный «текст»

Re: Защита от редактирования !!!

> Незнайка
Да, формат DXB иногда очень полезен. Интересно, как он разберется с MINSERT?

Re: Защита от редактирования !!!

> Владимир Громов
отлично. проверял. порвал все как тузик грелку.

Re: Защита от редактирования !!!

Не успел отвернуться как уже авторство сперли. :)

Re: Защита от редактирования !!!

> Виктор Ковтун
Тогда уж упомяни и Эдуард Смолянка. Я всего лишь "обернул" его лисп в команду.

> Незнайка
Промимо dxb можно поиграться с _wmfout и _wmfin. Останется полученный результат тоже немножко "натянуть"

Re: Защита от редактирования !!!

DXB и WMF - это конечно хорошо. Только есть пара моментов:
1) Размеры превратятся в тексты и линии.
2) Появится относительная погрешность в длинах линий (приблизительно 1/32000). Обычно она несущественна, но иногда может быть неприятной.

Re: Защита от редактирования !!!

> Александр Ривилис
не совсем понял про погрешность, т.е понял , но я её представляю в 2 видах:
1. я нарисовал линию в 10000, и она после трансформации стала короче или длиннее конкретно на 1/32000
2. я нарисовал линию в 10000, и она после трансформации стала короче или длиннее на величину до 1/32000, т.е как Бог на душу положит.
Если по первому пункту , то проблем не вижу.
Тем более "натягивание" нивелирует эту погрешность по всем пунктам, и особенно по 1. :)

Re: Защита от редактирования !!!

> Незнайка
Длина линии в 10000 после трансформаций станет короче или длинее приблизительно на 0.3 (т.е. 10000/32000)
"Натягивание" нивелирует искажение именно для этой линии, но остальные все равно будут искажены. Если обычная точность в AutoCAD порядка 1E-13...1E-14, то после таких преобразований точность будет 1E-3...1E-4
На всякий случай предупреждаю. Для строительных чертежей это (IMHO) не существенно, а вот в других областях...

Re: Защита от редактирования !!!

> VVA
У меня что-то программка не работает???
Пишет:
Команда: T2L
неверный тип аргумента: VLA-OBJECT nil

Re: Защита от редактирования !!!

> skif58
Это для специфического применения
попробуй на этом файле
http://files-upload.com/files/528666/Di … tegido.dwg

Re: Защита от редактирования !!!

> 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

Re: Защита от редактирования !!!

> VVA
Дык... Я на таком и пробовал...  А этот, - вообще не открывается теперь, - пишет : поврежден...