Xref has multiple references. Not detached
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Xref has multiple references. Not detached

Xref has multiple references. Not detached

Ответ
Поиск в этой теме
Непрочитано 20.06.2013, 16:27 #1
Xref has multiple references. Not detached
DmitryKh
 
Регистрация: 28.10.2012
Сообщений: 26

Добрый день.

В теме указано сообщение об ошибке, которое я получаю при попытке отсоединить xref.

Дело в том, что от заказчика мы получили чертеж, куда он вставлял как xref, наши файлы. Точнее, один файл - главный,- остальные наши файлы прицеплялись к нему.

Перед пересылкой нам чертежа, заказчик благоразумно убрал все xref... Удалил и главный... А про один из xfef забыл...

Есть какая-нибудь возможность убрать подобный xref?

QSELECT не помогает, слои не удаляются - это то, что я пробовал
Просмотров: 3783
 
Непрочитано 20.06.2013, 17:20
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Суть сообщения в том, что оставшаяся xref имеет несколько вхождений.
В моей практики встречалось, что ссылку вставляли сначала на лист, потом опомнились и вставили в модель.
Попробуй удалить все листы, потом отсоединить xref. По крайней мере будешь знать в этом ли дело
Еще ее могут включить в блок.
Чертеж можешь приаттачить?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 20.06.2013, 17:55
#3
DmitryKh


 
Регистрация: 28.10.2012
Сообщений: 26


Там чертежей со всеми xref - на 100 мегабайт...

Xref вставлены в модель. И не в блоке
DmitryKh вне форума  
 
Непрочитано 21.06.2013, 20:17
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от DmitryKh Посмотреть сообщение
Там чертежей со всеми xref - на 100 мегабайт
Так нужен всего один со злополучным xref. Файл можно залить на файлообменник, например местный - avral.ru. А сюда кинуть ссылку
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 23.06.2013, 11:49
#5
DmitryKh


 
Регистрация: 28.10.2012
Сообщений: 26


Ссылка на файл - http://www.avral.ru/f0f8aabbcdb8fb4178569bbf792f91a1

Пароль - 1234

Требуется убрать выделенный референс

DmitryKh вне форума  
 
Непрочитано 23.06.2013, 13:33
#6
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,949


Ссылка сидит внутри блока металлокаркаса каркаса.
engngr вне форума  
 
Автор темы   Непрочитано 23.06.2013, 13:40
#7
DmitryKh


 
Регистрация: 28.10.2012
Сообщений: 26


Цитата:
Сообщение от engngr Посмотреть сообщение
Ссылка сидит внутри блока металлокаркаса каркаса.
Блока?
DmitryKh вне форума  
 
Непрочитано 23.06.2013, 22:41
#8
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от VVA Посмотреть сообщение
Еще ее могут включить в блок
Цитата:
Сообщение от DmitryKh Посмотреть сообщение
Xref вставлены в модель. И не в блоке
Вот листинг
Цитата:
_$
Found <<135599-D Pipe rack>> in <<135599-D Periclase model>> (BLOCK)
nil
Так что я был прав, а ты нет. Чудес не бывает.
Набери _.bedit, выбери 135599-D Periclase model, быстрым выбором (_Qselect) выбери и удали внешнюю ссылку. Потом сможешь ее удалить из дитспетчера ссылок

Цитата:
Сообщение от engngr Посмотреть сообщение
Ссылка сидит внутри блока металлокаркаса каркаса.

Я бы даже сказал сидит "внутри блока плана металлокаркаса"
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 24.06.2013, 12:28
#9
DmitryKh


 
Регистрация: 28.10.2012
Сообщений: 26


Да - ты был прав. И это хорошо

Фигня в том, что я вчера тоже искал среди блоков - с помощью FILTER. Но НИЧЕГО там не было. И только после обработки _bedit блок стал виден... Странно.

И доп. вопрос: что это за листинг? Лисповский? Можно по пордробней - в ЛИСПе я новичок.

Мне Bentley AutoPLANT подавай
DmitryKh вне форума  
 
Непрочитано 24.06.2013, 15:19
#10
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от DmitryKh Посмотреть сообщение
И доп. вопрос: что это за листинг? Лисповский?

Это лисп. Был написан как раз для таких случаев как у тебя.
Код:
[Выделить все]
(defun C:FindXref ()
;;;Поиск вхождений внешних ссылок
  (mip-find-xref)
  (princ)
) ;_ end of defun
(defun mip-find-xref (/ lst xref ss txt count)
  (vl-load-com)
  (or *activedoc*
      (setq *activedoc* (vla-get-activedocument (vlax-get-acad-object)))
  ) ;_ end of or
  (vlax-for Blk (vla-get-blocks *activedoc*)
    (if (= (vla-get-isxref Blk) :vlax-true)
      (setq lst (cons (vla-get-name Blk) lst))
    ) ;_ end of if
  ) ;_ end of vlax-for
  (and
    (setq xref (_DWGRU-GET-USER-DCL
                 "Выберите ссылку"
                 (SORTSTRINGWITHNUMBERASNUMBER lst t)
                 nil
               ) ;_ end of _DWGRU-GET-USER-DCL
    ) ;_ end of setq

    (vlax-for Blk (vla-get-blocks *activedoc*)
      (setq count 0
            txt   (strcat "Inspecting " (vla-get-name Blk))
      ) ;_ end of setq
      (grtext -1 txt)
      (vlax-for Obj Blk
        (setq count (1+ count))
        (if (zerop (rem count 10))
          (grtext -1 (strcat txt " : " (itoa count)))
        ) ;_ end of if
        (if (and ;_ XREF
              (= (vla-get-objectname obj) "AcDbBlockReference") ;_ end of =
              (vlax-property-available-p Obj "Path")
              (eq (strcase (vla-get-name Obj)) (strcase (car xref)))
            ) ;_ end of and
          (princ (strcat "\nFound <<"
                         (car xref)
                         ">> in <<"
                         (vla-get-name Blk)
                         ">>"
                         (if (= (vla-get-isxref Blk) :vlax-true)
                           " (XREF) "
                           " (BLOCK) "
                         ) ;_ end of if
                 ) ;_ end of strcat
          ) ;_ end of princ
        ) ;_ end of if
      ) ;_ end of vlax-for
    ) ;_ end of vlax-for
  ) ;_ end of and
  (princ)
) ;_ end of defun
;;; ************************************************************************
;;; * Библиотека DWGruLispLib Copyright ©2008  DWGru Programmers Group
;;; *
;;; * _dwgru-get-user-dcl (Кандидат)
;;; *
;;; * Запрос значения у пользователя через диалоговое окно
;;; *
;;; *
;;; * 26/01/2008 Версия 0002. Редакция Владимир Азарко (VVA)
;;;              - Выход по двойному клику, если запрещен множественный выбор (multi-nil)
;;;              - Обработка нескольких колонок
;;; * 21/01/2008 Версия 0001. Редакция Владимир Азарко (VVA)
;;; ************************************************************************


;;; ************************************************************************
;;; * Library DWGruLispLib Copyright © 2008 DWGru Programmers Group
;;; *
;;; * _dwgru-get-user-dcl (Candidate)
;;; *
;;; * Inquiry of value at the user through a dialogue window
;;; *
;;; *
;;; * 26/01/2008 Version 0002. Edition Vladimir Azarko (VVA)
;;; - the Output on double a clique if the plural choice (multi-nil) is forbidden
;;; - Processing of several columns
;;; * 21/01/2008 Version 0001. Edition Vladimir Azarko (VVA)


(defun _DWGRU-GET-USER-DCL (ZAGL        INFO-LIST   MULTI
                            /           FL          RET
                            DCL_ID      MAXROW      MAX_COUNT_COL
                            COUNT_COL   I           LISTBOX_HEIGHT
                            LST         _LOC_FINISH _LOC_CLEAR
                            NCOL        tmp
                           )
                           ;| 
* ENGLISH
* Inquiry of value at the user through a dialogue window
* Dialogue is formed to "strike"
* the Quantity of lines on page without scrolling is set by variable MAXROW.
* It is necessary to remember, that number MAXROW increases on 3.
* the Maximum quantity of columns is set by variable MAX_COUNT_COL
* It is published
     http://dwg.ru/f/showthread.php?p=203746#post203746
* Parameters of a call:
    zagl - heading of a window [String]
    info-list - the list of line values[List of String]
    multi - t - the plural choice is resolved, nil-is not present
      
* Returns:
 The list of the chosen lines or nil - a cancelling
* the Example
 (_dwgru-get-user-dcl " Specify a variant " ' ("First" "Second" "Third") nil); _-> ("First") 
 (_dwgru-get-user-dcl " Specify a variant " ' ("First" "Second" "Third") t); _-> ("First"  "Second ")
 (_dwgru-get-user-dcl " Specify a variant "
   (progn (setq i 0 lst nil) (repeat 205 (setq lst (cons (strcat "Значение-" (itoa (setq i (1 + i)))) lst))) (reverse lst)) nil)
 (_dwgru-get-user-dcl " Specify a variant, using CTRL and SHIFT for a choice "
   (progn (setq i 0 lst nil) (repeat 205 (setq lst (cons (strcat "Значение-" (itoa (setq i (1 + i)))) lst))) (reverse lst)) t)
|;
                           ;|
* RUS						   
* Запрос значения у пользователя через диалоговое окно
* Диалог формируется "налету"
* Количество строк на страницу без скроллинга задается переменной MAXROW.
* Необходимо помнить, что число MAXROW увеличивается на 3.
* Максимальное количество колонок задается переменной MAX_COUNT_COL
* Опубликована
     http://dwg.ru/f/showthread.php?p=203746#post203746
* Параметры вызова:
    zagl - заголовок окна [String]
    info-list - список строковых значений[List of String]
    multi - t - разрешен множественный выбор, nil- нет
    
* Возвращает:
 Список выбранных строк или nil - отмена
* Пример
 (_dwgru-get-user-dcl "Укажите вариант" '("Первый" "Второй" "Третий") nil) ;_->("Первый") 
 (_dwgru-get-user-dcl "Укажите вариант" '("Первый" "Второй" "Третий") t) ;_->("Первый" "Второй")
 (_dwgru-get-user-dcl "Укажите вариант"
   (progn (setq i 0 lst nil)(repeat 205 (setq lst (cons (strcat "Значение-" (itoa (setq i (1+ i)))) lst)))(reverse lst)) nil)
 (_dwgru-get-user-dcl "Укажите вариант, используя CTRL и SHIFT для выбора"
   (progn (setq i 0 lst nil)(repeat 205 (setq lst (cons (strcat "Значение-" (itoa (setq i (1+ i)))) lst)))(reverse lst)) t)
|;
 ;_ ===== КОНСТАНТЫ ============

  (setq MAXROW 40) ;_макc. кол-во строк без скроллинга (К нему дальше добавится еще 3 строчки)
 ;_  max lines without scrolling (To it 3 more lines further will be added)
  (setq MAX_COUNT_COL 5) ;_максимальное количество колонок
 ;_ ; _ a maximum quantity of columns
  ;;============== Локальные фунцкции START==================
  ;;============== Local functions START========================

  (defun _LOC_FINISH ()
    (setq I   0
          RET NIL
    ) ;_ end ofsetq
    (repeat COUNT_COL
      (setq I (1+ I))
      (setq RET (cons (cons I (get_tile (strcat "info" (itoa I)))) RET))
    ) ;_ end ofrepeat
    (setq RET (reverse RET))
    (done_dialog 1)
  ) ;_ end ofdefun
  (defun _LOC_ERR-TILE (what)
;;;what - string or nil
    (if what
      (set_tile "error" what)
      (if MULTI
        (set_tile "error"
                  (if (= (getvar "DWGCODEPAGE") "ANSI_1251")
                    "Используйте CTRL и SHIFT для выбора"
                    "Use CTRL and SHIFT for a choicet"
                  ) ;_ end ofif
        ) ;_ end ofset_tile
        (set_tile "error"
                  (if (= (getvar "DWGCODEPAGE") "ANSI_1251")
                    "Можно выбирать двойным щелчком"
                    "It is possible to choose double click"
                  ) ;_ end ofif
        ) ;_ end ofset_tile
      ) ;_ end ofif
    ) ;_ end of if
  ) ;_ end of defun
  (defun _LOC_CLEAR (NOMER)
    (setq I 0)
    (repeat COUNT_COL
      (setq I (1+ I))
      (if (/= I NOMER)
        (progn
          (start_list (strcat "info" (itoa I)))
          (mapcar 'add_list (nth (1- I) LST))
          (end_list)
        ) ;_ end ofprogn
      ) ;_ end ofif
    ) ;_ end ofrepeat
  ) ;_ end ofdefun

;;;==================== Локальные фунцкции END ==================================
;;;==================== Local functions END ==================================

;;;==================== MAIN PART ===============================================

  (if (null ZAGL)
    (if (= (getvar "DWGCODEPAGE") "ANSI_1251")
      (setq ZAGL "Выбор")
      (setq ZAGL "Select")
    ) ;_ end ofif
  ) ;_ end if
  (if (zerop (rem (length INFO-LIST) MAXROW)) ;_Целое количество столбцов
    (setq COUNT_COL (/ (length INFO-LIST) MAXROW)) ;_Его и оставляем
    (setq COUNT_COL (1+ (fix (/ (length INFO-LIST) MAXROW 1.0)))) ;_Берем ближайшее целое
  ) ;_ end ofif
  (if (> COUNT_COL MAX_COUNT_COL)
    (setq COUNT_COL MAX_COUNT_COL)
  ) ;_Ограничиваем max количеством
  (setq LISTBOX_HEIGHT (+ 3 MAXROW)) ;_  добавляем 3 строчки для красоты и для исключения пограничного скроллинга
 ;_ We add 3 lines for appearance and for exception boundary scroll
  (if (and (= COUNT_COL 1) (<= (length INFO-LIST) MAXROW))
    (setq LISTBOX_HEIGHT (+ 3 (length INFO-LIST)))
  ) ;_ end ofif
  (setq I 0)
  (setq FL (vl-filename-mktemp "dwgru" NIL ".dcl"))
  (setq RET (open FL "w")
        LST NIL
  ) ;_ end ofsetq
  (mapcar '(lambda (X) (write-line X RET))
          (append (list "dwgru_get_user : dialog { "
                        (strcat "label=\"" ZAGL "\";")
                        ": boxed_row {"
                        (if (= (getvar "DWGCODEPAGE") "ANSI_1251")
                          "label = \"Значение\";"
                          "label = \"Value\";"
                        ) ;_ end ofif
                  ) ;_ end oflist
                  (repeat COUNT_COL
                    (setq LST
                           (append
                             LST
                             (list
                               " :list_box {"
                               "alignment=top ;"
                               (if MULTI
                                 "multiple_select = true ;"
                                 "multiple_select = false ;"
                               ) ;_ end ofif
                               (strcat
                                 "width="
                                 (itoa
                                   ((lambda (len)
                                      (setq len
                                             (cond ((and
                                                      (< COUNT_COL 3)
                                                      (< len 93)
                                                    ) ;_ end of and
                                                    len
                                                   )
                                                   ((and
                                                      (> COUNT_COL 2)
                                                      (< len 73)
                                                    ) ;_ end of and
                                                    len
                                                   )
                                                   (t 41)
                                             ) ;_ end of cond
                                      ) ;_ end of setq
                                      (if (< len 25)
                                        25
                                        len
                                      ) ;_ end of if
                                    ) ;_ end of lambda
                                     (apply 'max (mapcar 'strlen info-list))
                                   )
                                 ) ;_ end of itoa
                                 ";"
                               ) ;_ end of strcat
                               (strcat "height= " (itoa LISTBOX_HEIGHT) " ;")
                               "is_tab_stop = false ;"
                               (strcat "key = \"info" (itoa (setq I (1+ I))) "\";}")
                             ) ;_ end oflist
                           ) ;_ end ofappend
                    ) ;_ end ofsetq
                  ) ;_ end ofrepeat
                  (list
                    "}"
                    ":row{"
                    "ok_cancel_err;}}"
                  ) ;_ end oflist
          ) ;_ end of list
  ) ;_ end of mapcar
  (setq RET (close RET))
  (if (and (null (minusp (setq DCL_ID (load_dialog FL))))
           (new_dialog "dwgru_get_user" DCL_ID)
      ) ;_ end and
    (progn
      (setq LST INFO-LIST)
      ((lambda (/ RET1 BUF ITM)

         (repeat (1- COUNT_COL)
           (setq I '-1)
           (while (and (setq ITM (car LST))
                       (< (setq I (1+ I)) MAXROW)
                  ) ;_ end ofand
             (setq BUF (cons ITM BUF)
                   LST (cdr LST)
             ) ;_ end ofsetq
           ) ;_ end ofwhile
           (setq RET1 (cons (reverse BUF) RET1)
                 BUF  NIL
           ) ;_ end ofsetq
         ) ;_ end ofrepeat
         (setq RET RET1)
       ) ;_ end oflambda
      )
      (if LST
        (setq RET (cons LST RET))
      ) ;_ end ofif
      (setq LST (reverse RET))
      (setq I 0)
      (mapcar '(lambda (THIS_LIST)
                 (if (<= (setq I (1+ I)) COUNT_COL)
                   (progn
                     (start_list (strcat "info" (itoa I)))
                     (mapcar 'add_list THIS_LIST)
                     (end_list)
                   ) ;_ end ofprogn
                 ) ;_ end ofif
               ) ;_ end oflambda
              LST
      ) ;_ end ofmapcar

      (set_tile "info1" "0")
      (setq I 0
            NCOL 1
      ) ;_ end ofsetq
      (repeat COUNT_COL
        (action_tile
          (strcat "info" (itoa (setq I (1+ I))))
          (strcat
            "(progn (if (= $reason 1)(_LOC_ERR-TILE (nth (atoi(get_tile \"info1\")) info-list))(_LOC_ERR-TILE nil)) (setq Ncol "
            (itoa I)
            ")(if (not multi)(_loc_clear Ncol))"
            "(if (and (not multi)(= $reason 4))(_loc_finish)))"
          ) ;_ end ofstrcat
        ) ;_ end ofaction_tile
      ) ;_ end ofrepeat
      (action_tile "cancel" "(done_dialog 0)")
      (action_tile "accept" "(_loc_finish)")
      (_LOC_ERR-TILE nil)
      (if (zerop (start_dialog))
        (setq RET NIL)
        (progn
          (setq
            RET (apply
                  'append
                  (mapcar
                    '(lambda (ITM)
                       (setq THIS_LIST (nth (1- (car ITM)) LST))
                       (mapcar
                         (function (lambda (NUM) (nth NUM THIS_LIST)))
                         (read (strcat "(" (cdr ITM) ")"))
                       ) ;_ end ofmapcar
                     ) ;_ end oflambda
                    RET
                  ) ;_ end ofmapcar
                ) ;_ end ofapply
          ) ;_ end ofsetq

        ) ;_ end ofprogn
      ) ;_ end if
      (unload_dialog DCL_ID)
    ) ;_ end of progn
  ) ;_ end of if
  (vl-file-delete FL)
  RET
) ;_ end ofdefun
(defun SortStringWithNumberAsNumber
       (ListOfString IgnoreCase / NorStrs count)
;;;Function Normalize (add 0 befor number) number in string
;;; Count normalize symbols set in variable count
;;; CAB added count as an argument
;;;http://www.theswamp.org/index.php?topic=16564.msg207439;topicseen#msg207439
;;; http://www.theswamp.org/index.php?topic=6474.0
  (defun NormalizeNumberInString (str count / ch i pat ret buf)
    (setq i   0
          pat '("0" "1" "2" "3" "4" "5" "6" "7" "8" "9")
          ret ""
    ) ;_ end of setq
    (while (/= (setq ch (substr str (setq i (1+ i)) 1)) "")
      (if (vl-position ch pat)
        (progn
          (setq buf ch) ;_ end of setq
          (while
            (vl-position (setq ch (substr str (setq i (1+ i)) 1)) pat)
             (setq buf (strcat buf ch))
          ) ;_ end of while
          (while (< (strlen buf) count) (setq buf (strcat "0" buf)))
          (setq ret (strcat ret buf))
        ) ;_ end of progn
      ) ;_ end of if
      (setq ret (strcat ret ch))
    ) ;_ end of while
    ret
  ) ;_ end of defun
  ;;-------------------------------------------------
  ;;  function to Count the longest number in string 
  ;;  CAB added to get the correct COUNT
  (defun getcount (lst / count pat)
    (setq count 0)
    (setq pat '("0" "1" "2" "3" "4" "5" "6" "7" "8" "9"))
    (mapcar
      '(lambda (str / i maxlen ch)
         (setq i 0
               maxlen 0
         ) ;_ end of setq
         (while (/= (setq ch (substr str (setq i (1+ i)) 1)) "")
           (if (vl-position ch pat)               ; number
             (setq maxlen (1+ maxlen))
             (setq count  (max count maxlen)
                   maxlen 0
             ) ;_ end of setq
           ) ;_ end of if
         ) ;_ end of while
         (setq count (max count maxlen)) ;_<<< ADD 21.06.2007 by 
       ) ;_ end of lambda
      Lst
    ) ;_ end of mapcar
    count
  ) ;_ end of defun
  ;;===============================================
  (setq count   (GetCount ListOfString)
        NorStrs (mapcar '(lambda (x) (NormalizeNumberInString x count))
                        ListOfString
                ) ;_ end of mapcar
  ) ;_ end of setq
  (and IgnoreCase (setq NorStrs (mapcar 'strcase NorStrs)))
  (mapcar '(lambda (x) (nth x ListOfString))
          (vl-sort-i NorStrs '<)
  ) ;_ end of mapcar
) ;_ end of defun
Цитата:
Сообщение от DmitryKh Посмотреть сообщение
Можно по пордробней - в ЛИСПе я новичок.
Читай по ссылке в моей подписи...............|
....................................................................|
....................................................................V
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Xref has multiple references. Not detached

Реклама i


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто как работает с XREF? Mikhail AutoCAD 20 19.03.2018 18:05
AUTOCAD 2010 перестал переключаться в многооконный режим. Проблемы с переменными Андрей Х. AutoCAD 24 27.05.2015 10:17
Вопросы про Xref Red Nova AutoCAD 35 12.02.2014 09:30
необычная работа с xref lake AutoCAD 8 25.04.2010 16:16
что такое block references и как пользоваться references Слава AutoCAD 3 12.07.2005 14:40